1 // Copyright (c) 2015-2020 The Khronos Group Inc.
2 //
3 // SPDX-License-Identifier: Apache-2.0 OR MIT
4 //
5 
6 // This header is generated from the Khronos Vulkan XML API Registry.
7 
8 #ifndef VULKAN_HPP
9 #define VULKAN_HPP
10 
11 #if defined( _MSVC_LANG )
12 #  define VULKAN_HPP_CPLUSPLUS _MSVC_LANG
13 #else
14 #  define VULKAN_HPP_CPLUSPLUS __cplusplus
15 #endif
16 
17 #if 201703L < VULKAN_HPP_CPLUSPLUS
18 #  define VULKAN_HPP_CPP_VERSION 20
19 #elif 201402L < VULKAN_HPP_CPLUSPLUS
20 #  define VULKAN_HPP_CPP_VERSION 17
21 #elif 201103L < VULKAN_HPP_CPLUSPLUS
22 #  define VULKAN_HPP_CPP_VERSION 14
23 #elif 199711L < VULKAN_HPP_CPLUSPLUS
24 #  define VULKAN_HPP_CPP_VERSION 11
25 #else
26 #  error "vulkan.hpp needs at least c++ standard version 11"
27 #endif
28 
29 #include <algorithm>
30 #include <array>
31 #include <cstddef>
32 #include <cstdint>
33 #include <cstring>
34 #include <functional>
35 #include <initializer_list>
36 #include <string>
37 #include <system_error>
38 #include <tuple>
39 #include <type_traits>
40 #include <vulkan/vulkan.h>
41 
42 #if 17 <= VULKAN_HPP_CPP_VERSION
43 #include <string_view>
44 #endif
45 
46 #if defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
47 # if !defined(VULKAN_HPP_NO_SMART_HANDLE)
48 #  define VULKAN_HPP_NO_SMART_HANDLE
49 # endif
50 #else
51 # include <memory>
52 # include <vector>
53 #endif
54 
55 #if !defined(VULKAN_HPP_ASSERT)
56 # include <cassert>
57 # define VULKAN_HPP_ASSERT   assert
58 #endif
59 
60 #if !defined(VULKAN_HPP_ASSERT_ON_RESULT)
61 # define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT
62 #endif
63 
64 #if !defined(VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL)
65 # define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
66 #endif
67 
68 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
69 #  if defined( __linux__ ) || defined( __APPLE__ )
70 #    include <dlfcn.h>
71 #  elif defined( _WIN32 )
72 typedef struct HINSTANCE__ * HINSTANCE;
73 #    if defined( _WIN64 )
74 typedef int64_t( __stdcall * FARPROC )();
75 #    else
76 typedef int( __stdcall * FARPROC )();
77 #    endif
78 extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName );
79 extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule );
80 extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, const char * lpProcName );
81 #  endif
82 #endif
83 
84 #if !defined(__has_include)
85 # define __has_include(x) false
86 #endif
87 
88 #if ( 201711 <= __cpp_impl_three_way_comparison ) && __has_include( <compare> )
89 # define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
90 #endif
91 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
92 # include <compare>
93 #endif
94 
95 
96 static_assert( VK_HEADER_VERSION ==  158 , "Wrong VK_HEADER_VERSION!" );
97 
98 // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
99 // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
100 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
101 # if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
102 #  define VULKAN_HPP_TYPESAFE_CONVERSION
103 # endif
104 #endif
105 
106 // <tuple> includes <sys/sysmacros.h> through some other header
107 // this results in major(x) being resolved to gnu_dev_major(x)
108 // which is an expression in a constructor initializer list.
109 #if defined(major)
110   #undef major
111 #endif
112 #if defined(minor)
113   #undef minor
114 #endif
115 
116 // Windows defines MemoryBarrier which is deprecated and collides
117 // with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct.
118 #if defined(MemoryBarrier)
119   #undef MemoryBarrier
120 #endif
121 
122 #if !defined(VULKAN_HPP_HAS_UNRESTRICTED_UNIONS)
123 # if defined(__clang__)
124 #  if __has_feature(cxx_unrestricted_unions)
125 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
126 #  endif
127 # elif defined(__GNUC__)
128 #  define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
129 #  if 40600 <= GCC_VERSION
130 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
131 #  endif
132 # elif defined(_MSC_VER)
133 #  if 1900 <= _MSC_VER
134 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
135 #  endif
136 # endif
137 #endif
138 
139 #if !defined(VULKAN_HPP_INLINE)
140 # if defined(__clang__)
141 #  if __has_attribute(always_inline)
142 #   define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
143 #  else
144 #   define VULKAN_HPP_INLINE inline
145 #  endif
146 # elif defined(__GNUC__)
147 #  define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
148 # elif defined(_MSC_VER)
149 #  define VULKAN_HPP_INLINE inline
150 # else
151 #  define VULKAN_HPP_INLINE inline
152 # endif
153 #endif
154 
155 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
156 # define VULKAN_HPP_TYPESAFE_EXPLICIT
157 #else
158 # define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
159 #endif
160 
161 #if defined(__cpp_constexpr)
162 # define VULKAN_HPP_CONSTEXPR constexpr
163 # if __cpp_constexpr >= 201304
164 #  define VULKAN_HPP_CONSTEXPR_14  constexpr
165 # else
166 #  define VULKAN_HPP_CONSTEXPR_14
167 # endif
168 # define VULKAN_HPP_CONST_OR_CONSTEXPR  constexpr
169 #else
170 # define VULKAN_HPP_CONSTEXPR
171 # define VULKAN_HPP_CONSTEXPR_14
172 # define VULKAN_HPP_CONST_OR_CONSTEXPR  const
173 #endif
174 
175 #if !defined(VULKAN_HPP_NOEXCEPT)
176 # if defined(_MSC_VER) && (_MSC_VER <= 1800)
177 #  define VULKAN_HPP_NOEXCEPT
178 # else
179 #  define VULKAN_HPP_NOEXCEPT noexcept
180 #  define VULKAN_HPP_HAS_NOEXCEPT 1
181 #  if defined(VULKAN_HPP_NO_EXCEPTIONS)
182 #    define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept
183 #  else
184 #    define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
185 #  endif
186 # endif
187 #endif
188 
189 #if 14 <= VULKAN_HPP_CPP_VERSION
190 #  define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
191 #else
192 #  define VULKAN_HPP_DEPRECATED( msg )
193 #endif
194 
195 #if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS )
196 #  define VULKAN_HPP_NODISCARD [[nodiscard]]
197 #  if defined(VULKAN_HPP_NO_EXCEPTIONS)
198 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]]
199 #  else
200 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
201 #  endif
202 #else
203 #  define VULKAN_HPP_NODISCARD
204 #  define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
205 #endif
206 
207 #if !defined(VULKAN_HPP_NAMESPACE)
208 #define VULKAN_HPP_NAMESPACE vk
209 #endif
210 
211 #define VULKAN_HPP_STRINGIFY2(text) #text
212 #define VULKAN_HPP_STRINGIFY(text) VULKAN_HPP_STRINGIFY2(text)
213 #define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY(VULKAN_HPP_NAMESPACE)
214 
215 namespace VULKAN_HPP_NAMESPACE
216 {
217 
218 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
219   template <typename T>
220   class ArrayProxy
221   {
222   public:
ArrayProxy()223     VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT
224       : m_count( 0 )
225       , m_ptr( nullptr )
226     {}
227 
ArrayProxy(std::nullptr_t)228     VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
229       : m_count( 0 )
230       , m_ptr( nullptr )
231     {}
232 
ArrayProxy(T & value)233     ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT
234       : m_count( 1 )
235       , m_ptr( &value )
236     {}
237 
238     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(typename std::remove_const<T>::type & value)239     ArrayProxy( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
240       : m_count( 1 )
241       , m_ptr( &value )
242     {}
243 
ArrayProxy(uint32_t count,T * ptr)244     ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
245       : m_count( count )
246       , m_ptr( ptr )
247     {}
248 
249     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)250     ArrayProxy( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
251       : m_count( count )
252       , m_ptr( ptr )
253     {}
254 
ArrayProxy(std::initializer_list<T> const & list)255     ArrayProxy( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
256       : m_count( static_cast<uint32_t>( list.size() ) )
257       , m_ptr( list.begin() )
258     {}
259 
260     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)261     ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
262       : m_count( static_cast<uint32_t>( list.size() ) )
263       , m_ptr( list.begin() )
264     {}
265 
ArrayProxy(std::initializer_list<T> & list)266     ArrayProxy( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
267       : m_count( static_cast<uint32_t>( list.size() ) )
268       , m_ptr( list.begin() )
269     {}
270 
271     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)272     ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
273       : m_count( static_cast<uint32_t>( list.size() ) )
274       , m_ptr( list.begin() )
275     {}
276 
277     template <size_t N>
ArrayProxy(std::array<T,N> const & data)278     ArrayProxy( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT
279       : m_count( N )
280       , m_ptr( data.data() )
281     {}
282 
283     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)284     ArrayProxy( std::array<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
285       : m_count( N )
286       , m_ptr( data.data() )
287     {}
288 
289     template <size_t N>
ArrayProxy(std::array<T,N> & data)290     ArrayProxy( std::array<T, N> & data ) VULKAN_HPP_NOEXCEPT
291       : m_count( N )
292       , m_ptr( data.data() )
293     {}
294 
295     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)296     ArrayProxy( std::array<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
297       : m_count( N )
298       , m_ptr( data.data() )
299     {}
300 
301     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<T,Allocator> const & data)302     ArrayProxy( std::vector<T, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
303       : m_count( static_cast<uint32_t>( data.size() ) )
304       , m_ptr( data.data() )
305     {}
306 
307     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
308               typename B      = T,
309               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::vector<typename std::remove_const<T>::type,Allocator> const & data)310     ArrayProxy( std::vector<typename std::remove_const<T>::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
311       : m_count( static_cast<uint32_t>( data.size() ) )
312       , m_ptr( data.data() )
313     {}
314 
315     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<T,Allocator> & data)316     ArrayProxy( std::vector<T, Allocator> & data ) VULKAN_HPP_NOEXCEPT
317       : m_count( static_cast<uint32_t>( data.size() ) )
318       , m_ptr( data.data() )
319     {}
320 
321     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
322               typename B      = T,
323               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::vector<typename std::remove_const<T>::type,Allocator> & data)324     ArrayProxy( std::vector<typename std::remove_const<T>::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT
325       : m_count( static_cast<uint32_t>( data.size() ) )
326       , m_ptr( data.data() )
327     {}
328 
begin() const329     const T * begin() const VULKAN_HPP_NOEXCEPT
330     {
331       return m_ptr;
332     }
333 
end() const334     const T * end() const VULKAN_HPP_NOEXCEPT
335     {
336       return m_ptr + m_count;
337     }
338 
front() const339     const T & front() const VULKAN_HPP_NOEXCEPT
340     {
341       VULKAN_HPP_ASSERT( m_count && m_ptr );
342       return *m_ptr;
343     }
344 
back() const345     const T & back() const VULKAN_HPP_NOEXCEPT
346     {
347       VULKAN_HPP_ASSERT( m_count && m_ptr );
348       return *( m_ptr + m_count - 1 );
349     }
350 
empty() const351     bool empty() const VULKAN_HPP_NOEXCEPT
352     {
353       return ( m_count == 0 );
354     }
355 
size() const356     uint32_t size() const VULKAN_HPP_NOEXCEPT
357     {
358       return m_count;
359     }
360 
data() const361     T * data() const VULKAN_HPP_NOEXCEPT
362     {
363       return m_ptr;
364     }
365 
366   private:
367     uint32_t m_count;
368     T *      m_ptr;
369   };
370 
371   template <typename T>
372   class ArrayProxyNoTemporaries
373   {
374   public:
ArrayProxyNoTemporaries()375     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT
376       : m_count( 0 )
377       , m_ptr( nullptr )
378     {}
379 
ArrayProxyNoTemporaries(std::nullptr_t)380     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
381       : m_count( 0 )
382       , m_ptr( nullptr )
383     {}
384 
385     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(typename std::remove_const<T>::type & value)386     ArrayProxyNoTemporaries( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
387       : m_count( 1 )
388       , m_ptr( &value )
389     {}
390 
ArrayProxyNoTemporaries(uint32_t count,T * ptr)391     ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
392       : m_count( count )
393       , m_ptr( ptr )
394     {}
395 
396     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)397     ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
398       : m_count( count )
399       , m_ptr( ptr )
400     {}
401 
ArrayProxyNoTemporaries(std::initializer_list<T> const & list)402     ArrayProxyNoTemporaries( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
403       : m_count( static_cast<uint32_t>( list.size() ) )
404       , m_ptr( list.begin() )
405     {}
406 
407     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)408     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
409       : m_count( static_cast<uint32_t>( list.size() ) )
410       , m_ptr( list.begin() )
411     {}
412 
ArrayProxyNoTemporaries(std::initializer_list<T> & list)413     ArrayProxyNoTemporaries( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
414       : m_count( static_cast<uint32_t>( list.size() ) )
415       , m_ptr( list.begin() )
416     {}
417 
418     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)419     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
420       : m_count( static_cast<uint32_t>( list.size() ) )
421       , m_ptr( list.begin() )
422     {}
423 
424     ArrayProxyNoTemporaries( std::initializer_list<T> const && list ) VULKAN_HPP_NOEXCEPT = delete;
425     ArrayProxyNoTemporaries( std::initializer_list<T> && list ) VULKAN_HPP_NOEXCEPT       = delete;
426 
427     template <size_t N>
ArrayProxyNoTemporaries(std::array<T,N> const & data)428     ArrayProxyNoTemporaries( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT
429       : m_count( N )
430       , m_ptr( data.data() )
431     {}
432 
433     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)434     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
435       : m_count( N )
436       , m_ptr( data.data() )
437     {}
438 
439     template <size_t N>
ArrayProxyNoTemporaries(std::array<T,N> & data)440     ArrayProxyNoTemporaries( std::array<T, N> & data ) VULKAN_HPP_NOEXCEPT
441       : m_count( N )
442       , m_ptr( data.data() )
443     {}
444 
445     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)446     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
447       : m_count( N )
448       , m_ptr( data.data() )
449     {}
450 
451     template <size_t N>
452     ArrayProxyNoTemporaries( std::array<T, N> const && data ) VULKAN_HPP_NOEXCEPT = delete;
453     template <size_t N>
454     ArrayProxyNoTemporaries( std::array<T, N> && data ) VULKAN_HPP_NOEXCEPT       = delete;
455 
456     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxyNoTemporaries(std::vector<T,Allocator> const & data)457     ArrayProxyNoTemporaries( std::vector<T, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
458       : m_count( static_cast<uint32_t>( data.size() ) )
459       , m_ptr( data.data() )
460     {}
461 
462     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
463               typename B      = T,
464               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::vector<typename std::remove_const<T>::type,Allocator> const & data)465     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
466       : m_count( static_cast<uint32_t>( data.size() ) )
467       , m_ptr( data.data() )
468     {}
469 
470     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxyNoTemporaries(std::vector<T,Allocator> & data)471     ArrayProxyNoTemporaries( std::vector<T, Allocator> & data ) VULKAN_HPP_NOEXCEPT
472       : m_count( static_cast<uint32_t>( data.size() ) )
473       , m_ptr( data.data() )
474     {}
475 
476     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
477               typename B      = T,
478               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::vector<typename std::remove_const<T>::type,Allocator> & data)479     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT
480       : m_count( static_cast<uint32_t>( data.size() ) )
481       , m_ptr( data.data() )
482     {}
483 
484     ArrayProxyNoTemporaries( std::vector<T> const && data ) VULKAN_HPP_NOEXCEPT = delete;
485     ArrayProxyNoTemporaries( std::vector<T> && data ) VULKAN_HPP_NOEXCEPT       = delete;
486 
begin() const487     const T * begin() const VULKAN_HPP_NOEXCEPT
488     {
489       return m_ptr;
490     }
491 
end() const492     const T * end() const VULKAN_HPP_NOEXCEPT
493     {
494       return m_ptr + m_count;
495     }
496 
front() const497     const T & front() const VULKAN_HPP_NOEXCEPT
498     {
499       VULKAN_HPP_ASSERT( m_count && m_ptr );
500       return *m_ptr;
501     }
502 
back() const503     const T & back() const VULKAN_HPP_NOEXCEPT
504     {
505       VULKAN_HPP_ASSERT( m_count && m_ptr );
506       return *( m_ptr + m_count - 1 );
507     }
508 
empty() const509     bool empty() const VULKAN_HPP_NOEXCEPT
510     {
511       return ( m_count == 0 );
512     }
513 
size() const514     uint32_t size() const VULKAN_HPP_NOEXCEPT
515     {
516       return m_count;
517     }
518 
data() const519     T * data() const VULKAN_HPP_NOEXCEPT
520     {
521       return m_ptr;
522     }
523 
524   private:
525     uint32_t m_count;
526     T *      m_ptr;
527   };
528 #endif
529 
530   template <typename T, size_t N>
531   class ArrayWrapper1D : public std::array<T,N>
532   {
533   public:
ArrayWrapper1D()534     VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT
535       : std::array<T, N>()
536     {}
537 
ArrayWrapper1D(std::array<T,N> const & data)538     VULKAN_HPP_CONSTEXPR ArrayWrapper1D(std::array<T,N> const& data) VULKAN_HPP_NOEXCEPT
539       : std::array<T, N>(data)
540     {}
541 
542 #if defined(_WIN32) && !defined(_WIN64)
operator [](int index) const543     VULKAN_HPP_CONSTEXPR T const& operator[](int index) const VULKAN_HPP_NOEXCEPT
544     {
545       return std::array<T, N>::operator[](index);
546     }
547 
operator [](int index)548     VULKAN_HPP_CONSTEXPR T & operator[](int index) VULKAN_HPP_NOEXCEPT
549     {
550       return std::array<T, N>::operator[](index);
551     }
552 #endif
553 
operator T const*() const554     operator T const* () const VULKAN_HPP_NOEXCEPT
555     {
556       return this->data();
557     }
558 
operator T*()559     operator T * () VULKAN_HPP_NOEXCEPT
560     {
561       return this->data();
562     }
563 
564     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string() const565     operator std::string() const
566     {
567       return std::string( this->data() );
568     }
569 
570 #if 17 <= VULKAN_HPP_CPP_VERSION
571     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string_view() const572     operator std::string_view() const
573     {
574       return std::string_view( this->data() );
575     }
576 #endif
577 
578     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <(ArrayWrapper1D<char,N> const & rhs) const579     bool operator<( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
580     {
581       return *static_cast<std::array<char, N> const *>( this ) < *static_cast<std::array<char, N> const *>( &rhs );
582     }
583 
584     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <=(ArrayWrapper1D<char,N> const & rhs) const585     bool operator<=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
586     {
587       return *static_cast<std::array<char, N> const *>( this ) <= *static_cast<std::array<char, N> const *>( &rhs );
588     }
589 
590     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >(ArrayWrapper1D<char,N> const & rhs) const591     bool operator>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
592     {
593       return *static_cast<std::array<char, N> const *>( this ) > *static_cast<std::array<char, N> const *>( &rhs );
594     }
595 
596     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >=(ArrayWrapper1D<char,N> const & rhs) const597     bool operator>=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
598     {
599       return *static_cast<std::array<char, N> const *>( this ) >= *static_cast<std::array<char, N> const *>( &rhs );
600     }
601 
602     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator ==(ArrayWrapper1D<char,N> const & rhs) const603     bool operator==( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
604     {
605       return *static_cast<std::array<char, N> const *>( this ) == *static_cast<std::array<char, N> const *>( &rhs );
606     }
607 
608     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator !=(ArrayWrapper1D<char,N> const & rhs) const609     bool operator!=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
610     {
611       return *static_cast<std::array<char, N> const *>( this ) != *static_cast<std::array<char, N> const *>( &rhs );
612     }
613   };
614 
615   // specialization of relational operators between std::string and arrays of chars
616   template <size_t N>
operator <(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)617   bool operator<(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
618   {
619     return lhs < rhs.data();
620   }
621 
622   template <size_t N>
operator <=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)623   bool operator<=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
624   {
625     return lhs <= rhs.data();
626   }
627 
628   template <size_t N>
operator >(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)629   bool operator>(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
630   {
631     return lhs > rhs.data();
632   }
633 
634   template <size_t N>
operator >=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)635   bool operator>=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
636   {
637     return lhs >= rhs.data();
638   }
639 
640   template <size_t N>
operator ==(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)641   bool operator==(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
642   {
643     return lhs == rhs.data();
644   }
645 
646   template <size_t N>
operator !=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)647   bool operator!=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
648   {
649     return lhs != rhs.data();
650   }
651 
652   template <typename T, size_t N, size_t M>
653   class ArrayWrapper2D : public std::array<ArrayWrapper1D<T,M>,N>
654   {
655   public:
ArrayWrapper2D()656     VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT
657       : std::array<ArrayWrapper1D<T,M>, N>()
658     {}
659 
ArrayWrapper2D(std::array<std::array<T,M>,N> const & data)660     VULKAN_HPP_CONSTEXPR ArrayWrapper2D(std::array<std::array<T,M>,N> const& data) VULKAN_HPP_NOEXCEPT
661       : std::array<ArrayWrapper1D<T,M>, N>(*reinterpret_cast<std::array<ArrayWrapper1D<T,M>,N> const*>(&data))
662     {}
663   };
664 
665   template <typename FlagBitsType> struct FlagTraits
666   {
667     enum { allFlags = 0 };
668   };
669 
670   template <typename BitType>
671   class Flags
672   {
673   public:
674     using MaskType = typename std::underlying_type<BitType>::type;
675 
676     // constructors
Flags()677     VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT
678       : m_mask(0)
679     {}
680 
Flags(BitType bit)681     VULKAN_HPP_CONSTEXPR Flags(BitType bit) VULKAN_HPP_NOEXCEPT
682       : m_mask(static_cast<MaskType>(bit))
683     {}
684 
Flags(Flags<BitType> const & rhs)685     VULKAN_HPP_CONSTEXPR Flags(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
686       : m_mask(rhs.m_mask)
687     {}
688 
Flags(MaskType flags)689     VULKAN_HPP_CONSTEXPR explicit Flags(MaskType flags) VULKAN_HPP_NOEXCEPT
690       : m_mask(flags)
691     {}
692 
693     // relational operators
694 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
695     auto operator<=>(Flags<BitType> const&) const = default;
696 #else
operator <(Flags<BitType> const & rhs) const697     VULKAN_HPP_CONSTEXPR bool operator<(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
698     {
699       return m_mask < rhs.m_mask;
700     }
701 
operator <=(Flags<BitType> const & rhs) const702     VULKAN_HPP_CONSTEXPR bool operator<=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
703     {
704       return m_mask <= rhs.m_mask;
705     }
706 
operator >(Flags<BitType> const & rhs) const707     VULKAN_HPP_CONSTEXPR bool operator>(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
708     {
709       return m_mask > rhs.m_mask;
710     }
711 
operator >=(Flags<BitType> const & rhs) const712     VULKAN_HPP_CONSTEXPR bool operator>=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
713     {
714       return m_mask >= rhs.m_mask;
715     }
716 
operator ==(Flags<BitType> const & rhs) const717     VULKAN_HPP_CONSTEXPR bool operator==(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
718     {
719       return m_mask == rhs.m_mask;
720     }
721 
operator !=(Flags<BitType> const & rhs) const722     VULKAN_HPP_CONSTEXPR bool operator!=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
723     {
724       return m_mask != rhs.m_mask;
725     }
726 #endif
727 
728     // logical operator
operator !() const729     VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT
730     {
731       return !m_mask;
732     }
733 
734     // bitwise operators
operator &(Flags<BitType> const & rhs) const735     VULKAN_HPP_CONSTEXPR Flags<BitType> operator&(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
736     {
737       return Flags<BitType>(m_mask & rhs.m_mask);
738     }
739 
operator |(Flags<BitType> const & rhs) const740     VULKAN_HPP_CONSTEXPR Flags<BitType> operator|(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
741     {
742       return Flags<BitType>(m_mask | rhs.m_mask);
743     }
744 
operator ^(Flags<BitType> const & rhs) const745     VULKAN_HPP_CONSTEXPR Flags<BitType> operator^(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
746     {
747       return Flags<BitType>(m_mask ^ rhs.m_mask);
748     }
749 
operator ~() const750     VULKAN_HPP_CONSTEXPR Flags<BitType> operator~() const VULKAN_HPP_NOEXCEPT
751     {
752       return Flags<BitType>(m_mask ^ FlagTraits<BitType>::allFlags);
753     }
754 
755     // assignment operators
operator =(Flags<BitType> const & rhs)756     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
757     {
758       m_mask = rhs.m_mask;
759       return *this;
760     }
761 
operator |=(Flags<BitType> const & rhs)762     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator|=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
763     {
764       m_mask |= rhs.m_mask;
765       return *this;
766     }
767 
operator &=(Flags<BitType> const & rhs)768     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator&=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
769     {
770       m_mask &= rhs.m_mask;
771       return *this;
772     }
773 
operator ^=(Flags<BitType> const & rhs)774     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator^=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
775     {
776       m_mask ^= rhs.m_mask;
777       return *this;
778     }
779 
780     // cast operators
operator bool() const781     explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT
782     {
783       return !!m_mask;
784     }
785 
operator MaskType() const786     explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
787     {
788         return m_mask;
789     }
790 
791   private:
792     MaskType  m_mask;
793   };
794 
795 #if !defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
796   // relational operators only needed for pre C++20
797   template <typename BitType>
operator <(BitType bit,Flags<BitType> const & flags)798   VULKAN_HPP_CONSTEXPR bool operator<(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
799   {
800     return flags.operator>( bit );
801   }
802 
803   template <typename BitType>
operator <=(BitType bit,Flags<BitType> const & flags)804   VULKAN_HPP_CONSTEXPR bool operator<=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
805   {
806     return flags.operator>=( bit );
807   }
808 
809   template <typename BitType>
operator >(BitType bit,Flags<BitType> const & flags)810   VULKAN_HPP_CONSTEXPR bool operator>(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
811   {
812     return flags.operator<( bit );
813   }
814 
815   template <typename BitType>
operator >=(BitType bit,Flags<BitType> const & flags)816   VULKAN_HPP_CONSTEXPR bool operator>=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
817   {
818     return flags.operator<=(bit);
819   }
820 
821   template <typename BitType>
operator ==(BitType bit,Flags<BitType> const & flags)822   VULKAN_HPP_CONSTEXPR bool operator==(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
823   {
824     return flags.operator==( bit );
825   }
826 
827   template <typename BitType>
operator !=(BitType bit,Flags<BitType> const & flags)828   VULKAN_HPP_CONSTEXPR bool operator!=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
829   {
830     return flags.operator!=( bit );
831   }
832 #endif
833 
834   // bitwise operators
835   template <typename BitType>
operator &(BitType bit,Flags<BitType> const & flags)836   VULKAN_HPP_CONSTEXPR Flags<BitType> operator&(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
837   {
838     return flags.operator&( bit );
839   }
840 
841   template <typename BitType>
operator |(BitType bit,Flags<BitType> const & flags)842   VULKAN_HPP_CONSTEXPR Flags<BitType> operator|(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
843   {
844     return flags.operator|( bit );
845   }
846 
847   template <typename BitType>
operator ^(BitType bit,Flags<BitType> const & flags)848   VULKAN_HPP_CONSTEXPR Flags<BitType> operator^(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
849   {
850     return flags.operator^( bit );
851   }
852 
853   template <typename RefType>
854   class Optional
855   {
856   public:
Optional(RefType & reference)857     Optional(RefType & reference) VULKAN_HPP_NOEXCEPT { m_ptr = &reference; }
Optional(RefType * ptr)858     Optional(RefType * ptr) VULKAN_HPP_NOEXCEPT { m_ptr = ptr; }
Optional(std::nullptr_t)859     Optional(std::nullptr_t) VULKAN_HPP_NOEXCEPT { m_ptr = nullptr; }
860 
operator RefType*() const861     operator RefType*() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
operator ->() const862     RefType const* operator->() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
operator bool() const863     explicit operator bool() const VULKAN_HPP_NOEXCEPT { return !!m_ptr; }
864 
865   private:
866     RefType *m_ptr;
867   };
868 
869   template <typename X, typename Y> struct StructExtends { enum { value = false }; };
870 
871   template<typename Type, class...>
872   struct IsPartOfStructureChain
873   {
874     static const bool valid = false;
875   };
876 
877   template<typename Type, typename Head, typename... Tail>
878   struct IsPartOfStructureChain<Type, Head, Tail...>
879   {
880     static const bool valid = std::is_same<Type, Head>::value || IsPartOfStructureChain<Type, Tail...>::valid;
881   };
882 
883   template <size_t Index, typename T, typename... ChainElements>
884   struct StructureChainContains
885   {
886     static const bool value = std::is_same<T, typename std::tuple_element<Index, std::tuple<ChainElements...>>::type>::value ||
887                               StructureChainContains<Index - 1, T, ChainElements...>::value;
888   };
889 
890   template <typename T, typename... ChainElements>
891   struct StructureChainContains<0, T, ChainElements...>
892   {
893     static const bool value = std::is_same<T, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value;
894   };
895 
896   template <size_t Index, typename... ChainElements>
897   struct StructureChainValidation
898   {
899     using TestType = typename std::tuple_element<Index, std::tuple<ChainElements...>>::type;
900     static const bool valid =
901       StructExtends<TestType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value &&
902       ( TestType::allowDuplicate || !StructureChainContains<Index - 1, TestType, ChainElements...>::value ) &&
903       StructureChainValidation<Index - 1, ChainElements...>::valid;
904   };
905 
906   template <typename... ChainElements>
907   struct StructureChainValidation<0, ChainElements...>
908   {
909     static const bool valid = true;
910   };
911 
912   template <typename... ChainElements>
913   class StructureChain : public std::tuple<ChainElements...>
914   {
915   public:
StructureChain()916     StructureChain() VULKAN_HPP_NOEXCEPT
917     {
918       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
919                      "The structure chain is not valid!" );
920       link<sizeof...( ChainElements ) - 1>();
921     }
922 
StructureChain(StructureChain const & rhs)923     StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( rhs )
924     {
925       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
926                      "The structure chain is not valid!" );
927       link<sizeof...( ChainElements ) - 1>();
928     }
929 
StructureChain(StructureChain && rhs)930     StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT
931       : std::tuple<ChainElements...>( std::forward<std::tuple<ChainElements...>>( rhs ) )
932     {
933       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
934                      "The structure chain is not valid!" );
935       link<sizeof...( ChainElements ) - 1>();
936     }
937 
StructureChain(ChainElements const &...elems)938     StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( elems... )
939     {
940       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
941                      "The structure chain is not valid!" );
942       link<sizeof...( ChainElements ) - 1>();
943     }
944 
operator =(StructureChain const & rhs)945     StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT
946     {
947       std::tuple<ChainElements...>::operator=( rhs );
948       link<sizeof...( ChainElements ) - 1>();
949       return *this;
950     }
951 
952     StructureChain & operator=( StructureChain && rhs ) = delete;
953 
954     template <typename T, size_t Which = 0>
955     T & get() VULKAN_HPP_NOEXCEPT
956     {
957       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...>&>( *this ) );
958     }
959 
960     template <typename T, size_t Which = 0>
961     T const & get() const VULKAN_HPP_NOEXCEPT
962     {
963       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...>&>( *this ) );
964     }
965 
966     template <typename T0, typename T1, typename... Ts>
get()967     std::tuple<T0 &, T1 &, Ts &...> get() VULKAN_HPP_NOEXCEPT
968     {
969       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
970     }
971 
972     template <typename T0, typename T1, typename... Ts>
get() const973     std::tuple<T0 const &, T1 const &, Ts const &...> get() const VULKAN_HPP_NOEXCEPT
974     {
975       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
976     }
977 
978     template <typename ClassType, size_t Which = 0>
relink()979     void relink() VULKAN_HPP_NOEXCEPT
980     {
981       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
982                      "Can't relink Structure that's not part of this StructureChain!" );
983       static_assert(
984         !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || (Which != 0),
985         "It's not allowed to have the first element unlinked!" );
986 
987       auto pNext = reinterpret_cast<VkBaseInStructure *>( &get<ClassType, Which>() );
988       VULKAN_HPP_ASSERT( !isLinked( pNext ) );
989       auto & headElement = std::get<0>( static_cast<std::tuple<ChainElements...>&>( *this ) );
990       pNext->pNext       = reinterpret_cast<VkBaseInStructure const*>(headElement.pNext);
991       headElement.pNext  = pNext;
992     }
993 
994     template <typename ClassType, size_t Which = 0>
unlink()995     void unlink() VULKAN_HPP_NOEXCEPT
996     {
997       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
998                      "Can't unlink Structure that's not part of this StructureChain!" );
999       static_assert(
1000         !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || (Which != 0),
1001         "It's not allowed to unlink the first element!" );
1002 
1003       unlink<sizeof...( ChainElements ) - 1>( reinterpret_cast<VkBaseOutStructure const *>( &get<ClassType, Which>() ) );
1004     }
1005 
1006   private:
1007     template <int Index, typename T, int Which, typename, class First, class... Types>
1008     struct ChainElementIndex : ChainElementIndex<Index + 1, T, Which, void, Types...>
1009     {};
1010 
1011     template <int Index, typename T, int Which, class First, class... Types>
1012     struct ChainElementIndex<Index,
1013                              T,
1014                              Which,
1015                              typename std::enable_if<!std::is_same<T, First>::value, void>::type,
1016                              First,
1017                              Types...> : ChainElementIndex<Index + 1, T, Which, void, Types...>
1018     {};
1019 
1020     template <int Index, typename T, int Which, class First, class... Types>
1021     struct ChainElementIndex<Index,
1022                              T,
1023                              Which,
1024                              typename std::enable_if<std::is_same<T, First>::value, void>::type,
1025                              First,
1026                              Types...> : ChainElementIndex<Index + 1, T, Which - 1, void, Types...>
1027     {};
1028 
1029     template <int Index, typename T, class First, class... Types>
1030     struct ChainElementIndex<Index,
1031                              T,
1032                              0,
1033                              typename std::enable_if<std::is_same<T, First>::value, void>::type,
1034                              First,
1035                              Types...> : std::integral_constant<int, Index>
1036     {};
1037 
isLinked(VkBaseInStructure const * pNext)1038     bool isLinked( VkBaseInStructure const * pNext )
1039     {
1040       VkBaseInStructure const * elementPtr = reinterpret_cast<VkBaseInStructure const*>(&std::get<0>( static_cast<std::tuple<ChainElements...>&>( *this ) ) );
1041       while ( elementPtr )
1042       {
1043         if ( elementPtr->pNext == pNext )
1044         {
1045           return true;
1046         }
1047         elementPtr = elementPtr->pNext;
1048       }
1049       return false;
1050     }
1051 
1052     template <size_t Index>
link()1053     typename std::enable_if<Index != 0, void>::type link() VULKAN_HPP_NOEXCEPT
1054     {
1055       auto & x = std::get<Index - 1>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1056       x.pNext  = &std::get<Index>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1057       link<Index - 1>();
1058     }
1059 
1060     template <size_t Index>
link()1061     typename std::enable_if<Index == 0, void>::type link() VULKAN_HPP_NOEXCEPT
1062     {}
1063 
1064     template <size_t Index>
unlink(VkBaseOutStructure const * pNext)1065     typename std::enable_if<Index != 0, void>::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
1066     {
1067       auto & element = std::get<Index>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1068       if ( element.pNext == pNext )
1069       {
1070         element.pNext = pNext->pNext;
1071       }
1072       else
1073       {
1074         unlink<Index - 1>( pNext );
1075       }
1076     }
1077 
1078     template <size_t Index>
unlink(VkBaseOutStructure const * pNext)1079     typename std::enable_if<Index == 0, void>::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
1080     {
1081       auto & element = std::get<0>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1082       if ( element.pNext == pNext )
1083       {
1084         element.pNext = pNext->pNext;
1085       }
1086       else
1087       {
1088         VULKAN_HPP_ASSERT( false );  // fires, if the ClassType member has already been unlinked !
1089       }
1090     }
1091   };
1092 
1093 #if !defined(VULKAN_HPP_NO_SMART_HANDLE)
1094   template <typename Type, typename Dispatch> class UniqueHandleTraits;
1095 
1096   template <typename Type, typename Dispatch>
1097   class UniqueHandle : public UniqueHandleTraits<Type,Dispatch>::deleter
1098   {
1099   private:
1100     using Deleter = typename UniqueHandleTraits<Type,Dispatch>::deleter;
1101 
1102   public:
1103     using element_type = Type;
1104 
UniqueHandle()1105     UniqueHandle()
1106       : Deleter()
1107       , m_value()
1108     {}
1109 
UniqueHandle(Type const & value,Deleter const & deleter=Deleter ())1110     explicit UniqueHandle( Type const& value, Deleter const& deleter = Deleter() ) VULKAN_HPP_NOEXCEPT
1111       : Deleter( deleter)
1112       , m_value( value )
1113     {}
1114 
1115     UniqueHandle( UniqueHandle const& ) = delete;
1116 
UniqueHandle(UniqueHandle && other)1117     UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1118       : Deleter( std::move( static_cast<Deleter&>( other ) ) )
1119       , m_value( other.release() )
1120     {}
1121 
~UniqueHandle()1122     ~UniqueHandle() VULKAN_HPP_NOEXCEPT
1123     {
1124       if ( m_value ) this->destroy( m_value );
1125     }
1126 
1127     UniqueHandle & operator=( UniqueHandle const& ) = delete;
1128 
operator =(UniqueHandle && other)1129     UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1130     {
1131       reset( other.release() );
1132       *static_cast<Deleter*>(this) = std::move( static_cast<Deleter&>(other) );
1133       return *this;
1134     }
1135 
operator bool() const1136     explicit operator bool() const VULKAN_HPP_NOEXCEPT
1137     {
1138       return m_value.operator bool();
1139     }
1140 
operator ->() const1141     Type const* operator->() const VULKAN_HPP_NOEXCEPT
1142     {
1143       return &m_value;
1144     }
1145 
operator ->()1146     Type * operator->() VULKAN_HPP_NOEXCEPT
1147     {
1148       return &m_value;
1149     }
1150 
operator *() const1151     Type const& operator*() const VULKAN_HPP_NOEXCEPT
1152     {
1153       return m_value;
1154     }
1155 
operator *()1156     Type & operator*() VULKAN_HPP_NOEXCEPT
1157     {
1158       return m_value;
1159     }
1160 
get() const1161     const Type & get() const VULKAN_HPP_NOEXCEPT
1162     {
1163       return m_value;
1164     }
1165 
get()1166     Type & get() VULKAN_HPP_NOEXCEPT
1167     {
1168       return m_value;
1169     }
1170 
reset(Type const & value=Type ())1171     void reset( Type const& value = Type() ) VULKAN_HPP_NOEXCEPT
1172     {
1173       if ( m_value != value )
1174       {
1175         if ( m_value ) this->destroy( m_value );
1176         m_value = value;
1177       }
1178     }
1179 
release()1180     Type release() VULKAN_HPP_NOEXCEPT
1181     {
1182       Type value = m_value;
1183       m_value = nullptr;
1184       return value;
1185     }
1186 
swap(UniqueHandle<Type,Dispatch> & rhs)1187     void swap( UniqueHandle<Type,Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1188     {
1189       std::swap(m_value, rhs.m_value);
1190       std::swap(static_cast<Deleter&>(*this), static_cast<Deleter&>(rhs));
1191     }
1192 
1193   private:
1194     Type    m_value;
1195   };
1196 
1197   template <typename UniqueType>
uniqueToRaw(std::vector<UniqueType> const & handles)1198   VULKAN_HPP_INLINE std::vector<typename UniqueType::element_type> uniqueToRaw(std::vector<UniqueType> const& handles)
1199   {
1200     std::vector<typename UniqueType::element_type> newBuffer(handles.size());
1201     std::transform(handles.begin(), handles.end(), newBuffer.begin(), [](UniqueType const& handle) { return handle.get(); });
1202     return newBuffer;
1203   }
1204 
1205   template <typename Type, typename Dispatch>
swap(UniqueHandle<Type,Dispatch> & lhs,UniqueHandle<Type,Dispatch> & rhs)1206   VULKAN_HPP_INLINE void swap( UniqueHandle<Type,Dispatch> & lhs, UniqueHandle<Type,Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1207   {
1208     lhs.swap( rhs );
1209   }
1210 #endif
1211 
1212 #if !defined(VK_NO_PROTOTYPES)
1213   class DispatchLoaderStatic
1214   {
1215   public:
1216 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkAcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const1217     VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
1218     {
1219       return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain );
1220     }
1221 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1222 
vkAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex) const1223     VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT
1224     {
1225       return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex );
1226     }
1227 
vkAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex) const1228     VkResult vkAcquireNextImageKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT
1229     {
1230       return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex );
1231     }
1232 
vkAcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration) const1233     VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration ) const VULKAN_HPP_NOEXCEPT
1234     {
1235       return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration );
1236     }
1237 
vkAcquireProfilingLockKHR(VkDevice device,const VkAcquireProfilingLockInfoKHR * pInfo) const1238     VkResult vkAcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1239     {
1240       return ::vkAcquireProfilingLockKHR( device, pInfo );
1241     }
1242 
1243 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display) const1244     VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
1245     {
1246       return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display );
1247     }
1248 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
1249 
vkAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers) const1250     VkResult vkAllocateCommandBuffers( VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1251     {
1252       return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers );
1253     }
1254 
vkAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets) const1255     VkResult vkAllocateDescriptorSets( VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1256     {
1257       return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets );
1258     }
1259 
vkAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory) const1260     VkResult vkAllocateMemory( VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory ) const VULKAN_HPP_NOEXCEPT
1261     {
1262       return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory );
1263     }
1264 
vkBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo) const1265     VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo ) const VULKAN_HPP_NOEXCEPT
1266     {
1267       return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo );
1268     }
1269 
1270 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkBindAccelerationStructureMemoryKHR(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoKHR * pBindInfos) const1271     VkResult vkBindAccelerationStructureMemoryKHR( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1272     {
1273       return ::vkBindAccelerationStructureMemoryKHR( device, bindInfoCount, pBindInfos );
1274     }
1275 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1276 
vkBindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoKHR * pBindInfos) const1277     VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1278     {
1279       return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos );
1280     }
1281 
vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1282     VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1283     {
1284       return ::vkBindBufferMemory( device, buffer, memory, memoryOffset );
1285     }
1286 
vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1287     VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1288     {
1289       return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos );
1290     }
1291 
vkBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1292     VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1293     {
1294       return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos );
1295     }
1296 
vkBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1297     VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1298     {
1299       return ::vkBindImageMemory( device, image, memory, memoryOffset );
1300     }
1301 
vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1302     VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1303     {
1304       return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos );
1305     }
1306 
vkBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1307     VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1308     {
1309       return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos );
1310     }
1311 
1312 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkBuildAccelerationStructureKHR(VkDevice device,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos) const1313     VkResult vkBuildAccelerationStructureKHR( VkDevice device, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos ) const VULKAN_HPP_NOEXCEPT
1314     {
1315       return ::vkBuildAccelerationStructureKHR( device, infoCount, pInfos, ppOffsetInfos );
1316     }
1317 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1318 
vkCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin) const1319     void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT
1320     {
1321       return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin );
1322     }
1323 
vkCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const1324     void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
1325     {
1326       return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
1327     }
1328 
vkCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags) const1329     void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT
1330     {
1331       return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags );
1332     }
1333 
vkCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index) const1334     void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const VULKAN_HPP_NOEXCEPT
1335     {
1336       return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index );
1337     }
1338 
vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents) const1339     void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
1340     {
1341       return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents );
1342     }
1343 
vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const1344     void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
1345     {
1346       return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
1347     }
1348 
vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const1349     void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
1350     {
1351       return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
1352     }
1353 
vkCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const1354     void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
1355     {
1356       return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
1357     }
1358 
vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets) const1359     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
1360     {
1361       return ::vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets );
1362     }
1363 
vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType) const1364     void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT
1365     {
1366       return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType );
1367     }
1368 
vkCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline) const1369     void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT
1370     {
1371       return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline );
1372     }
1373 
vkCmdBindPipelineShaderGroupNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline,uint32_t groupIndex) const1374     void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT
1375     {
1376       return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex );
1377     }
1378 
vkCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout) const1379     void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
1380     {
1381       return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout );
1382     }
1383 
vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes) const1384     void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes ) const VULKAN_HPP_NOEXCEPT
1385     {
1386       return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes );
1387     }
1388 
vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets) const1389     void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets ) const VULKAN_HPP_NOEXCEPT
1390     {
1391       return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets );
1392     }
1393 
vkCmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides) const1394     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
1395     {
1396       return ::vkCmdBindVertexBuffers2EXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides );
1397     }
1398 
vkCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter) const1399     void vkCmdBlitImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter ) const VULKAN_HPP_NOEXCEPT
1400     {
1401       return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
1402     }
1403 
vkCmdBlitImage2KHR(VkCommandBuffer commandBuffer,const VkBlitImageInfo2KHR * pBlitImageInfo) const1404     void vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT
1405     {
1406       return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo );
1407     }
1408 
1409 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdBuildAccelerationStructureIndirectKHR(VkCommandBuffer commandBuffer,const VkAccelerationStructureBuildGeometryInfoKHR * pInfo,VkBuffer indirectBuffer,VkDeviceSize indirectOffset,uint32_t indirectStride) const1410     void vkCmdBuildAccelerationStructureIndirectKHR( VkCommandBuffer commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer indirectBuffer, VkDeviceSize indirectOffset, uint32_t indirectStride ) const VULKAN_HPP_NOEXCEPT
1411     {
1412       return ::vkCmdBuildAccelerationStructureIndirectKHR( commandBuffer, pInfo, indirectBuffer, indirectOffset, indirectStride );
1413     }
1414 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1415 
1416 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdBuildAccelerationStructureKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos) const1417     void vkCmdBuildAccelerationStructureKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos ) const VULKAN_HPP_NOEXCEPT
1418     {
1419       return ::vkCmdBuildAccelerationStructureKHR( commandBuffer, infoCount, pInfos, ppOffsetInfos );
1420     }
1421 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1422 
vkCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureKHR dst,VkAccelerationStructureKHR src,VkBuffer scratch,VkDeviceSize scratchOffset) const1423     void vkCmdBuildAccelerationStructureNV( VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT
1424     {
1425       return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset );
1426     }
1427 
vkCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects) const1428     void vkCmdClearAttachments( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects ) const VULKAN_HPP_NOEXCEPT
1429     {
1430       return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects );
1431     }
1432 
vkCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const1433     void vkCmdClearColorImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT
1434     {
1435       return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges );
1436     }
1437 
vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const1438     void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT
1439     {
1440       return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges );
1441     }
1442 
1443 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureInfoKHR * pInfo) const1444     void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1445     {
1446       return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo );
1447     }
1448 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1449 
vkCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureKHR dst,VkAccelerationStructureKHR src,VkCopyAccelerationStructureModeKHR mode) const1450     void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT
1451     {
1452       return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode );
1453     }
1454 
1455 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyAccelerationStructureToMemoryKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const1456     void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1457     {
1458       return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo );
1459     }
1460 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1461 
vkCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions) const1462     void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1463     {
1464       return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions );
1465     }
1466 
vkCmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2KHR * pCopyBufferInfo) const1467     void vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT
1468     {
1469       return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo );
1470     }
1471 
vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions) const1472     void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1473     {
1474       return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
1475     }
1476 
vkCmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2KHR * pCopyBufferToImageInfo) const1477     void vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
1478     {
1479       return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo );
1480     }
1481 
vkCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions) const1482     void vkCmdCopyImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1483     {
1484       return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1485     }
1486 
vkCmdCopyImage2KHR(VkCommandBuffer commandBuffer,const VkCopyImageInfo2KHR * pCopyImageInfo) const1487     void vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT
1488     {
1489       return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo );
1490     }
1491 
vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions) const1492     void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1493     {
1494       return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
1495     }
1496 
vkCmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2KHR * pCopyImageToBufferInfo) const1497     void vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
1498     {
1499       return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo );
1500     }
1501 
1502 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyMemoryToAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const1503     void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1504     {
1505       return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo );
1506     }
1507 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1508 
vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags) const1509     void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
1510     {
1511       return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags );
1512     }
1513 
vkCmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const1514     void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1515     {
1516       return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo );
1517     }
1518 
vkCmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer) const1519     void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1520     {
1521       return ::vkCmdDebugMarkerEndEXT( commandBuffer );
1522     }
1523 
vkCmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const1524     void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1525     {
1526       return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
1527     }
1528 
vkCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1529     void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
1530     {
1531       return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ );
1532     }
1533 
vkCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1534     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
1535     {
1536       return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
1537     }
1538 
vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1539     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
1540     {
1541       return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
1542     }
1543 
vkCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset) const1544     void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
1545     {
1546       return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset );
1547     }
1548 
vkCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance) const1549     void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
1550     {
1551       return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
1552     }
1553 
vkCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance) const1554     void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
1555     {
1556       return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
1557     }
1558 
vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1559     void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1560     {
1561       return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride );
1562     }
1563 
vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1564     void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1565     {
1566       return ::vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1567     }
1568 
vkCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1569     void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1570     {
1571       return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1572     }
1573 
vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1574     void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1575     {
1576       return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1577     }
1578 
vkCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1579     void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1580     {
1581       return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride );
1582     }
1583 
vkCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride) const1584     void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT
1585     {
1586       return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride );
1587     }
1588 
vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1589     void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1590     {
1591       return ::vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1592     }
1593 
vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1594     void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1595     {
1596       return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1597     }
1598 
vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1599     void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1600     {
1601       return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1602     }
1603 
vkCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1604     void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1605     {
1606       return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1607     }
1608 
vkCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1609     void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1610     {
1611       return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride );
1612     }
1613 
vkCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask) const1614     void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT
1615     {
1616       return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask );
1617     }
1618 
vkCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer) const1619     void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1620     {
1621       return ::vkCmdEndConditionalRenderingEXT( commandBuffer );
1622     }
1623 
vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) const1624     void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1625     {
1626       return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer );
1627     }
1628 
vkCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query) const1629     void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
1630     {
1631       return ::vkCmdEndQuery( commandBuffer, queryPool, query );
1632     }
1633 
vkCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index) const1634     void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT
1635     {
1636       return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index );
1637     }
1638 
vkCmdEndRenderPass(VkCommandBuffer commandBuffer) const1639     void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1640     {
1641       return ::vkCmdEndRenderPass( commandBuffer );
1642     }
1643 
vkCmdEndRenderPass2(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const1644     void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1645     {
1646       return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo );
1647     }
1648 
vkCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const1649     void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1650     {
1651       return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo );
1652     }
1653 
vkCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const1654     void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
1655     {
1656       return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
1657     }
1658 
vkCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const1659     void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1660     {
1661       return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers );
1662     }
1663 
vkCmdExecuteGeneratedCommandsNV(VkCommandBuffer commandBuffer,VkBool32 isPreprocessed,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const1664     void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
1665     {
1666       return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo );
1667     }
1668 
vkCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data) const1669     void vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT
1670     {
1671       return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data );
1672     }
1673 
vkCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const1674     void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
1675     {
1676       return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
1677     }
1678 
vkCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents) const1679     void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
1680     {
1681       return ::vkCmdNextSubpass( commandBuffer, contents );
1682     }
1683 
vkCmdNextSubpass2(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const1684     void vkCmdNextSubpass2( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1685     {
1686       return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
1687     }
1688 
vkCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const1689     void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1690     {
1691       return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
1692     }
1693 
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) const1694     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
1695     {
1696       return ::vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
1697     }
1698 
vkCmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const1699     void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
1700     {
1701       return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo );
1702     }
1703 
vkCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues) const1704     void vkCmdPushConstants( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues ) const VULKAN_HPP_NOEXCEPT
1705     {
1706       return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues );
1707     }
1708 
vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites) const1709     void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT
1710     {
1711       return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites );
1712     }
1713 
vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData) const1714     void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData ) const VULKAN_HPP_NOEXCEPT
1715     {
1716       return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData );
1717     }
1718 
vkCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const1719     void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1720     {
1721       return ::vkCmdResetEvent( commandBuffer, event, stageMask );
1722     }
1723 
vkCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const1724     void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
1725     {
1726       return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount );
1727     }
1728 
vkCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions) const1729     void vkCmdResolveImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions ) const VULKAN_HPP_NOEXCEPT
1730     {
1731       return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1732     }
1733 
vkCmdResolveImage2KHR(VkCommandBuffer commandBuffer,const VkResolveImageInfo2KHR * pResolveImageInfo) const1734     void vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT
1735     {
1736       return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo );
1737     }
1738 
vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4]) const1739     void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT
1740     {
1741       return ::vkCmdSetBlendConstants( commandBuffer, blendConstants );
1742     }
1743 
vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker) const1744     void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT
1745     {
1746       return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker );
1747     }
1748 
vkCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders) const1749     void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT
1750     {
1751       return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
1752     }
1753 
vkCmdSetCullModeEXT(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode) const1754     void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
1755     {
1756       return ::vkCmdSetCullModeEXT( commandBuffer, cullMode );
1757     }
1758 
vkCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor) const1759     void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT
1760     {
1761       return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
1762     }
1763 
vkCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds) const1764     void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT
1765     {
1766       return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds );
1767     }
1768 
vkCmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable) const1769     void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
1770     {
1771       return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable );
1772     }
1773 
vkCmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp) const1774     void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
1775     {
1776       return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp );
1777     }
1778 
vkCmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable) const1779     void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
1780     {
1781       return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable );
1782     }
1783 
vkCmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable) const1784     void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
1785     {
1786       return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable );
1787     }
1788 
vkCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask) const1789     void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
1790     {
1791       return ::vkCmdSetDeviceMask( commandBuffer, deviceMask );
1792     }
1793 
vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask) const1794     void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
1795     {
1796       return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask );
1797     }
1798 
vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles) const1799     void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT
1800     {
1801       return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
1802     }
1803 
vkCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const1804     void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1805     {
1806       return ::vkCmdSetEvent( commandBuffer, event, stageMask );
1807     }
1808 
vkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors) const1809     void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT
1810     {
1811       return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors );
1812     }
1813 
vkCmdSetFragmentShadingRateKHR(VkCommandBuffer commandBuffer,const VkExtent2D * pFragmentSize,const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const1814     void vkCmdSetFragmentShadingRateKHR( VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
1815     {
1816       return ::vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps );
1817     }
1818 
vkCmdSetFrontFaceEXT(VkCommandBuffer commandBuffer,VkFrontFace frontFace) const1819     void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
1820     {
1821       return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace );
1822     }
1823 
vkCmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern) const1824     void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT
1825     {
1826       return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern );
1827     }
1828 
vkCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth) const1829     void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT
1830     {
1831       return ::vkCmdSetLineWidth( commandBuffer, lineWidth );
1832     }
1833 
vkCmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo) const1834     VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1835     {
1836       return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo );
1837     }
1838 
vkCmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo) const1839     VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo ) const VULKAN_HPP_NOEXCEPT
1840     {
1841       return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo );
1842     }
1843 
vkCmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo) const1844     VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1845     {
1846       return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo );
1847     }
1848 
vkCmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology) const1849     void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
1850     {
1851       return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology );
1852     }
1853 
vkCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo) const1854     void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT
1855     {
1856       return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo );
1857     }
1858 
vkCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors) const1859     void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT
1860     {
1861       return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors );
1862     }
1863 
vkCmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors) const1864     void vkCmdSetScissorWithCountEXT( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT
1865     {
1866       return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors );
1867     }
1868 
vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask) const1869     void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT
1870     {
1871       return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask );
1872     }
1873 
vkCmdSetStencilOpEXT(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp) const1874     void vkCmdSetStencilOpEXT( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp ) const VULKAN_HPP_NOEXCEPT
1875     {
1876       return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp );
1877     }
1878 
vkCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference) const1879     void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT
1880     {
1881       return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference );
1882     }
1883 
vkCmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable) const1884     void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
1885     {
1886       return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable );
1887     }
1888 
vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask) const1889     void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT
1890     {
1891       return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask );
1892     }
1893 
vkCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports) const1894     void vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT
1895     {
1896       return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports );
1897     }
1898 
vkCmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes) const1899     void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes ) const VULKAN_HPP_NOEXCEPT
1900     {
1901       return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes );
1902     }
1903 
vkCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings) const1904     void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings ) const VULKAN_HPP_NOEXCEPT
1905     {
1906       return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings );
1907     }
1908 
vkCmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports) const1909     void vkCmdSetViewportWithCountEXT( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT
1910     {
1911       return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports );
1912     }
1913 
1914 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,const VkStridedBufferRegionKHR * pRaygenShaderBindingTable,const VkStridedBufferRegionKHR * pMissShaderBindingTable,const VkStridedBufferRegionKHR * pHitShaderBindingTable,const VkStridedBufferRegionKHR * pCallableShaderBindingTable,VkBuffer buffer,VkDeviceSize offset) const1915     void vkCmdTraceRaysIndirectKHR( VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
1916     {
1917       return ::vkCmdTraceRaysIndirectKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, buffer, offset );
1918     }
1919 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1920 
1921 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdTraceRaysKHR(VkCommandBuffer commandBuffer,const VkStridedBufferRegionKHR * pRaygenShaderBindingTable,const VkStridedBufferRegionKHR * pMissShaderBindingTable,const VkStridedBufferRegionKHR * pHitShaderBindingTable,const VkStridedBufferRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth) const1922     void vkCmdTraceRaysKHR( VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT
1923     {
1924       return ::vkCmdTraceRaysKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth );
1925     }
1926 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1927 
vkCmdTraceRaysNV(VkCommandBuffer commandBuffer,VkBuffer raygenShaderBindingTableBuffer,VkDeviceSize raygenShaderBindingOffset,VkBuffer missShaderBindingTableBuffer,VkDeviceSize missShaderBindingOffset,VkDeviceSize missShaderBindingStride,VkBuffer hitShaderBindingTableBuffer,VkDeviceSize hitShaderBindingOffset,VkDeviceSize hitShaderBindingStride,VkBuffer callableShaderBindingTableBuffer,VkDeviceSize callableShaderBindingOffset,VkDeviceSize callableShaderBindingStride,uint32_t width,uint32_t height,uint32_t depth) const1928     void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT
1929     {
1930       return ::vkCmdTraceRaysNV( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth );
1931     }
1932 
vkCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData) const1933     void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData ) const VULKAN_HPP_NOEXCEPT
1934     {
1935       return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData );
1936     }
1937 
vkCmdWaitEvents(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers) const1938     void vkCmdWaitEvents( VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
1939     {
1940       return ::vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
1941     }
1942 
1943 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdWriteAccelerationStructuresPropertiesKHR(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const1944     void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
1945     {
1946       return ::vkCmdWriteAccelerationStructuresPropertiesKHR( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
1947     }
1948 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1949 
vkCmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const1950     void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
1951     {
1952       return ::vkCmdWriteAccelerationStructuresPropertiesNV( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
1953     }
1954 
vkCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker) const1955     void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT
1956     {
1957       return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker );
1958     }
1959 
vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query) const1960     void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
1961     {
1962       return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query );
1963     }
1964 
vkCompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader) const1965     VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT
1966     {
1967       return ::vkCompileDeferredNV( device, pipeline, shader );
1968     }
1969 
1970 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyAccelerationStructureKHR(VkDevice device,const VkCopyAccelerationStructureInfoKHR * pInfo) const1971     VkResult vkCopyAccelerationStructureKHR( VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1972     {
1973       return ::vkCopyAccelerationStructureKHR( device, pInfo );
1974     }
1975 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1976 
1977 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyAccelerationStructureToMemoryKHR(VkDevice device,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const1978     VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1979     {
1980       return ::vkCopyAccelerationStructureToMemoryKHR( device, pInfo );
1981     }
1982 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1983 
1984 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyMemoryToAccelerationStructureKHR(VkDevice device,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const1985     VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1986     {
1987       return ::vkCopyMemoryToAccelerationStructureKHR( device, pInfo );
1988     }
1989 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1990 
1991 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateAccelerationStructureKHR(VkDevice device,const VkAccelerationStructureCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureKHR * pAccelerationStructure) const1992     VkResult vkCreateAccelerationStructureKHR( VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
1993     {
1994       return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure );
1995     }
1996 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1997 
vkCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure) const1998     VkResult vkCreateAccelerationStructureNV( VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
1999     {
2000       return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure );
2001     }
2002 
2003 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2004     VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2005     {
2006       return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2007     }
2008 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2009 
vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer) const2010     VkResult vkCreateBuffer( VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer ) const VULKAN_HPP_NOEXCEPT
2011     {
2012       return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer );
2013     }
2014 
vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView) const2015     VkResult vkCreateBufferView( VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView ) const VULKAN_HPP_NOEXCEPT
2016     {
2017       return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView );
2018     }
2019 
vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool) const2020     VkResult vkCreateCommandPool( VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool ) const VULKAN_HPP_NOEXCEPT
2021     {
2022       return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool );
2023     }
2024 
vkCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2025     VkResult vkCreateComputePipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2026     {
2027       return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2028     }
2029 
vkCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback) const2030     VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback ) const VULKAN_HPP_NOEXCEPT
2031     {
2032       return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback );
2033     }
2034 
vkCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger) const2035     VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger ) const VULKAN_HPP_NOEXCEPT
2036     {
2037       return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger );
2038     }
2039 
2040 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateDeferredOperationKHR(VkDevice device,const VkAllocationCallbacks * pAllocator,VkDeferredOperationKHR * pDeferredOperation) const2041     VkResult vkCreateDeferredOperationKHR( VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation ) const VULKAN_HPP_NOEXCEPT
2042     {
2043       return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation );
2044     }
2045 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2046 
vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool) const2047     VkResult vkCreateDescriptorPool( VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool ) const VULKAN_HPP_NOEXCEPT
2048     {
2049       return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool );
2050     }
2051 
vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout) const2052     VkResult vkCreateDescriptorSetLayout( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout ) const VULKAN_HPP_NOEXCEPT
2053     {
2054       return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout );
2055     }
2056 
vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const2057     VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
2058     {
2059       return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
2060     }
2061 
vkCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const2062     VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
2063     {
2064       return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
2065     }
2066 
vkCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice) const2067     VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice ) const VULKAN_HPP_NOEXCEPT
2068     {
2069       return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice );
2070     }
2071 
2072 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
vkCreateDirectFBSurfaceEXT(VkInstance instance,const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2073     VkResult vkCreateDirectFBSurfaceEXT( VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2074     {
2075       return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2076     }
2077 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
2078 
vkCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode) const2079     VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode ) const VULKAN_HPP_NOEXCEPT
2080     {
2081       return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode );
2082     }
2083 
vkCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2084     VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2085     {
2086       return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2087     }
2088 
vkCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent) const2089     VkResult vkCreateEvent( VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent ) const VULKAN_HPP_NOEXCEPT
2090     {
2091       return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent );
2092     }
2093 
vkCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const2094     VkResult vkCreateFence( VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
2095     {
2096       return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence );
2097     }
2098 
vkCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer) const2099     VkResult vkCreateFramebuffer( VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer ) const VULKAN_HPP_NOEXCEPT
2100     {
2101       return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer );
2102     }
2103 
vkCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2104     VkResult vkCreateGraphicsPipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2105     {
2106       return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2107     }
2108 
vkCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2109     VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2110     {
2111       return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2112     }
2113 
2114 #ifdef VK_USE_PLATFORM_IOS_MVK
vkCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2115     VkResult vkCreateIOSSurfaceMVK( VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2116     {
2117       return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2118     }
2119 #endif /*VK_USE_PLATFORM_IOS_MVK*/
2120 
vkCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage) const2121     VkResult vkCreateImage( VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage ) const VULKAN_HPP_NOEXCEPT
2122     {
2123       return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage );
2124     }
2125 
2126 #ifdef VK_USE_PLATFORM_FUCHSIA
vkCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2127     VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2128     {
2129       return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface );
2130     }
2131 #endif /*VK_USE_PLATFORM_FUCHSIA*/
2132 
vkCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView) const2133     VkResult vkCreateImageView( VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView ) const VULKAN_HPP_NOEXCEPT
2134     {
2135       return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView );
2136     }
2137 
vkCreateIndirectCommandsLayoutNV(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNV * pIndirectCommandsLayout) const2138     VkResult vkCreateIndirectCommandsLayoutNV( VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT
2139     {
2140       return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
2141     }
2142 
vkCreateInstance(const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance) const2143     VkResult vkCreateInstance( const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance ) const VULKAN_HPP_NOEXCEPT
2144     {
2145       return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance );
2146     }
2147 
2148 #ifdef VK_USE_PLATFORM_MACOS_MVK
vkCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2149     VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2150     {
2151       return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2152     }
2153 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
2154 
2155 #ifdef VK_USE_PLATFORM_METAL_EXT
vkCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2156     VkResult vkCreateMetalSurfaceEXT( VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2157     {
2158       return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2159     }
2160 #endif /*VK_USE_PLATFORM_METAL_EXT*/
2161 
vkCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache) const2162     VkResult vkCreatePipelineCache( VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache ) const VULKAN_HPP_NOEXCEPT
2163     {
2164       return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache );
2165     }
2166 
vkCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout) const2167     VkResult vkCreatePipelineLayout( VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout ) const VULKAN_HPP_NOEXCEPT
2168     {
2169       return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout );
2170     }
2171 
vkCreatePrivateDataSlotEXT(VkDevice device,const VkPrivateDataSlotCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlotEXT * pPrivateDataSlot) const2172     VkResult vkCreatePrivateDataSlotEXT( VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
2173     {
2174       return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot );
2175     }
2176 
vkCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool) const2177     VkResult vkCreateQueryPool( VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool ) const VULKAN_HPP_NOEXCEPT
2178     {
2179       return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool );
2180     }
2181 
2182 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateRayTracingPipelinesKHR(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2183     VkResult vkCreateRayTracingPipelinesKHR( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2184     {
2185       return ::vkCreateRayTracingPipelinesKHR( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2186     }
2187 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2188 
vkCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2189     VkResult vkCreateRayTracingPipelinesNV( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2190     {
2191       return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2192     }
2193 
vkCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2194     VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2195     {
2196       return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass );
2197     }
2198 
vkCreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2199     VkResult vkCreateRenderPass2( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2200     {
2201       return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass );
2202     }
2203 
vkCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2204     VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2205     {
2206       return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass );
2207     }
2208 
vkCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler) const2209     VkResult vkCreateSampler( VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler ) const VULKAN_HPP_NOEXCEPT
2210     {
2211       return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler );
2212     }
2213 
vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const2214     VkResult vkCreateSamplerYcbcrConversion( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
2215     {
2216       return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion );
2217     }
2218 
vkCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const2219     VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
2220     {
2221       return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion );
2222     }
2223 
vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore) const2224     VkResult vkCreateSemaphore( VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore ) const VULKAN_HPP_NOEXCEPT
2225     {
2226       return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore );
2227     }
2228 
vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule) const2229     VkResult vkCreateShaderModule( VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule ) const VULKAN_HPP_NOEXCEPT
2230     {
2231       return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule );
2232     }
2233 
vkCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains) const2234     VkResult vkCreateSharedSwapchainsKHR( VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains ) const VULKAN_HPP_NOEXCEPT
2235     {
2236       return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains );
2237     }
2238 
2239 #ifdef VK_USE_PLATFORM_GGP
vkCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2240     VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2241     {
2242       return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface );
2243     }
2244 #endif /*VK_USE_PLATFORM_GGP*/
2245 
vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain) const2246     VkResult vkCreateSwapchainKHR( VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain ) const VULKAN_HPP_NOEXCEPT
2247     {
2248       return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain );
2249     }
2250 
vkCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache) const2251     VkResult vkCreateValidationCacheEXT( VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache ) const VULKAN_HPP_NOEXCEPT
2252     {
2253       return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache );
2254     }
2255 
2256 #ifdef VK_USE_PLATFORM_VI_NN
vkCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2257     VkResult vkCreateViSurfaceNN( VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2258     {
2259       return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface );
2260     }
2261 #endif /*VK_USE_PLATFORM_VI_NN*/
2262 
2263 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2264     VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2265     {
2266       return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2267     }
2268 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
2269 
2270 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2271     VkResult vkCreateWin32SurfaceKHR( VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2272     {
2273       return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2274     }
2275 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2276 
2277 #ifdef VK_USE_PLATFORM_XCB_KHR
vkCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2278     VkResult vkCreateXcbSurfaceKHR( VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2279     {
2280       return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2281     }
2282 #endif /*VK_USE_PLATFORM_XCB_KHR*/
2283 
2284 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2285     VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2286     {
2287       return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2288     }
2289 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
2290 
vkDebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo) const2291     VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT
2292     {
2293       return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo );
2294     }
2295 
vkDebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo) const2296     VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT
2297     {
2298       return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo );
2299     }
2300 
vkDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage) const2301     void vkDebugReportMessageEXT( VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage ) const VULKAN_HPP_NOEXCEPT
2302     {
2303       return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage );
2304     }
2305 
2306 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkDeferredOperationJoinKHR(VkDevice device,VkDeferredOperationKHR operation) const2307     VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2308     {
2309       return ::vkDeferredOperationJoinKHR( device, operation );
2310     }
2311 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2312 
2313 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkDestroyAccelerationStructureKHR(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator) const2314     void vkDestroyAccelerationStructureKHR( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2315     {
2316       return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator );
2317     }
2318 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2319 
vkDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator) const2320     void vkDestroyAccelerationStructureNV( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2321     {
2322       return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator );
2323     }
2324 
vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator) const2325     void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2326     {
2327       return ::vkDestroyBuffer( device, buffer, pAllocator );
2328     }
2329 
vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator) const2330     void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2331     {
2332       return ::vkDestroyBufferView( device, bufferView, pAllocator );
2333     }
2334 
vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator) const2335     void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2336     {
2337       return ::vkDestroyCommandPool( device, commandPool, pAllocator );
2338     }
2339 
vkDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator) const2340     void vkDestroyDebugReportCallbackEXT( VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2341     {
2342       return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator );
2343     }
2344 
vkDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator) const2345     void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2346     {
2347       return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator );
2348     }
2349 
2350 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkDestroyDeferredOperationKHR(VkDevice device,VkDeferredOperationKHR operation,const VkAllocationCallbacks * pAllocator) const2351     void vkDestroyDeferredOperationKHR( VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2352     {
2353       return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator );
2354     }
2355 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2356 
vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator) const2357     void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2358     {
2359       return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator );
2360     }
2361 
vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator) const2362     void vkDestroyDescriptorSetLayout( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2363     {
2364       return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator );
2365     }
2366 
vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const2367     void vkDestroyDescriptorUpdateTemplate( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2368     {
2369       return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator );
2370     }
2371 
vkDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const2372     void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2373     {
2374       return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator );
2375     }
2376 
vkDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator) const2377     void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2378     {
2379       return ::vkDestroyDevice( device, pAllocator );
2380     }
2381 
vkDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator) const2382     void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2383     {
2384       return ::vkDestroyEvent( device, event, pAllocator );
2385     }
2386 
vkDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator) const2387     void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2388     {
2389       return ::vkDestroyFence( device, fence, pAllocator );
2390     }
2391 
vkDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator) const2392     void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2393     {
2394       return ::vkDestroyFramebuffer( device, framebuffer, pAllocator );
2395     }
2396 
vkDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator) const2397     void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2398     {
2399       return ::vkDestroyImage( device, image, pAllocator );
2400     }
2401 
vkDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator) const2402     void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2403     {
2404       return ::vkDestroyImageView( device, imageView, pAllocator );
2405     }
2406 
vkDestroyIndirectCommandsLayoutNV(VkDevice device,VkIndirectCommandsLayoutNV indirectCommandsLayout,const VkAllocationCallbacks * pAllocator) const2407     void vkDestroyIndirectCommandsLayoutNV( VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2408     {
2409       return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator );
2410     }
2411 
vkDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator) const2412     void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2413     {
2414       return ::vkDestroyInstance( instance, pAllocator );
2415     }
2416 
vkDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator) const2417     void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2418     {
2419       return ::vkDestroyPipeline( device, pipeline, pAllocator );
2420     }
2421 
vkDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator) const2422     void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2423     {
2424       return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator );
2425     }
2426 
vkDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator) const2427     void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2428     {
2429       return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator );
2430     }
2431 
vkDestroyPrivateDataSlotEXT(VkDevice device,VkPrivateDataSlotEXT privateDataSlot,const VkAllocationCallbacks * pAllocator) const2432     void vkDestroyPrivateDataSlotEXT( VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2433     {
2434       return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator );
2435     }
2436 
vkDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator) const2437     void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2438     {
2439       return ::vkDestroyQueryPool( device, queryPool, pAllocator );
2440     }
2441 
vkDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator) const2442     void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2443     {
2444       return ::vkDestroyRenderPass( device, renderPass, pAllocator );
2445     }
2446 
vkDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator) const2447     void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2448     {
2449       return ::vkDestroySampler( device, sampler, pAllocator );
2450     }
2451 
vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const2452     void vkDestroySamplerYcbcrConversion( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2453     {
2454       return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator );
2455     }
2456 
vkDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const2457     void vkDestroySamplerYcbcrConversionKHR( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2458     {
2459       return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator );
2460     }
2461 
vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator) const2462     void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2463     {
2464       return ::vkDestroySemaphore( device, semaphore, pAllocator );
2465     }
2466 
vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator) const2467     void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2468     {
2469       return ::vkDestroyShaderModule( device, shaderModule, pAllocator );
2470     }
2471 
vkDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator) const2472     void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2473     {
2474       return ::vkDestroySurfaceKHR( instance, surface, pAllocator );
2475     }
2476 
vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator) const2477     void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2478     {
2479       return ::vkDestroySwapchainKHR( device, swapchain, pAllocator );
2480     }
2481 
vkDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator) const2482     void vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2483     {
2484       return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator );
2485     }
2486 
vkDeviceWaitIdle(VkDevice device) const2487     VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT
2488     {
2489       return ::vkDeviceWaitIdle( device );
2490     }
2491 
vkDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo) const2492     VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT
2493     {
2494       return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo );
2495     }
2496 
vkEndCommandBuffer(VkCommandBuffer commandBuffer) const2497     VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
2498     {
2499       return ::vkEndCommandBuffer( commandBuffer );
2500     }
2501 
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const2502     VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2503     {
2504       return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties );
2505     }
2506 
vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties) const2507     VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2508     {
2509       return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties );
2510     }
2511 
vkEnumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const2512     VkResult vkEnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2513     {
2514       return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties );
2515     }
2516 
vkEnumerateInstanceLayerProperties(uint32_t * pPropertyCount,VkLayerProperties * pProperties) const2517     VkResult vkEnumerateInstanceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2518     {
2519       return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties );
2520     }
2521 
vkEnumerateInstanceVersion(uint32_t * pApiVersion) const2522     VkResult vkEnumerateInstanceVersion( uint32_t* pApiVersion ) const VULKAN_HPP_NOEXCEPT
2523     {
2524       return ::vkEnumerateInstanceVersion( pApiVersion );
2525     }
2526 
vkEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2527     VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2528     {
2529       return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2530     }
2531 
vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2532     VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2533     {
2534       return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2535     }
2536 
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions) const2537     VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT
2538     {
2539       return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions );
2540     }
2541 
vkEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices) const2542     VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT
2543     {
2544       return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices );
2545     }
2546 
vkFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const2547     VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
2548     {
2549       return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
2550     }
2551 
vkFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const2552     void vkFreeCommandBuffers( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
2553     {
2554       return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers );
2555     }
2556 
vkFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets) const2557     VkResult vkFreeDescriptorSets( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
2558     {
2559       return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets );
2560     }
2561 
vkFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator) const2562     void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2563     {
2564       return ::vkFreeMemory( device, memory, pAllocator );
2565     }
2566 
2567 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetAccelerationStructureDeviceAddressKHR(VkDevice device,const VkAccelerationStructureDeviceAddressInfoKHR * pInfo) const2568     VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
2569     {
2570       return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo );
2571     }
2572 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2573 
vkGetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureKHR accelerationStructure,size_t dataSize,void * pData) const2574     VkResult vkGetAccelerationStructureHandleNV( VkDevice device, VkAccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
2575     {
2576       return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData );
2577     }
2578 
2579 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetAccelerationStructureMemoryRequirementsKHR(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoKHR * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2580     void vkGetAccelerationStructureMemoryRequirementsKHR( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2581     {
2582       return ::vkGetAccelerationStructureMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
2583     }
2584 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2585 
vkGetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements) const2586     void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2587     {
2588       return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
2589     }
2590 
2591 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties) const2592     VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const VULKAN_HPP_NOEXCEPT
2593     {
2594       return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties );
2595     }
2596 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2597 
vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2598     VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2599     {
2600       return ::vkGetBufferDeviceAddress( device, pInfo );
2601     }
2602 
vkGetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2603     VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2604     {
2605       return ::vkGetBufferDeviceAddressEXT( device, pInfo );
2606     }
2607 
vkGetBufferDeviceAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2608     VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2609     {
2610       return ::vkGetBufferDeviceAddressKHR( device, pInfo );
2611     }
2612 
vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements) const2613     void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2614     {
2615       return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements );
2616     }
2617 
vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2618     void vkGetBufferMemoryRequirements2( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2619     {
2620       return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements );
2621     }
2622 
vkGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2623     void vkGetBufferMemoryRequirements2KHR( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2624     {
2625       return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
2626     }
2627 
vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2628     uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2629     {
2630       return ::vkGetBufferOpaqueCaptureAddress( device, pInfo );
2631     }
2632 
vkGetBufferOpaqueCaptureAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2633     uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2634     {
2635       return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo );
2636     }
2637 
vkGetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation) const2638     VkResult vkGetCalibratedTimestampsEXT( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
2639     {
2640       return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
2641     }
2642 
2643 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeferredOperationMaxConcurrencyKHR(VkDevice device,VkDeferredOperationKHR operation) const2644     uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2645     {
2646       return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation );
2647     }
2648 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2649 
2650 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeferredOperationResultKHR(VkDevice device,VkDeferredOperationKHR operation) const2651     VkResult vkGetDeferredOperationResultKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2652     {
2653       return ::vkGetDeferredOperationResultKHR( device, operation );
2654     }
2655 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2656 
vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2657     void vkGetDescriptorSetLayoutSupport( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT
2658     {
2659       return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport );
2660     }
2661 
vkGetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2662     void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT
2663     {
2664       return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport );
2665     }
2666 
2667 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeviceAccelerationStructureCompatibilityKHR(VkDevice device,const VkAccelerationStructureVersionKHR * version) const2668     VkResult vkGetDeviceAccelerationStructureCompatibilityKHR( VkDevice device, const VkAccelerationStructureVersionKHR* version ) const VULKAN_HPP_NOEXCEPT
2669     {
2670       return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, version );
2671     }
2672 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2673 
vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2674     void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2675     {
2676       return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2677     }
2678 
vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2679     void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2680     {
2681       return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2682     }
2683 
vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities) const2684     VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT
2685     {
2686       return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities );
2687     }
2688 
2689 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkDeviceGroupPresentModeFlagsKHR * pModes) const2690     VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT
2691     {
2692       return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes );
2693     }
2694 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2695 
vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes) const2696     VkResult vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT
2697     {
2698       return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes );
2699     }
2700 
vkGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes) const2701     void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT
2702     {
2703       return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes );
2704     }
2705 
vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2706     uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2707     {
2708       return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo );
2709     }
2710 
vkGetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2711     uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2712     {
2713       return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo );
2714     }
2715 
vkGetDeviceProcAddr(VkDevice device,const char * pName) const2716     PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const VULKAN_HPP_NOEXCEPT
2717     {
2718       return ::vkGetDeviceProcAddr( device, pName );
2719     }
2720 
vkGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue) const2721     void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT
2722     {
2723       return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue );
2724     }
2725 
vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue) const2726     void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT
2727     {
2728       return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue );
2729     }
2730 
vkGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModeProperties2KHR * pProperties) const2731     VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2732     {
2733       return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties );
2734     }
2735 
vkGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties) const2736     VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2737     {
2738       return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties );
2739     }
2740 
vkGetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo,VkDisplayPlaneCapabilities2KHR * pCapabilities) const2741     VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT
2742     {
2743       return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities );
2744     }
2745 
vkGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities) const2746     VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT
2747     {
2748       return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities );
2749     }
2750 
vkGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays) const2751     VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ) const VULKAN_HPP_NOEXCEPT
2752     {
2753       return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays );
2754     }
2755 
vkGetEventStatus(VkDevice device,VkEvent event) const2756     VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
2757     {
2758       return ::vkGetEventStatus( device, event );
2759     }
2760 
vkGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd) const2761     VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
2762     {
2763       return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd );
2764     }
2765 
vkGetFenceStatus(VkDevice device,VkFence fence) const2766     VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT
2767     {
2768       return ::vkGetFenceStatus( device, fence );
2769     }
2770 
2771 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const2772     VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2773     {
2774       return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
2775     }
2776 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2777 
vkGetGeneratedCommandsMemoryRequirementsNV(VkDevice device,const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2778     void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2779     {
2780       return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
2781     }
2782 
vkGetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties) const2783     VkResult vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties ) const VULKAN_HPP_NOEXCEPT
2784     {
2785       return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties );
2786     }
2787 
vkGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements) const2788     void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2789     {
2790       return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements );
2791     }
2792 
vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2793     void vkGetImageMemoryRequirements2( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2794     {
2795       return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements );
2796     }
2797 
vkGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2798     void vkGetImageMemoryRequirements2KHR( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2799     {
2800       return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
2801     }
2802 
vkGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements) const2803     void vkGetImageSparseMemoryRequirements( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2804     {
2805       return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2806     }
2807 
vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2808     void vkGetImageSparseMemoryRequirements2( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2809     {
2810       return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2811     }
2812 
vkGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2813     void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2814     {
2815       return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2816     }
2817 
vkGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout) const2818     void vkGetImageSubresourceLayout( VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout ) const VULKAN_HPP_NOEXCEPT
2819     {
2820       return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout );
2821     }
2822 
vkGetImageViewAddressNVX(VkDevice device,VkImageView imageView,VkImageViewAddressPropertiesNVX * pProperties) const2823     VkResult vkGetImageViewAddressNVX( VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties ) const VULKAN_HPP_NOEXCEPT
2824     {
2825       return ::vkGetImageViewAddressNVX( device, imageView, pProperties );
2826     }
2827 
vkGetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo) const2828     uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo ) const VULKAN_HPP_NOEXCEPT
2829     {
2830       return ::vkGetImageViewHandleNVX( device, pInfo );
2831     }
2832 
vkGetInstanceProcAddr(VkInstance instance,const char * pName) const2833     PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const VULKAN_HPP_NOEXCEPT
2834     {
2835       return ::vkGetInstanceProcAddr( instance, pName );
2836     }
2837 
2838 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer) const2839     VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer ) const VULKAN_HPP_NOEXCEPT
2840     {
2841       return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer );
2842     }
2843 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2844 
vkGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd) const2845     VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
2846     {
2847       return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd );
2848     }
2849 
vkGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties) const2850     VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT
2851     {
2852       return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties );
2853     }
2854 
vkGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties) const2855     VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT
2856     {
2857       return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties );
2858     }
2859 
2860 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const2861     VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2862     {
2863       return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
2864     }
2865 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2866 
2867 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle) const2868     VkResult vkGetMemoryWin32HandleNV( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2869     {
2870       return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle );
2871     }
2872 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2873 
2874 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties) const2875     VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT
2876     {
2877       return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties );
2878     }
2879 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2880 
vkGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings) const2881     VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ) const VULKAN_HPP_NOEXCEPT
2882     {
2883       return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings );
2884     }
2885 
vkGetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue) const2886     VkResult vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue ) const VULKAN_HPP_NOEXCEPT
2887     {
2888       return ::vkGetPerformanceParameterINTEL( device, parameter, pValue );
2889     }
2890 
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainEXT * pTimeDomains) const2891     VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains ) const VULKAN_HPP_NOEXCEPT
2892     {
2893       return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
2894     }
2895 
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties) const2896     VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties ) const VULKAN_HPP_NOEXCEPT
2897     {
2898       return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties );
2899     }
2900 
2901 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
vkGetPhysicalDeviceDirectFBPresentationSupportEXT(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,IDirectFB * dfb) const2902     VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb ) const VULKAN_HPP_NOEXCEPT
2903     {
2904       return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb );
2905     }
2906 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
2907 
vkGetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlaneProperties2KHR * pProperties) const2908     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2909     {
2910       return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2911     }
2912 
vkGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlanePropertiesKHR * pProperties) const2913     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2914     {
2915       return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2916     }
2917 
vkGetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayProperties2KHR * pProperties) const2918     VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2919     {
2920       return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2921     }
2922 
vkGetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPropertiesKHR * pProperties) const2923     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2924     {
2925       return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2926     }
2927 
vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2928     void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2929     {
2930       return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2931     }
2932 
vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2933     void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2934     {
2935       return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2936     }
2937 
vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2938     void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
2939     {
2940       return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2941     }
2942 
vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2943     void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
2944     {
2945       return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2946     }
2947 
vkGetPhysicalDeviceExternalImageFormatPropertiesNV(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkExternalMemoryHandleTypeFlagsNV externalHandleType,VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties) const2948     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2949     {
2950       return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties );
2951     }
2952 
vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2953     void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
2954     {
2955       return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2956     }
2957 
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2958     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
2959     {
2960       return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2961     }
2962 
vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures) const2963     void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ) const VULKAN_HPP_NOEXCEPT
2964     {
2965       return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures );
2966     }
2967 
vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2968     void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT
2969     {
2970       return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures );
2971     }
2972 
vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2973     void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT
2974     {
2975       return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures );
2976     }
2977 
vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties) const2978     void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2979     {
2980       return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties );
2981     }
2982 
vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2983     void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2984     {
2985       return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties );
2986     }
2987 
vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2988     void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2989     {
2990       return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties );
2991     }
2992 
vkGetPhysicalDeviceFragmentShadingRatesKHR(VkPhysicalDevice physicalDevice,uint32_t * pFragmentShadingRateCount,VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates) const2993     VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR( VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates ) const VULKAN_HPP_NOEXCEPT
2994     {
2995       return ::vkGetPhysicalDeviceFragmentShadingRatesKHR( physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates );
2996     }
2997 
vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties) const2998     VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2999     {
3000       return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties );
3001     }
3002 
vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const3003     VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3004     {
3005       return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties );
3006     }
3007 
vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const3008     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3009     {
3010       return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties );
3011     }
3012 
vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties) const3013     void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3014     {
3015       return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties );
3016     }
3017 
vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const3018     void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3019     {
3020       return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties );
3021     }
3022 
vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const3023     void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3024     {
3025       return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties );
3026     }
3027 
vkGetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties) const3028     void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties ) const VULKAN_HPP_NOEXCEPT
3029     {
3030       return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties );
3031     }
3032 
vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects) const3033     VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ) const VULKAN_HPP_NOEXCEPT
3034     {
3035       return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects );
3036     }
3037 
vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties) const3038     void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
3039     {
3040       return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties );
3041     }
3042 
vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const3043     void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3044     {
3045       return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties );
3046     }
3047 
vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const3048     void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3049     {
3050       return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties );
3051     }
3052 
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses) const3053     void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses ) const VULKAN_HPP_NOEXCEPT
3054     {
3055       return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( physicalDevice, pPerformanceQueryCreateInfo, pNumPasses );
3056     }
3057 
vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties) const3058     void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3059     {
3060       return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3061     }
3062 
vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const3063     void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3064     {
3065       return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3066     }
3067 
vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const3068     void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3069     {
3070       return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3071     }
3072 
vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties) const3073     void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
3074     {
3075       return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties );
3076     }
3077 
vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const3078     void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3079     {
3080       return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
3081     }
3082 
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const3083     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3084     {
3085       return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
3086     }
3087 
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations) const3088     VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations ) const VULKAN_HPP_NOEXCEPT
3089     {
3090       return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations );
3091     }
3092 
vkGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities) const3093     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3094     {
3095       return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities );
3096     }
3097 
vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkSurfaceCapabilities2KHR * pSurfaceCapabilities) const3098     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3099     {
3100       return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities );
3101     }
3102 
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities) const3103     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3104     {
3105       return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities );
3106     }
3107 
vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VkSurfaceFormat2KHR * pSurfaceFormats) const3108     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
3109     {
3110       return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats );
3111     }
3112 
vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats) const3113     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
3114     {
3115       return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats );
3116     }
3117 
3118 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const3119     VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT
3120     {
3121       return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes );
3122     }
3123 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3124 
vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const3125     VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT
3126     {
3127       return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes );
3128     }
3129 
vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported) const3130     VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ) const VULKAN_HPP_NOEXCEPT
3131     {
3132       return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported );
3133     }
3134 
vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolPropertiesEXT * pToolProperties) const3135     VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties ) const VULKAN_HPP_NOEXCEPT
3136     {
3137       return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties );
3138     }
3139 
3140 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct wl_display * display) const3141     VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display ) const VULKAN_HPP_NOEXCEPT
3142     {
3143       return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display );
3144     }
3145 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
3146 
3147 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex) const3148     VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT
3149     {
3150       return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex );
3151     }
3152 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3153 
3154 #ifdef VK_USE_PLATFORM_XCB_KHR
vkGetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id) const3155     VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT
3156     {
3157       return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id );
3158     }
3159 #endif /*VK_USE_PLATFORM_XCB_KHR*/
3160 
3161 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,Display * dpy,VisualID visualID) const3162     VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT
3163     {
3164       return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID );
3165     }
3166 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
3167 
vkGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData) const3168     VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3169     {
3170       return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData );
3171     }
3172 
vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations) const3173     VkResult vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT
3174     {
3175       return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations );
3176     }
3177 
vkGetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties) const3178     VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
3179     {
3180       return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties );
3181     }
3182 
vkGetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics) const3183     VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics ) const VULKAN_HPP_NOEXCEPT
3184     {
3185       return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics );
3186     }
3187 
vkGetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t * pData) const3188     void vkGetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData ) const VULKAN_HPP_NOEXCEPT
3189     {
3190       return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData );
3191     }
3192 
vkGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags) const3193     VkResult vkGetQueryPoolResults( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
3194     {
3195       return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags );
3196     }
3197 
vkGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData) const3198     void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ) const VULKAN_HPP_NOEXCEPT
3199     {
3200       return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData );
3201     }
3202 
3203 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,RROutput rrOutput,VkDisplayKHR * pDisplay) const3204     VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ) const VULKAN_HPP_NOEXCEPT
3205     {
3206       return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay );
3207     }
3208 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
3209 
3210 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3211     VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3212     {
3213       return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
3214     }
3215 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3216 
3217 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetRayTracingShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3218     VkResult vkGetRayTracingShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3219     {
3220       return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
3221     }
3222 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3223 
vkGetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3224     VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3225     {
3226       return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData );
3227     }
3228 
vkGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties) const3229     VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) const VULKAN_HPP_NOEXCEPT
3230     {
3231       return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties );
3232     }
3233 
vkGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity) const3234     void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ) const VULKAN_HPP_NOEXCEPT
3235     {
3236       return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity );
3237     }
3238 
vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const3239     VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT
3240     {
3241       return ::vkGetSemaphoreCounterValue( device, semaphore, pValue );
3242     }
3243 
vkGetSemaphoreCounterValueKHR(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const3244     VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT
3245     {
3246       return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue );
3247     }
3248 
vkGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd) const3249     VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
3250     {
3251       return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd );
3252     }
3253 
3254 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const3255     VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
3256     {
3257       return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3258     }
3259 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3260 
vkGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo) const3261     VkResult vkGetShaderInfoAMD( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ) const VULKAN_HPP_NOEXCEPT
3262     {
3263       return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
3264     }
3265 
vkGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue) const3266     VkResult vkGetSwapchainCounterEXT( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) const VULKAN_HPP_NOEXCEPT
3267     {
3268       return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue );
3269     }
3270 
vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages) const3271     VkResult vkGetSwapchainImagesKHR( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ) const VULKAN_HPP_NOEXCEPT
3272     {
3273       return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages );
3274     }
3275 
vkGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain) const3276     VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
3277     {
3278       return ::vkGetSwapchainStatusKHR( device, swapchain );
3279     }
3280 
vkGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData) const3281     VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3282     {
3283       return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData );
3284     }
3285 
vkImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo) const3286     VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT
3287     {
3288       return ::vkImportFenceFdKHR( device, pImportFenceFdInfo );
3289     }
3290 
3291 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo) const3292     VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3293     {
3294       return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo );
3295     }
3296 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3297 
vkImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo) const3298     VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT
3299     {
3300       return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo );
3301     }
3302 
3303 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo) const3304     VkResult vkImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3305     {
3306       return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo );
3307     }
3308 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3309 
vkInitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo) const3310     VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo ) const VULKAN_HPP_NOEXCEPT
3311     {
3312       return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo );
3313     }
3314 
vkInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const3315     VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
3316     {
3317       return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
3318     }
3319 
vkMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData) const3320     VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ) const VULKAN_HPP_NOEXCEPT
3321     {
3322       return ::vkMapMemory( device, memory, offset, size, flags, ppData );
3323     }
3324 
vkMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches) const3325     VkResult vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches ) const VULKAN_HPP_NOEXCEPT
3326     {
3327       return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches );
3328     }
3329 
vkMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches) const3330     VkResult vkMergeValidationCachesEXT( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches ) const VULKAN_HPP_NOEXCEPT
3331     {
3332       return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches );
3333     }
3334 
vkQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3335     void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3336     {
3337       return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo );
3338     }
3339 
vkQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence) const3340     VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence ) const VULKAN_HPP_NOEXCEPT
3341     {
3342       return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence );
3343     }
3344 
vkQueueEndDebugUtilsLabelEXT(VkQueue queue) const3345     void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3346     {
3347       return ::vkQueueEndDebugUtilsLabelEXT( queue );
3348     }
3349 
vkQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3350     void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3351     {
3352       return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo );
3353     }
3354 
vkQueuePresentKHR(VkQueue queue,const VkPresentInfoKHR * pPresentInfo) const3355     VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo ) const VULKAN_HPP_NOEXCEPT
3356     {
3357       return ::vkQueuePresentKHR( queue, pPresentInfo );
3358     }
3359 
vkQueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration) const3360     VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
3361     {
3362       return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration );
3363     }
3364 
vkQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence) const3365     VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
3366     {
3367       return ::vkQueueSubmit( queue, submitCount, pSubmits, fence );
3368     }
3369 
vkQueueWaitIdle(VkQueue queue) const3370     VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3371     {
3372       return ::vkQueueWaitIdle( queue );
3373     }
3374 
vkRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3375     VkResult vkRegisterDeviceEventEXT( VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
3376     {
3377       return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence );
3378     }
3379 
vkRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3380     VkResult vkRegisterDisplayEventEXT( VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
3381     {
3382       return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence );
3383     }
3384 
vkReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display) const3385     VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
3386     {
3387       return ::vkReleaseDisplayEXT( physicalDevice, display );
3388     }
3389 
3390 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const3391     VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
3392     {
3393       return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain );
3394     }
3395 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3396 
vkReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration) const3397     VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
3398     {
3399       return ::vkReleasePerformanceConfigurationINTEL( device, configuration );
3400     }
3401 
vkReleaseProfilingLockKHR(VkDevice device) const3402     void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT
3403     {
3404       return ::vkReleaseProfilingLockKHR( device );
3405     }
3406 
vkResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags) const3407     VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3408     {
3409       return ::vkResetCommandBuffer( commandBuffer, flags );
3410     }
3411 
vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags) const3412     VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3413     {
3414       return ::vkResetCommandPool( device, commandPool, flags );
3415     }
3416 
vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags) const3417     VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3418     {
3419       return ::vkResetDescriptorPool( device, descriptorPool, flags );
3420     }
3421 
vkResetEvent(VkDevice device,VkEvent event) const3422     VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
3423     {
3424       return ::vkResetEvent( device, event );
3425     }
3426 
vkResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences) const3427     VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences ) const VULKAN_HPP_NOEXCEPT
3428     {
3429       return ::vkResetFences( device, fenceCount, pFences );
3430     }
3431 
vkResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const3432     void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
3433     {
3434       return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount );
3435     }
3436 
vkResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const3437     void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
3438     {
3439       return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount );
3440     }
3441 
vkSetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo) const3442     VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT
3443     {
3444       return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo );
3445     }
3446 
vkSetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo) const3447     VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT
3448     {
3449       return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo );
3450     }
3451 
vkSetEvent(VkDevice device,VkEvent event) const3452     VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
3453     {
3454       return ::vkSetEvent( device, event );
3455     }
3456 
vkSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata) const3457     void vkSetHdrMetadataEXT( VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata ) const VULKAN_HPP_NOEXCEPT
3458     {
3459       return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata );
3460     }
3461 
vkSetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable) const3462     void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT
3463     {
3464       return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable );
3465     }
3466 
vkSetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t data) const3467     VkResult vkSetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data ) const VULKAN_HPP_NOEXCEPT
3468     {
3469       return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data );
3470     }
3471 
vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const3472     VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT
3473     {
3474       return ::vkSignalSemaphore( device, pSignalInfo );
3475     }
3476 
vkSignalSemaphoreKHR(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const3477     VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT
3478     {
3479       return ::vkSignalSemaphoreKHR( device, pSignalInfo );
3480     }
3481 
vkSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData) const3482     void vkSubmitDebugUtilsMessageEXT( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData ) const VULKAN_HPP_NOEXCEPT
3483     {
3484       return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData );
3485     }
3486 
vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const3487     void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
3488     {
3489       return ::vkTrimCommandPool( device, commandPool, flags );
3490     }
3491 
vkTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const3492     void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
3493     {
3494       return ::vkTrimCommandPoolKHR( device, commandPool, flags );
3495     }
3496 
vkUninitializePerformanceApiINTEL(VkDevice device) const3497     void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT
3498     {
3499       return ::vkUninitializePerformanceApiINTEL( device );
3500     }
3501 
vkUnmapMemory(VkDevice device,VkDeviceMemory memory) const3502     void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT
3503     {
3504       return ::vkUnmapMemory( device, memory );
3505     }
3506 
vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const3507     void vkUpdateDescriptorSetWithTemplate( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT
3508     {
3509       return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData );
3510     }
3511 
vkUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const3512     void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT
3513     {
3514       return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData );
3515     }
3516 
vkUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies) const3517     void vkUpdateDescriptorSets( VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT
3518     {
3519       return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies );
3520     }
3521 
vkWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout) const3522     VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3523     {
3524       return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout );
3525     }
3526 
vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const3527     VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3528     {
3529       return ::vkWaitSemaphores( device, pWaitInfo, timeout );
3530     }
3531 
vkWaitSemaphoresKHR(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const3532     VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3533     {
3534       return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout );
3535     }
3536 
3537 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkWriteAccelerationStructuresPropertiesKHR(VkDevice device,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,size_t dataSize,void * pData,size_t stride) const3538     VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride ) const VULKAN_HPP_NOEXCEPT
3539     {
3540       return ::vkWriteAccelerationStructuresPropertiesKHR( device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride );
3541     }
3542 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3543   };
3544 #endif
3545 
3546   class DispatchLoaderDynamic;
3547 #if !defined(VULKAN_HPP_DISPATCH_LOADER_DYNAMIC)
3548 # if defined(VK_NO_PROTOTYPES)
3549 #  define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
3550 # else
3551 #  define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0
3552 # endif
3553 #endif
3554 
3555 #if defined(_WIN32) && defined(VULKAN_HPP_STORAGE_SHARED)
3556 #  ifdef VULKAN_HPP_STORAGE_SHARED_EXPORT
3557 #    define VULKAN_HPP_STORAGE_API __declspec( dllexport )
3558 #  else
3559 #    define VULKAN_HPP_STORAGE_API __declspec( dllimport )
3560 #  endif
3561 #else
3562 #  define VULKAN_HPP_STORAGE_API
3563 #endif
3564 
3565 #if !defined(VULKAN_HPP_DEFAULT_DISPATCHER)
3566 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
3567 #  define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic
3568 #  define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE namespace VULKAN_HPP_NAMESPACE { VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; }
3569   extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic;
3570 # else
3571 #  define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic()
3572 #  define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
3573 # endif
3574 #endif
3575 
3576 #if !defined(VULKAN_HPP_DEFAULT_DISPATCHER_TYPE)
3577 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
3578   #define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic
3579 # else
3580 #  define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic
3581 # endif
3582 #endif
3583 
3584 #if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER )
3585 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT
3586 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT
3587 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT
3588 #else
3589 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {}
3590 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr
3591 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER
3592 #endif
3593 
3594   struct AllocationCallbacks;
3595 
3596   template <typename OwnerType, typename Dispatch>
3597   class ObjectDestroy
3598   {
3599     public:
3600     ObjectDestroy() = default;
3601 
ObjectDestroy(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3602     ObjectDestroy( OwnerType owner,
3603                    Optional<const AllocationCallbacks> allocationCallbacks
3604                                     VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
3605                    Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3606       : m_owner( owner )
3607       , m_allocationCallbacks( allocationCallbacks )
3608       , m_dispatch( &dispatch )
3609     {}
3610 
getOwner() const3611       OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; }
getAllocator() const3612       Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; }
3613 
3614     protected:
3615       template <typename T>
destroy(T t)3616       void destroy(T t) VULKAN_HPP_NOEXCEPT
3617       {
3618         VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3619         m_owner.destroy( t, m_allocationCallbacks, *m_dispatch );
3620       }
3621 
3622     private:
3623     OwnerType                           m_owner               = {};
3624     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3625     Dispatch const *                    m_dispatch            = nullptr;
3626   };
3627 
3628   class NoParent;
3629 
3630   template <typename Dispatch>
3631   class ObjectDestroy<NoParent,Dispatch>
3632   {
3633     public:
3634     ObjectDestroy() = default;
3635 
ObjectDestroy(Optional<const AllocationCallbacks> allocationCallbacks,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3636     ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks,
3637                    Dispatch const &                    dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3638       : m_allocationCallbacks( allocationCallbacks )
3639       , m_dispatch( &dispatch )
3640     {}
3641 
getAllocator() const3642       Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; }
3643 
3644     protected:
3645       template <typename T>
destroy(T t)3646       void destroy(T t) VULKAN_HPP_NOEXCEPT
3647       {
3648         VULKAN_HPP_ASSERT( m_dispatch );
3649         t.destroy( m_allocationCallbacks, *m_dispatch );
3650       }
3651 
3652     private:
3653     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3654     Dispatch const *                    m_dispatch            = nullptr;
3655   };
3656 
3657   template <typename OwnerType, typename Dispatch>
3658   class ObjectFree
3659   {
3660   public:
3661     ObjectFree() = default;
3662 
ObjectFree(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3663     ObjectFree( OwnerType                                               owner,
3664                 Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
3665                 Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3666       : m_owner( owner )
3667       , m_allocationCallbacks( allocationCallbacks )
3668       , m_dispatch( &dispatch )
3669     {}
3670 
getOwner() const3671     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
3672     {
3673       return m_owner;
3674     }
3675 
getAllocator() const3676     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
3677     {
3678       return m_allocationCallbacks;
3679     }
3680 
3681   protected:
3682     template <typename T>
destroy(T t)3683     void destroy( T t ) VULKAN_HPP_NOEXCEPT
3684     {
3685       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3686       m_owner.free( t, m_allocationCallbacks, *m_dispatch );
3687     }
3688 
3689   private:
3690     OwnerType                           m_owner               = {};
3691     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3692     Dispatch const *                    m_dispatch            = nullptr;
3693   };
3694 
3695   template <typename OwnerType, typename Dispatch>
3696   class ObjectRelease
3697   {
3698   public:
3699     ObjectRelease() = default;
3700 
ObjectRelease(OwnerType owner,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3701     ObjectRelease( OwnerType owner, Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3702       : m_owner( owner )
3703       , m_dispatch( &dispatch )
3704     {}
3705 
getOwner() const3706     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
3707     {
3708       return m_owner;
3709     }
3710 
3711   protected:
3712     template <typename T>
destroy(T t)3713     void destroy( T t ) VULKAN_HPP_NOEXCEPT
3714     {
3715       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3716       m_owner.release( t, *m_dispatch );
3717     }
3718 
3719   private:
3720     OwnerType        m_owner    = {};
3721     Dispatch const * m_dispatch = nullptr;
3722   };
3723 
3724   template <typename OwnerType, typename PoolType, typename Dispatch>
3725   class PoolFree
3726   {
3727     public:
3728       PoolFree() = default;
3729 
PoolFree(OwnerType owner,PoolType pool,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3730       PoolFree( OwnerType        owner,
3731                 PoolType         pool,
3732                 Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3733         : m_owner( owner )
3734         , m_pool( pool )
3735         , m_dispatch( &dispatch )
3736       {}
3737 
getOwner() const3738       OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; }
getPool() const3739       PoolType getPool() const VULKAN_HPP_NOEXCEPT { return m_pool; }
3740 
3741     protected:
3742       template <typename T>
destroy(T t)3743       void destroy(T t) VULKAN_HPP_NOEXCEPT
3744       {
3745         m_owner.free( m_pool, t, *m_dispatch );
3746       }
3747 
3748     private:
3749       OwnerType        m_owner    = OwnerType();
3750       PoolType         m_pool     = PoolType();
3751       Dispatch const * m_dispatch = nullptr;
3752   };
3753 
3754   using Bool32 = uint32_t;
3755   using DeviceAddress = uint64_t;
3756   using DeviceSize = uint64_t;
3757   using SampleMask = uint32_t;
3758 
3759   template <typename EnumType, EnumType value>
3760   struct CppType
3761   {};
3762 
3763   template <typename Type>
3764   struct isVulkanHandleType
3765   {
3766     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = false;
3767   };
3768 
3769 #ifdef VK_ENABLE_BETA_EXTENSIONS
3770   enum class AccelerationStructureBuildTypeKHR
3771   {
3772     eHost = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,
3773     eDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR,
3774     eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
3775   };
3776 
to_string(AccelerationStructureBuildTypeKHR value)3777   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureBuildTypeKHR value )
3778   {
3779     switch ( value )
3780     {
3781       case AccelerationStructureBuildTypeKHR::eHost : return "Host";
3782       case AccelerationStructureBuildTypeKHR::eDevice : return "Device";
3783       case AccelerationStructureBuildTypeKHR::eHostOrDevice : return "HostOrDevice";
3784       default: return "invalid";
3785     }
3786   }
3787 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3788 
3789   enum class AccelerationStructureMemoryRequirementsTypeKHR
3790   {
3791     eObject = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR,
3792     eBuildScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR,
3793     eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR
3794   };
3795   using AccelerationStructureMemoryRequirementsTypeNV = AccelerationStructureMemoryRequirementsTypeKHR;
3796 
to_string(AccelerationStructureMemoryRequirementsTypeKHR value)3797   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeKHR value )
3798   {
3799     switch ( value )
3800     {
3801       case AccelerationStructureMemoryRequirementsTypeKHR::eObject : return "Object";
3802       case AccelerationStructureMemoryRequirementsTypeKHR::eBuildScratch : return "BuildScratch";
3803       case AccelerationStructureMemoryRequirementsTypeKHR::eUpdateScratch : return "UpdateScratch";
3804       default: return "invalid";
3805     }
3806   }
3807 
3808   enum class AccelerationStructureTypeKHR
3809   {
3810     eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
3811     eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR
3812   };
3813   using AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
3814 
to_string(AccelerationStructureTypeKHR value)3815   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeKHR value )
3816   {
3817     switch ( value )
3818     {
3819       case AccelerationStructureTypeKHR::eTopLevel : return "TopLevel";
3820       case AccelerationStructureTypeKHR::eBottomLevel : return "BottomLevel";
3821       default: return "invalid";
3822     }
3823   }
3824 
3825   enum class AccessFlagBits : VkAccessFlags
3826   {
3827     eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
3828     eIndexRead = VK_ACCESS_INDEX_READ_BIT,
3829     eVertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
3830     eUniformRead = VK_ACCESS_UNIFORM_READ_BIT,
3831     eInputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
3832     eShaderRead = VK_ACCESS_SHADER_READ_BIT,
3833     eShaderWrite = VK_ACCESS_SHADER_WRITE_BIT,
3834     eColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
3835     eColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
3836     eDepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
3837     eDepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
3838     eTransferRead = VK_ACCESS_TRANSFER_READ_BIT,
3839     eTransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT,
3840     eHostRead = VK_ACCESS_HOST_READ_BIT,
3841     eHostWrite = VK_ACCESS_HOST_WRITE_BIT,
3842     eMemoryRead = VK_ACCESS_MEMORY_READ_BIT,
3843     eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT,
3844     eTransformFeedbackWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
3845     eTransformFeedbackCounterReadEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
3846     eTransformFeedbackCounterWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
3847     eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
3848     eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
3849     eAccelerationStructureReadKHR = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
3850     eAccelerationStructureWriteKHR = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
3851     eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
3852     eFragmentDensityMapReadEXT = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
3853     eCommandPreprocessReadNV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
3854     eCommandPreprocessWriteNV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
3855     eAccelerationStructureReadNV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
3856     eAccelerationStructureWriteNV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
3857     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR
3858   };
3859 
to_string(AccessFlagBits value)3860   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value )
3861   {
3862     switch ( value )
3863     {
3864       case AccessFlagBits::eIndirectCommandRead : return "IndirectCommandRead";
3865       case AccessFlagBits::eIndexRead : return "IndexRead";
3866       case AccessFlagBits::eVertexAttributeRead : return "VertexAttributeRead";
3867       case AccessFlagBits::eUniformRead : return "UniformRead";
3868       case AccessFlagBits::eInputAttachmentRead : return "InputAttachmentRead";
3869       case AccessFlagBits::eShaderRead : return "ShaderRead";
3870       case AccessFlagBits::eShaderWrite : return "ShaderWrite";
3871       case AccessFlagBits::eColorAttachmentRead : return "ColorAttachmentRead";
3872       case AccessFlagBits::eColorAttachmentWrite : return "ColorAttachmentWrite";
3873       case AccessFlagBits::eDepthStencilAttachmentRead : return "DepthStencilAttachmentRead";
3874       case AccessFlagBits::eDepthStencilAttachmentWrite : return "DepthStencilAttachmentWrite";
3875       case AccessFlagBits::eTransferRead : return "TransferRead";
3876       case AccessFlagBits::eTransferWrite : return "TransferWrite";
3877       case AccessFlagBits::eHostRead : return "HostRead";
3878       case AccessFlagBits::eHostWrite : return "HostWrite";
3879       case AccessFlagBits::eMemoryRead : return "MemoryRead";
3880       case AccessFlagBits::eMemoryWrite : return "MemoryWrite";
3881       case AccessFlagBits::eTransformFeedbackWriteEXT : return "TransformFeedbackWriteEXT";
3882       case AccessFlagBits::eTransformFeedbackCounterReadEXT : return "TransformFeedbackCounterReadEXT";
3883       case AccessFlagBits::eTransformFeedbackCounterWriteEXT : return "TransformFeedbackCounterWriteEXT";
3884       case AccessFlagBits::eConditionalRenderingReadEXT : return "ConditionalRenderingReadEXT";
3885       case AccessFlagBits::eColorAttachmentReadNoncoherentEXT : return "ColorAttachmentReadNoncoherentEXT";
3886       case AccessFlagBits::eAccelerationStructureReadKHR : return "AccelerationStructureReadKHR";
3887       case AccessFlagBits::eAccelerationStructureWriteKHR : return "AccelerationStructureWriteKHR";
3888       case AccessFlagBits::eShadingRateImageReadNV : return "ShadingRateImageReadNV";
3889       case AccessFlagBits::eFragmentDensityMapReadEXT : return "FragmentDensityMapReadEXT";
3890       case AccessFlagBits::eCommandPreprocessReadNV : return "CommandPreprocessReadNV";
3891       case AccessFlagBits::eCommandPreprocessWriteNV : return "CommandPreprocessWriteNV";
3892       default: return "invalid";
3893     }
3894   }
3895 
3896   enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR
3897   {};
3898 
to_string(AcquireProfilingLockFlagBitsKHR)3899   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagBitsKHR )
3900   {
3901     return "(void)";
3902   }
3903 
3904   enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags
3905   {
3906     eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
3907   };
3908 
to_string(AttachmentDescriptionFlagBits value)3909   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value )
3910   {
3911     switch ( value )
3912     {
3913       case AttachmentDescriptionFlagBits::eMayAlias : return "MayAlias";
3914       default: return "invalid";
3915     }
3916   }
3917 
3918   enum class AttachmentLoadOp
3919   {
3920     eLoad = VK_ATTACHMENT_LOAD_OP_LOAD,
3921     eClear = VK_ATTACHMENT_LOAD_OP_CLEAR,
3922     eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
3923   };
3924 
to_string(AttachmentLoadOp value)3925   VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value )
3926   {
3927     switch ( value )
3928     {
3929       case AttachmentLoadOp::eLoad : return "Load";
3930       case AttachmentLoadOp::eClear : return "Clear";
3931       case AttachmentLoadOp::eDontCare : return "DontCare";
3932       default: return "invalid";
3933     }
3934   }
3935 
3936   enum class AttachmentStoreOp
3937   {
3938     eStore = VK_ATTACHMENT_STORE_OP_STORE,
3939     eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
3940     eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
3941   };
3942 
to_string(AttachmentStoreOp value)3943   VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value )
3944   {
3945     switch ( value )
3946     {
3947       case AttachmentStoreOp::eStore : return "Store";
3948       case AttachmentStoreOp::eDontCare : return "DontCare";
3949       case AttachmentStoreOp::eNoneQCOM : return "NoneQCOM";
3950       default: return "invalid";
3951     }
3952   }
3953 
3954   enum class BlendFactor
3955   {
3956     eZero = VK_BLEND_FACTOR_ZERO,
3957     eOne = VK_BLEND_FACTOR_ONE,
3958     eSrcColor = VK_BLEND_FACTOR_SRC_COLOR,
3959     eOneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
3960     eDstColor = VK_BLEND_FACTOR_DST_COLOR,
3961     eOneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
3962     eSrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA,
3963     eOneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
3964     eDstAlpha = VK_BLEND_FACTOR_DST_ALPHA,
3965     eOneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
3966     eConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR,
3967     eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
3968     eConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA,
3969     eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
3970     eSrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
3971     eSrc1Color = VK_BLEND_FACTOR_SRC1_COLOR,
3972     eOneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
3973     eSrc1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA,
3974     eOneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
3975   };
3976 
to_string(BlendFactor value)3977   VULKAN_HPP_INLINE std::string to_string( BlendFactor value )
3978   {
3979     switch ( value )
3980     {
3981       case BlendFactor::eZero : return "Zero";
3982       case BlendFactor::eOne : return "One";
3983       case BlendFactor::eSrcColor : return "SrcColor";
3984       case BlendFactor::eOneMinusSrcColor : return "OneMinusSrcColor";
3985       case BlendFactor::eDstColor : return "DstColor";
3986       case BlendFactor::eOneMinusDstColor : return "OneMinusDstColor";
3987       case BlendFactor::eSrcAlpha : return "SrcAlpha";
3988       case BlendFactor::eOneMinusSrcAlpha : return "OneMinusSrcAlpha";
3989       case BlendFactor::eDstAlpha : return "DstAlpha";
3990       case BlendFactor::eOneMinusDstAlpha : return "OneMinusDstAlpha";
3991       case BlendFactor::eConstantColor : return "ConstantColor";
3992       case BlendFactor::eOneMinusConstantColor : return "OneMinusConstantColor";
3993       case BlendFactor::eConstantAlpha : return "ConstantAlpha";
3994       case BlendFactor::eOneMinusConstantAlpha : return "OneMinusConstantAlpha";
3995       case BlendFactor::eSrcAlphaSaturate : return "SrcAlphaSaturate";
3996       case BlendFactor::eSrc1Color : return "Src1Color";
3997       case BlendFactor::eOneMinusSrc1Color : return "OneMinusSrc1Color";
3998       case BlendFactor::eSrc1Alpha : return "Src1Alpha";
3999       case BlendFactor::eOneMinusSrc1Alpha : return "OneMinusSrc1Alpha";
4000       default: return "invalid";
4001     }
4002   }
4003 
4004   enum class BlendOp
4005   {
4006     eAdd = VK_BLEND_OP_ADD,
4007     eSubtract = VK_BLEND_OP_SUBTRACT,
4008     eReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT,
4009     eMin = VK_BLEND_OP_MIN,
4010     eMax = VK_BLEND_OP_MAX,
4011     eZeroEXT = VK_BLEND_OP_ZERO_EXT,
4012     eSrcEXT = VK_BLEND_OP_SRC_EXT,
4013     eDstEXT = VK_BLEND_OP_DST_EXT,
4014     eSrcOverEXT = VK_BLEND_OP_SRC_OVER_EXT,
4015     eDstOverEXT = VK_BLEND_OP_DST_OVER_EXT,
4016     eSrcInEXT = VK_BLEND_OP_SRC_IN_EXT,
4017     eDstInEXT = VK_BLEND_OP_DST_IN_EXT,
4018     eSrcOutEXT = VK_BLEND_OP_SRC_OUT_EXT,
4019     eDstOutEXT = VK_BLEND_OP_DST_OUT_EXT,
4020     eSrcAtopEXT = VK_BLEND_OP_SRC_ATOP_EXT,
4021     eDstAtopEXT = VK_BLEND_OP_DST_ATOP_EXT,
4022     eXorEXT = VK_BLEND_OP_XOR_EXT,
4023     eMultiplyEXT = VK_BLEND_OP_MULTIPLY_EXT,
4024     eScreenEXT = VK_BLEND_OP_SCREEN_EXT,
4025     eOverlayEXT = VK_BLEND_OP_OVERLAY_EXT,
4026     eDarkenEXT = VK_BLEND_OP_DARKEN_EXT,
4027     eLightenEXT = VK_BLEND_OP_LIGHTEN_EXT,
4028     eColordodgeEXT = VK_BLEND_OP_COLORDODGE_EXT,
4029     eColorburnEXT = VK_BLEND_OP_COLORBURN_EXT,
4030     eHardlightEXT = VK_BLEND_OP_HARDLIGHT_EXT,
4031     eSoftlightEXT = VK_BLEND_OP_SOFTLIGHT_EXT,
4032     eDifferenceEXT = VK_BLEND_OP_DIFFERENCE_EXT,
4033     eExclusionEXT = VK_BLEND_OP_EXCLUSION_EXT,
4034     eInvertEXT = VK_BLEND_OP_INVERT_EXT,
4035     eInvertRgbEXT = VK_BLEND_OP_INVERT_RGB_EXT,
4036     eLineardodgeEXT = VK_BLEND_OP_LINEARDODGE_EXT,
4037     eLinearburnEXT = VK_BLEND_OP_LINEARBURN_EXT,
4038     eVividlightEXT = VK_BLEND_OP_VIVIDLIGHT_EXT,
4039     eLinearlightEXT = VK_BLEND_OP_LINEARLIGHT_EXT,
4040     ePinlightEXT = VK_BLEND_OP_PINLIGHT_EXT,
4041     eHardmixEXT = VK_BLEND_OP_HARDMIX_EXT,
4042     eHslHueEXT = VK_BLEND_OP_HSL_HUE_EXT,
4043     eHslSaturationEXT = VK_BLEND_OP_HSL_SATURATION_EXT,
4044     eHslColorEXT = VK_BLEND_OP_HSL_COLOR_EXT,
4045     eHslLuminosityEXT = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
4046     ePlusEXT = VK_BLEND_OP_PLUS_EXT,
4047     ePlusClampedEXT = VK_BLEND_OP_PLUS_CLAMPED_EXT,
4048     ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
4049     ePlusDarkerEXT = VK_BLEND_OP_PLUS_DARKER_EXT,
4050     eMinusEXT = VK_BLEND_OP_MINUS_EXT,
4051     eMinusClampedEXT = VK_BLEND_OP_MINUS_CLAMPED_EXT,
4052     eContrastEXT = VK_BLEND_OP_CONTRAST_EXT,
4053     eInvertOvgEXT = VK_BLEND_OP_INVERT_OVG_EXT,
4054     eRedEXT = VK_BLEND_OP_RED_EXT,
4055     eGreenEXT = VK_BLEND_OP_GREEN_EXT,
4056     eBlueEXT = VK_BLEND_OP_BLUE_EXT
4057   };
4058 
to_string(BlendOp value)4059   VULKAN_HPP_INLINE std::string to_string( BlendOp value )
4060   {
4061     switch ( value )
4062     {
4063       case BlendOp::eAdd : return "Add";
4064       case BlendOp::eSubtract : return "Subtract";
4065       case BlendOp::eReverseSubtract : return "ReverseSubtract";
4066       case BlendOp::eMin : return "Min";
4067       case BlendOp::eMax : return "Max";
4068       case BlendOp::eZeroEXT : return "ZeroEXT";
4069       case BlendOp::eSrcEXT : return "SrcEXT";
4070       case BlendOp::eDstEXT : return "DstEXT";
4071       case BlendOp::eSrcOverEXT : return "SrcOverEXT";
4072       case BlendOp::eDstOverEXT : return "DstOverEXT";
4073       case BlendOp::eSrcInEXT : return "SrcInEXT";
4074       case BlendOp::eDstInEXT : return "DstInEXT";
4075       case BlendOp::eSrcOutEXT : return "SrcOutEXT";
4076       case BlendOp::eDstOutEXT : return "DstOutEXT";
4077       case BlendOp::eSrcAtopEXT : return "SrcAtopEXT";
4078       case BlendOp::eDstAtopEXT : return "DstAtopEXT";
4079       case BlendOp::eXorEXT : return "XorEXT";
4080       case BlendOp::eMultiplyEXT : return "MultiplyEXT";
4081       case BlendOp::eScreenEXT : return "ScreenEXT";
4082       case BlendOp::eOverlayEXT : return "OverlayEXT";
4083       case BlendOp::eDarkenEXT : return "DarkenEXT";
4084       case BlendOp::eLightenEXT : return "LightenEXT";
4085       case BlendOp::eColordodgeEXT : return "ColordodgeEXT";
4086       case BlendOp::eColorburnEXT : return "ColorburnEXT";
4087       case BlendOp::eHardlightEXT : return "HardlightEXT";
4088       case BlendOp::eSoftlightEXT : return "SoftlightEXT";
4089       case BlendOp::eDifferenceEXT : return "DifferenceEXT";
4090       case BlendOp::eExclusionEXT : return "ExclusionEXT";
4091       case BlendOp::eInvertEXT : return "InvertEXT";
4092       case BlendOp::eInvertRgbEXT : return "InvertRgbEXT";
4093       case BlendOp::eLineardodgeEXT : return "LineardodgeEXT";
4094       case BlendOp::eLinearburnEXT : return "LinearburnEXT";
4095       case BlendOp::eVividlightEXT : return "VividlightEXT";
4096       case BlendOp::eLinearlightEXT : return "LinearlightEXT";
4097       case BlendOp::ePinlightEXT : return "PinlightEXT";
4098       case BlendOp::eHardmixEXT : return "HardmixEXT";
4099       case BlendOp::eHslHueEXT : return "HslHueEXT";
4100       case BlendOp::eHslSaturationEXT : return "HslSaturationEXT";
4101       case BlendOp::eHslColorEXT : return "HslColorEXT";
4102       case BlendOp::eHslLuminosityEXT : return "HslLuminosityEXT";
4103       case BlendOp::ePlusEXT : return "PlusEXT";
4104       case BlendOp::ePlusClampedEXT : return "PlusClampedEXT";
4105       case BlendOp::ePlusClampedAlphaEXT : return "PlusClampedAlphaEXT";
4106       case BlendOp::ePlusDarkerEXT : return "PlusDarkerEXT";
4107       case BlendOp::eMinusEXT : return "MinusEXT";
4108       case BlendOp::eMinusClampedEXT : return "MinusClampedEXT";
4109       case BlendOp::eContrastEXT : return "ContrastEXT";
4110       case BlendOp::eInvertOvgEXT : return "InvertOvgEXT";
4111       case BlendOp::eRedEXT : return "RedEXT";
4112       case BlendOp::eGreenEXT : return "GreenEXT";
4113       case BlendOp::eBlueEXT : return "BlueEXT";
4114       default: return "invalid";
4115     }
4116   }
4117 
4118   enum class BlendOverlapEXT
4119   {
4120     eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
4121     eDisjoint = VK_BLEND_OVERLAP_DISJOINT_EXT,
4122     eConjoint = VK_BLEND_OVERLAP_CONJOINT_EXT
4123   };
4124 
to_string(BlendOverlapEXT value)4125   VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value )
4126   {
4127     switch ( value )
4128     {
4129       case BlendOverlapEXT::eUncorrelated : return "Uncorrelated";
4130       case BlendOverlapEXT::eDisjoint : return "Disjoint";
4131       case BlendOverlapEXT::eConjoint : return "Conjoint";
4132       default: return "invalid";
4133     }
4134   }
4135 
4136   enum class BorderColor
4137   {
4138     eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
4139     eIntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
4140     eFloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
4141     eIntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
4142     eFloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
4143     eIntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
4144     eFloatCustomEXT = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT,
4145     eIntCustomEXT = VK_BORDER_COLOR_INT_CUSTOM_EXT
4146   };
4147 
to_string(BorderColor value)4148   VULKAN_HPP_INLINE std::string to_string( BorderColor value )
4149   {
4150     switch ( value )
4151     {
4152       case BorderColor::eFloatTransparentBlack : return "FloatTransparentBlack";
4153       case BorderColor::eIntTransparentBlack : return "IntTransparentBlack";
4154       case BorderColor::eFloatOpaqueBlack : return "FloatOpaqueBlack";
4155       case BorderColor::eIntOpaqueBlack : return "IntOpaqueBlack";
4156       case BorderColor::eFloatOpaqueWhite : return "FloatOpaqueWhite";
4157       case BorderColor::eIntOpaqueWhite : return "IntOpaqueWhite";
4158       case BorderColor::eFloatCustomEXT : return "FloatCustomEXT";
4159       case BorderColor::eIntCustomEXT : return "IntCustomEXT";
4160       default: return "invalid";
4161     }
4162   }
4163 
4164   enum class BufferCreateFlagBits : VkBufferCreateFlags
4165   {
4166     eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
4167     eSparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
4168     eSparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
4169     eProtected = VK_BUFFER_CREATE_PROTECTED_BIT,
4170     eDeviceAddressCaptureReplay = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
4171     eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
4172     eDeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
4173   };
4174 
to_string(BufferCreateFlagBits value)4175   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value )
4176   {
4177     switch ( value )
4178     {
4179       case BufferCreateFlagBits::eSparseBinding : return "SparseBinding";
4180       case BufferCreateFlagBits::eSparseResidency : return "SparseResidency";
4181       case BufferCreateFlagBits::eSparseAliased : return "SparseAliased";
4182       case BufferCreateFlagBits::eProtected : return "Protected";
4183       case BufferCreateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay";
4184       default: return "invalid";
4185     }
4186   }
4187 
4188   enum class BufferUsageFlagBits : VkBufferUsageFlags
4189   {
4190     eTransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
4191     eTransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
4192     eUniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
4193     eStorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
4194     eUniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
4195     eStorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
4196     eIndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
4197     eVertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
4198     eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
4199     eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
4200     eTransformFeedbackBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
4201     eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
4202     eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
4203     eRayTracingKHR = VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,
4204     eRayTracingNV = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
4205     eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
4206     eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
4207   };
4208 
to_string(BufferUsageFlagBits value)4209   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value )
4210   {
4211     switch ( value )
4212     {
4213       case BufferUsageFlagBits::eTransferSrc : return "TransferSrc";
4214       case BufferUsageFlagBits::eTransferDst : return "TransferDst";
4215       case BufferUsageFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
4216       case BufferUsageFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
4217       case BufferUsageFlagBits::eUniformBuffer : return "UniformBuffer";
4218       case BufferUsageFlagBits::eStorageBuffer : return "StorageBuffer";
4219       case BufferUsageFlagBits::eIndexBuffer : return "IndexBuffer";
4220       case BufferUsageFlagBits::eVertexBuffer : return "VertexBuffer";
4221       case BufferUsageFlagBits::eIndirectBuffer : return "IndirectBuffer";
4222       case BufferUsageFlagBits::eShaderDeviceAddress : return "ShaderDeviceAddress";
4223       case BufferUsageFlagBits::eTransformFeedbackBufferEXT : return "TransformFeedbackBufferEXT";
4224       case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT : return "TransformFeedbackCounterBufferEXT";
4225       case BufferUsageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
4226       case BufferUsageFlagBits::eRayTracingKHR : return "RayTracingKHR";
4227       default: return "invalid";
4228     }
4229   }
4230 
4231   enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR
4232   {
4233     eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
4234     eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
4235     ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
4236     ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
4237     eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR
4238   };
4239   using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
4240 
to_string(BuildAccelerationStructureFlagBitsKHR value)4241   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsKHR value )
4242   {
4243     switch ( value )
4244     {
4245       case BuildAccelerationStructureFlagBitsKHR::eAllowUpdate : return "AllowUpdate";
4246       case BuildAccelerationStructureFlagBitsKHR::eAllowCompaction : return "AllowCompaction";
4247       case BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace : return "PreferFastTrace";
4248       case BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild : return "PreferFastBuild";
4249       case BuildAccelerationStructureFlagBitsKHR::eLowMemory : return "LowMemory";
4250       default: return "invalid";
4251     }
4252   }
4253 
4254   enum class ChromaLocation
4255   {
4256     eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN,
4257     eMidpoint = VK_CHROMA_LOCATION_MIDPOINT
4258   };
4259   using ChromaLocationKHR = ChromaLocation;
4260 
to_string(ChromaLocation value)4261   VULKAN_HPP_INLINE std::string to_string( ChromaLocation value )
4262   {
4263     switch ( value )
4264     {
4265       case ChromaLocation::eCositedEven : return "CositedEven";
4266       case ChromaLocation::eMidpoint : return "Midpoint";
4267       default: return "invalid";
4268     }
4269   }
4270 
4271   enum class CoarseSampleOrderTypeNV
4272   {
4273     eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
4274     eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
4275     ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
4276     eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
4277   };
4278 
to_string(CoarseSampleOrderTypeNV value)4279   VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value )
4280   {
4281     switch ( value )
4282     {
4283       case CoarseSampleOrderTypeNV::eDefault : return "Default";
4284       case CoarseSampleOrderTypeNV::eCustom : return "Custom";
4285       case CoarseSampleOrderTypeNV::ePixelMajor : return "PixelMajor";
4286       case CoarseSampleOrderTypeNV::eSampleMajor : return "SampleMajor";
4287       default: return "invalid";
4288     }
4289   }
4290 
4291   enum class ColorComponentFlagBits : VkColorComponentFlags
4292   {
4293     eR = VK_COLOR_COMPONENT_R_BIT,
4294     eG = VK_COLOR_COMPONENT_G_BIT,
4295     eB = VK_COLOR_COMPONENT_B_BIT,
4296     eA = VK_COLOR_COMPONENT_A_BIT
4297   };
4298 
to_string(ColorComponentFlagBits value)4299   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value )
4300   {
4301     switch ( value )
4302     {
4303       case ColorComponentFlagBits::eR : return "R";
4304       case ColorComponentFlagBits::eG : return "G";
4305       case ColorComponentFlagBits::eB : return "B";
4306       case ColorComponentFlagBits::eA : return "A";
4307       default: return "invalid";
4308     }
4309   }
4310 
4311   enum class ColorSpaceKHR
4312   {
4313     eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
4314     eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
4315     eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
4316     eDisplayP3LinearEXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
4317     eDciP3NonlinearEXT = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
4318     eBt709LinearEXT = VK_COLOR_SPACE_BT709_LINEAR_EXT,
4319     eBt709NonlinearEXT = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
4320     eBt2020LinearEXT = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
4321     eHdr10St2084EXT = VK_COLOR_SPACE_HDR10_ST2084_EXT,
4322     eDolbyvisionEXT = VK_COLOR_SPACE_DOLBYVISION_EXT,
4323     eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT,
4324     eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
4325     eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
4326     ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT,
4327     eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
4328     eDisplayNativeAMD = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
4329     eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
4330     eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
4331   };
4332 
to_string(ColorSpaceKHR value)4333   VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value )
4334   {
4335     switch ( value )
4336     {
4337       case ColorSpaceKHR::eSrgbNonlinear : return "SrgbNonlinear";
4338       case ColorSpaceKHR::eDisplayP3NonlinearEXT : return "DisplayP3NonlinearEXT";
4339       case ColorSpaceKHR::eExtendedSrgbLinearEXT : return "ExtendedSrgbLinearEXT";
4340       case ColorSpaceKHR::eDisplayP3LinearEXT : return "DisplayP3LinearEXT";
4341       case ColorSpaceKHR::eDciP3NonlinearEXT : return "DciP3NonlinearEXT";
4342       case ColorSpaceKHR::eBt709LinearEXT : return "Bt709LinearEXT";
4343       case ColorSpaceKHR::eBt709NonlinearEXT : return "Bt709NonlinearEXT";
4344       case ColorSpaceKHR::eBt2020LinearEXT : return "Bt2020LinearEXT";
4345       case ColorSpaceKHR::eHdr10St2084EXT : return "Hdr10St2084EXT";
4346       case ColorSpaceKHR::eDolbyvisionEXT : return "DolbyvisionEXT";
4347       case ColorSpaceKHR::eHdr10HlgEXT : return "Hdr10HlgEXT";
4348       case ColorSpaceKHR::eAdobergbLinearEXT : return "AdobergbLinearEXT";
4349       case ColorSpaceKHR::eAdobergbNonlinearEXT : return "AdobergbNonlinearEXT";
4350       case ColorSpaceKHR::ePassThroughEXT : return "PassThroughEXT";
4351       case ColorSpaceKHR::eExtendedSrgbNonlinearEXT : return "ExtendedSrgbNonlinearEXT";
4352       case ColorSpaceKHR::eDisplayNativeAMD : return "DisplayNativeAMD";
4353       default: return "invalid";
4354     }
4355   }
4356 
4357   enum class CommandBufferLevel
4358   {
4359     ePrimary = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
4360     eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
4361   };
4362 
to_string(CommandBufferLevel value)4363   VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value )
4364   {
4365     switch ( value )
4366     {
4367       case CommandBufferLevel::ePrimary : return "Primary";
4368       case CommandBufferLevel::eSecondary : return "Secondary";
4369       default: return "invalid";
4370     }
4371   }
4372 
4373   enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags
4374   {
4375     eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
4376   };
4377 
to_string(CommandBufferResetFlagBits value)4378   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value )
4379   {
4380     switch ( value )
4381     {
4382       case CommandBufferResetFlagBits::eReleaseResources : return "ReleaseResources";
4383       default: return "invalid";
4384     }
4385   }
4386 
4387   enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags
4388   {
4389     eOneTimeSubmit = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
4390     eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
4391     eSimultaneousUse = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
4392   };
4393 
to_string(CommandBufferUsageFlagBits value)4394   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value )
4395   {
4396     switch ( value )
4397     {
4398       case CommandBufferUsageFlagBits::eOneTimeSubmit : return "OneTimeSubmit";
4399       case CommandBufferUsageFlagBits::eRenderPassContinue : return "RenderPassContinue";
4400       case CommandBufferUsageFlagBits::eSimultaneousUse : return "SimultaneousUse";
4401       default: return "invalid";
4402     }
4403   }
4404 
4405   enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags
4406   {
4407     eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
4408     eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
4409     eProtected = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
4410   };
4411 
to_string(CommandPoolCreateFlagBits value)4412   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value )
4413   {
4414     switch ( value )
4415     {
4416       case CommandPoolCreateFlagBits::eTransient : return "Transient";
4417       case CommandPoolCreateFlagBits::eResetCommandBuffer : return "ResetCommandBuffer";
4418       case CommandPoolCreateFlagBits::eProtected : return "Protected";
4419       default: return "invalid";
4420     }
4421   }
4422 
4423   enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags
4424   {
4425     eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
4426   };
4427 
to_string(CommandPoolResetFlagBits value)4428   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value )
4429   {
4430     switch ( value )
4431     {
4432       case CommandPoolResetFlagBits::eReleaseResources : return "ReleaseResources";
4433       default: return "invalid";
4434     }
4435   }
4436 
4437   enum class CompareOp
4438   {
4439     eNever = VK_COMPARE_OP_NEVER,
4440     eLess = VK_COMPARE_OP_LESS,
4441     eEqual = VK_COMPARE_OP_EQUAL,
4442     eLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL,
4443     eGreater = VK_COMPARE_OP_GREATER,
4444     eNotEqual = VK_COMPARE_OP_NOT_EQUAL,
4445     eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
4446     eAlways = VK_COMPARE_OP_ALWAYS
4447   };
4448 
to_string(CompareOp value)4449   VULKAN_HPP_INLINE std::string to_string( CompareOp value )
4450   {
4451     switch ( value )
4452     {
4453       case CompareOp::eNever : return "Never";
4454       case CompareOp::eLess : return "Less";
4455       case CompareOp::eEqual : return "Equal";
4456       case CompareOp::eLessOrEqual : return "LessOrEqual";
4457       case CompareOp::eGreater : return "Greater";
4458       case CompareOp::eNotEqual : return "NotEqual";
4459       case CompareOp::eGreaterOrEqual : return "GreaterOrEqual";
4460       case CompareOp::eAlways : return "Always";
4461       default: return "invalid";
4462     }
4463   }
4464 
4465   enum class ComponentSwizzle
4466   {
4467     eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY,
4468     eZero = VK_COMPONENT_SWIZZLE_ZERO,
4469     eOne = VK_COMPONENT_SWIZZLE_ONE,
4470     eR = VK_COMPONENT_SWIZZLE_R,
4471     eG = VK_COMPONENT_SWIZZLE_G,
4472     eB = VK_COMPONENT_SWIZZLE_B,
4473     eA = VK_COMPONENT_SWIZZLE_A
4474   };
4475 
to_string(ComponentSwizzle value)4476   VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value )
4477   {
4478     switch ( value )
4479     {
4480       case ComponentSwizzle::eIdentity : return "Identity";
4481       case ComponentSwizzle::eZero : return "Zero";
4482       case ComponentSwizzle::eOne : return "One";
4483       case ComponentSwizzle::eR : return "R";
4484       case ComponentSwizzle::eG : return "G";
4485       case ComponentSwizzle::eB : return "B";
4486       case ComponentSwizzle::eA : return "A";
4487       default: return "invalid";
4488     }
4489   }
4490 
4491   enum class ComponentTypeNV
4492   {
4493     eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV,
4494     eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV,
4495     eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV,
4496     eSint8 = VK_COMPONENT_TYPE_SINT8_NV,
4497     eSint16 = VK_COMPONENT_TYPE_SINT16_NV,
4498     eSint32 = VK_COMPONENT_TYPE_SINT32_NV,
4499     eSint64 = VK_COMPONENT_TYPE_SINT64_NV,
4500     eUint8 = VK_COMPONENT_TYPE_UINT8_NV,
4501     eUint16 = VK_COMPONENT_TYPE_UINT16_NV,
4502     eUint32 = VK_COMPONENT_TYPE_UINT32_NV,
4503     eUint64 = VK_COMPONENT_TYPE_UINT64_NV
4504   };
4505 
to_string(ComponentTypeNV value)4506   VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value )
4507   {
4508     switch ( value )
4509     {
4510       case ComponentTypeNV::eFloat16 : return "Float16";
4511       case ComponentTypeNV::eFloat32 : return "Float32";
4512       case ComponentTypeNV::eFloat64 : return "Float64";
4513       case ComponentTypeNV::eSint8 : return "Sint8";
4514       case ComponentTypeNV::eSint16 : return "Sint16";
4515       case ComponentTypeNV::eSint32 : return "Sint32";
4516       case ComponentTypeNV::eSint64 : return "Sint64";
4517       case ComponentTypeNV::eUint8 : return "Uint8";
4518       case ComponentTypeNV::eUint16 : return "Uint16";
4519       case ComponentTypeNV::eUint32 : return "Uint32";
4520       case ComponentTypeNV::eUint64 : return "Uint64";
4521       default: return "invalid";
4522     }
4523   }
4524 
4525   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
4526   {
4527     eOpaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
4528     ePreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
4529     ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
4530     eInherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
4531   };
4532 
to_string(CompositeAlphaFlagBitsKHR value)4533   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value )
4534   {
4535     switch ( value )
4536     {
4537       case CompositeAlphaFlagBitsKHR::eOpaque : return "Opaque";
4538       case CompositeAlphaFlagBitsKHR::ePreMultiplied : return "PreMultiplied";
4539       case CompositeAlphaFlagBitsKHR::ePostMultiplied : return "PostMultiplied";
4540       case CompositeAlphaFlagBitsKHR::eInherit : return "Inherit";
4541       default: return "invalid";
4542     }
4543   }
4544 
4545   enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT
4546   {
4547     eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
4548   };
4549 
to_string(ConditionalRenderingFlagBitsEXT value)4550   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value )
4551   {
4552     switch ( value )
4553     {
4554       case ConditionalRenderingFlagBitsEXT::eInverted : return "Inverted";
4555       default: return "invalid";
4556     }
4557   }
4558 
4559   enum class ConservativeRasterizationModeEXT
4560   {
4561     eDisabled = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
4562     eOverestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
4563     eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
4564   };
4565 
to_string(ConservativeRasterizationModeEXT value)4566   VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value )
4567   {
4568     switch ( value )
4569     {
4570       case ConservativeRasterizationModeEXT::eDisabled : return "Disabled";
4571       case ConservativeRasterizationModeEXT::eOverestimate : return "Overestimate";
4572       case ConservativeRasterizationModeEXT::eUnderestimate : return "Underestimate";
4573       default: return "invalid";
4574     }
4575   }
4576 
4577   enum class CopyAccelerationStructureModeKHR
4578   {
4579     eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
4580     eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
4581     eSerialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,
4582     eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
4583   };
4584   using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
4585 
to_string(CopyAccelerationStructureModeKHR value)4586   VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeKHR value )
4587   {
4588     switch ( value )
4589     {
4590       case CopyAccelerationStructureModeKHR::eClone : return "Clone";
4591       case CopyAccelerationStructureModeKHR::eCompact : return "Compact";
4592       case CopyAccelerationStructureModeKHR::eSerialize : return "Serialize";
4593       case CopyAccelerationStructureModeKHR::eDeserialize : return "Deserialize";
4594       default: return "invalid";
4595     }
4596   }
4597 
4598   enum class CoverageModulationModeNV
4599   {
4600     eNone = VK_COVERAGE_MODULATION_MODE_NONE_NV,
4601     eRgb = VK_COVERAGE_MODULATION_MODE_RGB_NV,
4602     eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
4603     eRgba = VK_COVERAGE_MODULATION_MODE_RGBA_NV
4604   };
4605 
to_string(CoverageModulationModeNV value)4606   VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value )
4607   {
4608     switch ( value )
4609     {
4610       case CoverageModulationModeNV::eNone : return "None";
4611       case CoverageModulationModeNV::eRgb : return "Rgb";
4612       case CoverageModulationModeNV::eAlpha : return "Alpha";
4613       case CoverageModulationModeNV::eRgba : return "Rgba";
4614       default: return "invalid";
4615     }
4616   }
4617 
4618   enum class CoverageReductionModeNV
4619   {
4620     eMerge = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
4621     eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
4622   };
4623 
to_string(CoverageReductionModeNV value)4624   VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value )
4625   {
4626     switch ( value )
4627     {
4628       case CoverageReductionModeNV::eMerge : return "Merge";
4629       case CoverageReductionModeNV::eTruncate : return "Truncate";
4630       default: return "invalid";
4631     }
4632   }
4633 
4634   enum class CullModeFlagBits : VkCullModeFlags
4635   {
4636     eNone = VK_CULL_MODE_NONE,
4637     eFront = VK_CULL_MODE_FRONT_BIT,
4638     eBack = VK_CULL_MODE_BACK_BIT,
4639     eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
4640   };
4641 
to_string(CullModeFlagBits value)4642   VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value )
4643   {
4644     switch ( value )
4645     {
4646       case CullModeFlagBits::eNone : return "None";
4647       case CullModeFlagBits::eFront : return "Front";
4648       case CullModeFlagBits::eBack : return "Back";
4649       case CullModeFlagBits::eFrontAndBack : return "FrontAndBack";
4650       default: return "invalid";
4651     }
4652   }
4653 
4654   enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
4655   {
4656     eInformation = VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
4657     eWarning = VK_DEBUG_REPORT_WARNING_BIT_EXT,
4658     ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
4659     eError = VK_DEBUG_REPORT_ERROR_BIT_EXT,
4660     eDebug = VK_DEBUG_REPORT_DEBUG_BIT_EXT
4661   };
4662 
to_string(DebugReportFlagBitsEXT value)4663   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value )
4664   {
4665     switch ( value )
4666     {
4667       case DebugReportFlagBitsEXT::eInformation : return "Information";
4668       case DebugReportFlagBitsEXT::eWarning : return "Warning";
4669       case DebugReportFlagBitsEXT::ePerformanceWarning : return "PerformanceWarning";
4670       case DebugReportFlagBitsEXT::eError : return "Error";
4671       case DebugReportFlagBitsEXT::eDebug : return "Debug";
4672       default: return "invalid";
4673     }
4674   }
4675 
4676   enum class DebugReportObjectTypeEXT
4677   {
4678     eUnknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
4679     eInstance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
4680     ePhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
4681     eDevice = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
4682     eQueue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
4683     eSemaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
4684     eCommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
4685     eFence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
4686     eDeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
4687     eBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
4688     eImage = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
4689     eEvent = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
4690     eQueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
4691     eBufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
4692     eImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
4693     eShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
4694     ePipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
4695     ePipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
4696     eRenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
4697     ePipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
4698     eDescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
4699     eSampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
4700     eDescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
4701     eDescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
4702     eFramebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
4703     eCommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
4704     eSurfaceKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
4705     eSwapchainKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
4706     eDebugReportCallbackEXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
4707     eDisplayKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
4708     eDisplayModeKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
4709     eValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
4710     eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
4711     eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
4712     eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
4713     eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
4714     eDebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
4715     eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
4716     eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
4717     eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT
4718   };
4719 
to_string(DebugReportObjectTypeEXT value)4720   VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value )
4721   {
4722     switch ( value )
4723     {
4724       case DebugReportObjectTypeEXT::eUnknown : return "Unknown";
4725       case DebugReportObjectTypeEXT::eInstance : return "Instance";
4726       case DebugReportObjectTypeEXT::ePhysicalDevice : return "PhysicalDevice";
4727       case DebugReportObjectTypeEXT::eDevice : return "Device";
4728       case DebugReportObjectTypeEXT::eQueue : return "Queue";
4729       case DebugReportObjectTypeEXT::eSemaphore : return "Semaphore";
4730       case DebugReportObjectTypeEXT::eCommandBuffer : return "CommandBuffer";
4731       case DebugReportObjectTypeEXT::eFence : return "Fence";
4732       case DebugReportObjectTypeEXT::eDeviceMemory : return "DeviceMemory";
4733       case DebugReportObjectTypeEXT::eBuffer : return "Buffer";
4734       case DebugReportObjectTypeEXT::eImage : return "Image";
4735       case DebugReportObjectTypeEXT::eEvent : return "Event";
4736       case DebugReportObjectTypeEXT::eQueryPool : return "QueryPool";
4737       case DebugReportObjectTypeEXT::eBufferView : return "BufferView";
4738       case DebugReportObjectTypeEXT::eImageView : return "ImageView";
4739       case DebugReportObjectTypeEXT::eShaderModule : return "ShaderModule";
4740       case DebugReportObjectTypeEXT::ePipelineCache : return "PipelineCache";
4741       case DebugReportObjectTypeEXT::ePipelineLayout : return "PipelineLayout";
4742       case DebugReportObjectTypeEXT::eRenderPass : return "RenderPass";
4743       case DebugReportObjectTypeEXT::ePipeline : return "Pipeline";
4744       case DebugReportObjectTypeEXT::eDescriptorSetLayout : return "DescriptorSetLayout";
4745       case DebugReportObjectTypeEXT::eSampler : return "Sampler";
4746       case DebugReportObjectTypeEXT::eDescriptorPool : return "DescriptorPool";
4747       case DebugReportObjectTypeEXT::eDescriptorSet : return "DescriptorSet";
4748       case DebugReportObjectTypeEXT::eFramebuffer : return "Framebuffer";
4749       case DebugReportObjectTypeEXT::eCommandPool : return "CommandPool";
4750       case DebugReportObjectTypeEXT::eSurfaceKHR : return "SurfaceKHR";
4751       case DebugReportObjectTypeEXT::eSwapchainKHR : return "SwapchainKHR";
4752       case DebugReportObjectTypeEXT::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
4753       case DebugReportObjectTypeEXT::eDisplayKHR : return "DisplayKHR";
4754       case DebugReportObjectTypeEXT::eDisplayModeKHR : return "DisplayModeKHR";
4755       case DebugReportObjectTypeEXT::eValidationCacheEXT : return "ValidationCacheEXT";
4756       case DebugReportObjectTypeEXT::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
4757       case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
4758       case DebugReportObjectTypeEXT::eAccelerationStructureKHR : return "AccelerationStructureKHR";
4759       default: return "invalid";
4760     }
4761   }
4762 
4763   enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT
4764   {
4765     eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
4766     eInfo = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
4767     eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
4768     eError = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
4769   };
4770 
to_string(DebugUtilsMessageSeverityFlagBitsEXT value)4771   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value )
4772   {
4773     switch ( value )
4774     {
4775       case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose : return "Verbose";
4776       case DebugUtilsMessageSeverityFlagBitsEXT::eInfo : return "Info";
4777       case DebugUtilsMessageSeverityFlagBitsEXT::eWarning : return "Warning";
4778       case DebugUtilsMessageSeverityFlagBitsEXT::eError : return "Error";
4779       default: return "invalid";
4780     }
4781   }
4782 
4783   enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT
4784   {
4785     eGeneral = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
4786     eValidation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
4787     ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
4788   };
4789 
to_string(DebugUtilsMessageTypeFlagBitsEXT value)4790   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value )
4791   {
4792     switch ( value )
4793     {
4794       case DebugUtilsMessageTypeFlagBitsEXT::eGeneral : return "General";
4795       case DebugUtilsMessageTypeFlagBitsEXT::eValidation : return "Validation";
4796       case DebugUtilsMessageTypeFlagBitsEXT::ePerformance : return "Performance";
4797       default: return "invalid";
4798     }
4799   }
4800 
4801   enum class DependencyFlagBits : VkDependencyFlags
4802   {
4803     eByRegion = VK_DEPENDENCY_BY_REGION_BIT,
4804     eDeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT,
4805     eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT,
4806     eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
4807     eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR
4808   };
4809 
to_string(DependencyFlagBits value)4810   VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value )
4811   {
4812     switch ( value )
4813     {
4814       case DependencyFlagBits::eByRegion : return "ByRegion";
4815       case DependencyFlagBits::eDeviceGroup : return "DeviceGroup";
4816       case DependencyFlagBits::eViewLocal : return "ViewLocal";
4817       default: return "invalid";
4818     }
4819   }
4820 
4821   enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags
4822   {
4823     eUpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
4824     eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
4825     ePartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
4826     eVariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
4827   };
4828   using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
4829 
to_string(DescriptorBindingFlagBits value)4830   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBits value )
4831   {
4832     switch ( value )
4833     {
4834       case DescriptorBindingFlagBits::eUpdateAfterBind : return "UpdateAfterBind";
4835       case DescriptorBindingFlagBits::eUpdateUnusedWhilePending : return "UpdateUnusedWhilePending";
4836       case DescriptorBindingFlagBits::ePartiallyBound : return "PartiallyBound";
4837       case DescriptorBindingFlagBits::eVariableDescriptorCount : return "VariableDescriptorCount";
4838       default: return "invalid";
4839     }
4840   }
4841 
4842   enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags
4843   {
4844     eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
4845     eUpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
4846     eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
4847   };
4848 
to_string(DescriptorPoolCreateFlagBits value)4849   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value )
4850   {
4851     switch ( value )
4852     {
4853       case DescriptorPoolCreateFlagBits::eFreeDescriptorSet : return "FreeDescriptorSet";
4854       case DescriptorPoolCreateFlagBits::eUpdateAfterBind : return "UpdateAfterBind";
4855       default: return "invalid";
4856     }
4857   }
4858 
4859   enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags
4860   {
4861     eUpdateAfterBindPool = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
4862     ePushDescriptorKHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
4863     eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
4864   };
4865 
to_string(DescriptorSetLayoutCreateFlagBits value)4866   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value )
4867   {
4868     switch ( value )
4869     {
4870       case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool : return "UpdateAfterBindPool";
4871       case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR : return "PushDescriptorKHR";
4872       default: return "invalid";
4873     }
4874   }
4875 
4876   enum class DescriptorType
4877   {
4878     eSampler = VK_DESCRIPTOR_TYPE_SAMPLER,
4879     eCombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
4880     eSampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
4881     eStorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
4882     eUniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
4883     eStorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
4884     eUniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
4885     eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
4886     eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
4887     eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
4888     eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
4889     eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
4890     eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
4891     eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
4892   };
4893 
to_string(DescriptorType value)4894   VULKAN_HPP_INLINE std::string to_string( DescriptorType value )
4895   {
4896     switch ( value )
4897     {
4898       case DescriptorType::eSampler : return "Sampler";
4899       case DescriptorType::eCombinedImageSampler : return "CombinedImageSampler";
4900       case DescriptorType::eSampledImage : return "SampledImage";
4901       case DescriptorType::eStorageImage : return "StorageImage";
4902       case DescriptorType::eUniformTexelBuffer : return "UniformTexelBuffer";
4903       case DescriptorType::eStorageTexelBuffer : return "StorageTexelBuffer";
4904       case DescriptorType::eUniformBuffer : return "UniformBuffer";
4905       case DescriptorType::eStorageBuffer : return "StorageBuffer";
4906       case DescriptorType::eUniformBufferDynamic : return "UniformBufferDynamic";
4907       case DescriptorType::eStorageBufferDynamic : return "StorageBufferDynamic";
4908       case DescriptorType::eInputAttachment : return "InputAttachment";
4909       case DescriptorType::eInlineUniformBlockEXT : return "InlineUniformBlockEXT";
4910       case DescriptorType::eAccelerationStructureKHR : return "AccelerationStructureKHR";
4911       default: return "invalid";
4912     }
4913   }
4914 
4915   enum class DescriptorUpdateTemplateType
4916   {
4917     eDescriptorSet = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4918     ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
4919   };
4920   using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
4921 
to_string(DescriptorUpdateTemplateType value)4922   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value )
4923   {
4924     switch ( value )
4925     {
4926       case DescriptorUpdateTemplateType::eDescriptorSet : return "DescriptorSet";
4927       case DescriptorUpdateTemplateType::ePushDescriptorsKHR : return "PushDescriptorsKHR";
4928       default: return "invalid";
4929     }
4930   }
4931 
4932   enum class DeviceCreateFlagBits
4933   {};
4934 
to_string(DeviceCreateFlagBits)4935   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
4936   {
4937     return "(void)";
4938   }
4939 
4940   enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV
4941   {
4942     eEnableShaderDebugInfo = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,
4943     eEnableResourceTracking = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,
4944     eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV
4945   };
4946 
to_string(DeviceDiagnosticsConfigFlagBitsNV value)4947   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagBitsNV value )
4948   {
4949     switch ( value )
4950     {
4951       case DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo : return "EnableShaderDebugInfo";
4952       case DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking : return "EnableResourceTracking";
4953       case DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints : return "EnableAutomaticCheckpoints";
4954       default: return "invalid";
4955     }
4956   }
4957 
4958   enum class DeviceEventTypeEXT
4959   {
4960     eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
4961   };
4962 
to_string(DeviceEventTypeEXT value)4963   VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value )
4964   {
4965     switch ( value )
4966     {
4967       case DeviceEventTypeEXT::eDisplayHotplug : return "DisplayHotplug";
4968       default: return "invalid";
4969     }
4970   }
4971 
4972   enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR
4973   {
4974     eLocal = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
4975     eRemote = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
4976     eSum = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
4977     eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
4978   };
4979 
to_string(DeviceGroupPresentModeFlagBitsKHR value)4980   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value )
4981   {
4982     switch ( value )
4983     {
4984       case DeviceGroupPresentModeFlagBitsKHR::eLocal : return "Local";
4985       case DeviceGroupPresentModeFlagBitsKHR::eRemote : return "Remote";
4986       case DeviceGroupPresentModeFlagBitsKHR::eSum : return "Sum";
4987       case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice : return "LocalMultiDevice";
4988       default: return "invalid";
4989     }
4990   }
4991 
4992   enum class DeviceMemoryReportEventTypeEXT
4993   {
4994     eAllocate = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT,
4995     eFree = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT,
4996     eImport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT,
4997     eUnimport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT,
4998     eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT
4999   };
5000 
to_string(DeviceMemoryReportEventTypeEXT value)5001   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportEventTypeEXT value )
5002   {
5003     switch ( value )
5004     {
5005       case DeviceMemoryReportEventTypeEXT::eAllocate : return "Allocate";
5006       case DeviceMemoryReportEventTypeEXT::eFree : return "Free";
5007       case DeviceMemoryReportEventTypeEXT::eImport : return "Import";
5008       case DeviceMemoryReportEventTypeEXT::eUnimport : return "Unimport";
5009       case DeviceMemoryReportEventTypeEXT::eAllocationFailed : return "AllocationFailed";
5010       default: return "invalid";
5011     }
5012   }
5013 
5014   enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
5015   {
5016     eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
5017   };
5018 
to_string(DeviceQueueCreateFlagBits value)5019   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
5020   {
5021     switch ( value )
5022     {
5023       case DeviceQueueCreateFlagBits::eProtected : return "Protected";
5024       default: return "invalid";
5025     }
5026   }
5027 
5028   enum class DiscardRectangleModeEXT
5029   {
5030     eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
5031     eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
5032   };
5033 
to_string(DiscardRectangleModeEXT value)5034   VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value )
5035   {
5036     switch ( value )
5037     {
5038       case DiscardRectangleModeEXT::eInclusive : return "Inclusive";
5039       case DiscardRectangleModeEXT::eExclusive : return "Exclusive";
5040       default: return "invalid";
5041     }
5042   }
5043 
5044   enum class DisplayEventTypeEXT
5045   {
5046     eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
5047   };
5048 
to_string(DisplayEventTypeEXT value)5049   VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value )
5050   {
5051     switch ( value )
5052     {
5053       case DisplayEventTypeEXT::eFirstPixelOut : return "FirstPixelOut";
5054       default: return "invalid";
5055     }
5056   }
5057 
5058   enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR
5059   {
5060     eOpaque = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
5061     eGlobal = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
5062     ePerPixel = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
5063     ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
5064   };
5065 
to_string(DisplayPlaneAlphaFlagBitsKHR value)5066   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value )
5067   {
5068     switch ( value )
5069     {
5070       case DisplayPlaneAlphaFlagBitsKHR::eOpaque : return "Opaque";
5071       case DisplayPlaneAlphaFlagBitsKHR::eGlobal : return "Global";
5072       case DisplayPlaneAlphaFlagBitsKHR::ePerPixel : return "PerPixel";
5073       case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied : return "PerPixelPremultiplied";
5074       default: return "invalid";
5075     }
5076   }
5077 
5078   enum class DisplayPowerStateEXT
5079   {
5080     eOff = VK_DISPLAY_POWER_STATE_OFF_EXT,
5081     eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
5082     eOn = VK_DISPLAY_POWER_STATE_ON_EXT
5083   };
5084 
to_string(DisplayPowerStateEXT value)5085   VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value )
5086   {
5087     switch ( value )
5088     {
5089       case DisplayPowerStateEXT::eOff : return "Off";
5090       case DisplayPowerStateEXT::eSuspend : return "Suspend";
5091       case DisplayPowerStateEXT::eOn : return "On";
5092       default: return "invalid";
5093     }
5094   }
5095 
5096   enum class DriverId
5097   {
5098     eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY,
5099     eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5100     eMesaRadv = VK_DRIVER_ID_MESA_RADV,
5101     eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5102     eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5103     eIntelOpenSourceMESA = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5104     eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5105     eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5106     eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY,
5107     eGoogleSwiftshader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5108     eGgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY,
5109     eBroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5110     eMesaLlvmpipe = VK_DRIVER_ID_MESA_LLVMPIPE,
5111     eMoltenvk = VK_DRIVER_ID_MOLTENVK,
5112     eIntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR
5113   };
5114   using DriverIdKHR = DriverId;
5115 
to_string(DriverId value)5116   VULKAN_HPP_INLINE std::string to_string( DriverId value )
5117   {
5118     switch ( value )
5119     {
5120       case DriverId::eAmdProprietary : return "AmdProprietary";
5121       case DriverId::eAmdOpenSource : return "AmdOpenSource";
5122       case DriverId::eMesaRadv : return "MesaRadv";
5123       case DriverId::eNvidiaProprietary : return "NvidiaProprietary";
5124       case DriverId::eIntelProprietaryWindows : return "IntelProprietaryWindows";
5125       case DriverId::eIntelOpenSourceMESA : return "IntelOpenSourceMESA";
5126       case DriverId::eImaginationProprietary : return "ImaginationProprietary";
5127       case DriverId::eQualcommProprietary : return "QualcommProprietary";
5128       case DriverId::eArmProprietary : return "ArmProprietary";
5129       case DriverId::eGoogleSwiftshader : return "GoogleSwiftshader";
5130       case DriverId::eGgpProprietary : return "GgpProprietary";
5131       case DriverId::eBroadcomProprietary : return "BroadcomProprietary";
5132       case DriverId::eMesaLlvmpipe : return "MesaLlvmpipe";
5133       case DriverId::eMoltenvk : return "Moltenvk";
5134       default: return "invalid";
5135     }
5136   }
5137 
5138   enum class DynamicState
5139   {
5140     eViewport = VK_DYNAMIC_STATE_VIEWPORT,
5141     eScissor = VK_DYNAMIC_STATE_SCISSOR,
5142     eLineWidth = VK_DYNAMIC_STATE_LINE_WIDTH,
5143     eDepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS,
5144     eBlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS,
5145     eDepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS,
5146     eStencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
5147     eStencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
5148     eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
5149     eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
5150     eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
5151     eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
5152     eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
5153     eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
5154     eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
5155     eFragmentShadingRateKHR = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,
5156     eLineStippleEXT = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT,
5157     eCullModeEXT = VK_DYNAMIC_STATE_CULL_MODE_EXT,
5158     eFrontFaceEXT = VK_DYNAMIC_STATE_FRONT_FACE_EXT,
5159     ePrimitiveTopologyEXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
5160     eViewportWithCountEXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
5161     eScissorWithCountEXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
5162     eVertexInputBindingStrideEXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
5163     eDepthTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
5164     eDepthWriteEnableEXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
5165     eDepthCompareOpEXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
5166     eDepthBoundsTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
5167     eStencilTestEnableEXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
5168     eStencilOpEXT = VK_DYNAMIC_STATE_STENCIL_OP_EXT
5169   };
5170 
to_string(DynamicState value)5171   VULKAN_HPP_INLINE std::string to_string( DynamicState value )
5172   {
5173     switch ( value )
5174     {
5175       case DynamicState::eViewport : return "Viewport";
5176       case DynamicState::eScissor : return "Scissor";
5177       case DynamicState::eLineWidth : return "LineWidth";
5178       case DynamicState::eDepthBias : return "DepthBias";
5179       case DynamicState::eBlendConstants : return "BlendConstants";
5180       case DynamicState::eDepthBounds : return "DepthBounds";
5181       case DynamicState::eStencilCompareMask : return "StencilCompareMask";
5182       case DynamicState::eStencilWriteMask : return "StencilWriteMask";
5183       case DynamicState::eStencilReference : return "StencilReference";
5184       case DynamicState::eViewportWScalingNV : return "ViewportWScalingNV";
5185       case DynamicState::eDiscardRectangleEXT : return "DiscardRectangleEXT";
5186       case DynamicState::eSampleLocationsEXT : return "SampleLocationsEXT";
5187       case DynamicState::eViewportShadingRatePaletteNV : return "ViewportShadingRatePaletteNV";
5188       case DynamicState::eViewportCoarseSampleOrderNV : return "ViewportCoarseSampleOrderNV";
5189       case DynamicState::eExclusiveScissorNV : return "ExclusiveScissorNV";
5190       case DynamicState::eFragmentShadingRateKHR : return "FragmentShadingRateKHR";
5191       case DynamicState::eLineStippleEXT : return "LineStippleEXT";
5192       case DynamicState::eCullModeEXT : return "CullModeEXT";
5193       case DynamicState::eFrontFaceEXT : return "FrontFaceEXT";
5194       case DynamicState::ePrimitiveTopologyEXT : return "PrimitiveTopologyEXT";
5195       case DynamicState::eViewportWithCountEXT : return "ViewportWithCountEXT";
5196       case DynamicState::eScissorWithCountEXT : return "ScissorWithCountEXT";
5197       case DynamicState::eVertexInputBindingStrideEXT : return "VertexInputBindingStrideEXT";
5198       case DynamicState::eDepthTestEnableEXT : return "DepthTestEnableEXT";
5199       case DynamicState::eDepthWriteEnableEXT : return "DepthWriteEnableEXT";
5200       case DynamicState::eDepthCompareOpEXT : return "DepthCompareOpEXT";
5201       case DynamicState::eDepthBoundsTestEnableEXT : return "DepthBoundsTestEnableEXT";
5202       case DynamicState::eStencilTestEnableEXT : return "StencilTestEnableEXT";
5203       case DynamicState::eStencilOpEXT : return "StencilOpEXT";
5204       default: return "invalid";
5205     }
5206   }
5207 
5208   enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags
5209   {
5210     eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5211     eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
5212   };
5213   using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
5214 
to_string(ExternalFenceFeatureFlagBits value)5215   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value )
5216   {
5217     switch ( value )
5218     {
5219       case ExternalFenceFeatureFlagBits::eExportable : return "Exportable";
5220       case ExternalFenceFeatureFlagBits::eImportable : return "Importable";
5221       default: return "invalid";
5222     }
5223   }
5224 
5225   enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags
5226   {
5227     eOpaqueFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5228     eOpaqueWin32 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5229     eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5230     eSyncFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
5231   };
5232   using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
5233 
to_string(ExternalFenceHandleTypeFlagBits value)5234   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value )
5235   {
5236     switch ( value )
5237     {
5238       case ExternalFenceHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5239       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5240       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5241       case ExternalFenceHandleTypeFlagBits::eSyncFd : return "SyncFd";
5242       default: return "invalid";
5243     }
5244   }
5245 
5246   enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags
5247   {
5248     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5249     eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5250     eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
5251   };
5252   using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
5253 
to_string(ExternalMemoryFeatureFlagBits value)5254   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value )
5255   {
5256     switch ( value )
5257     {
5258       case ExternalMemoryFeatureFlagBits::eDedicatedOnly : return "DedicatedOnly";
5259       case ExternalMemoryFeatureFlagBits::eExportable : return "Exportable";
5260       case ExternalMemoryFeatureFlagBits::eImportable : return "Importable";
5261       default: return "invalid";
5262     }
5263   }
5264 
5265   enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV
5266   {
5267     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
5268     eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
5269     eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
5270   };
5271 
to_string(ExternalMemoryFeatureFlagBitsNV value)5272   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value )
5273   {
5274     switch ( value )
5275     {
5276       case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly : return "DedicatedOnly";
5277       case ExternalMemoryFeatureFlagBitsNV::eExportable : return "Exportable";
5278       case ExternalMemoryFeatureFlagBitsNV::eImportable : return "Importable";
5279       default: return "invalid";
5280     }
5281   }
5282 
5283   enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
5284   {
5285     eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5286     eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5287     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5288     eD3D11Texture = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5289     eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5290     eD3D12Heap = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5291     eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5292     eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
5293     eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
5294     eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
5295     eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
5296   };
5297   using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
5298 
to_string(ExternalMemoryHandleTypeFlagBits value)5299   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value )
5300   {
5301     switch ( value )
5302     {
5303       case ExternalMemoryHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5304       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5305       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5306       case ExternalMemoryHandleTypeFlagBits::eD3D11Texture : return "D3D11Texture";
5307       case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt : return "D3D11TextureKmt";
5308       case ExternalMemoryHandleTypeFlagBits::eD3D12Heap : return "D3D12Heap";
5309       case ExternalMemoryHandleTypeFlagBits::eD3D12Resource : return "D3D12Resource";
5310       case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT : return "DmaBufEXT";
5311       case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID : return "AndroidHardwareBufferANDROID";
5312       case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT : return "HostAllocationEXT";
5313       case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT : return "HostMappedForeignMemoryEXT";
5314       default: return "invalid";
5315     }
5316   }
5317 
5318   enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV
5319   {
5320     eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
5321     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
5322     eD3D11Image = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
5323     eD3D11ImageKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
5324   };
5325 
to_string(ExternalMemoryHandleTypeFlagBitsNV value)5326   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value )
5327   {
5328     switch ( value )
5329     {
5330       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 : return "OpaqueWin32";
5331       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5332       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image : return "D3D11Image";
5333       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt : return "D3D11ImageKmt";
5334       default: return "invalid";
5335     }
5336   }
5337 
5338   enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags
5339   {
5340     eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5341     eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
5342   };
5343   using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
5344 
to_string(ExternalSemaphoreFeatureFlagBits value)5345   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value )
5346   {
5347     switch ( value )
5348     {
5349       case ExternalSemaphoreFeatureFlagBits::eExportable : return "Exportable";
5350       case ExternalSemaphoreFeatureFlagBits::eImportable : return "Importable";
5351       default: return "invalid";
5352     }
5353   }
5354 
5355   enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags
5356   {
5357     eOpaqueFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5358     eOpaqueWin32 = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5359     eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5360     eD3D12Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5361     eSyncFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5362     eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT
5363   };
5364   using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
5365 
to_string(ExternalSemaphoreHandleTypeFlagBits value)5366   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value )
5367   {
5368     switch ( value )
5369     {
5370       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5371       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5372       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5373       case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence : return "D3D12Fence";
5374       case ExternalSemaphoreHandleTypeFlagBits::eSyncFd : return "SyncFd";
5375       default: return "invalid";
5376     }
5377   }
5378 
5379   enum class FenceCreateFlagBits : VkFenceCreateFlags
5380   {
5381     eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
5382   };
5383 
to_string(FenceCreateFlagBits value)5384   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value )
5385   {
5386     switch ( value )
5387     {
5388       case FenceCreateFlagBits::eSignaled : return "Signaled";
5389       default: return "invalid";
5390     }
5391   }
5392 
5393   enum class FenceImportFlagBits : VkFenceImportFlags
5394   {
5395     eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT
5396   };
5397   using FenceImportFlagBitsKHR = FenceImportFlagBits;
5398 
to_string(FenceImportFlagBits value)5399   VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value )
5400   {
5401     switch ( value )
5402     {
5403       case FenceImportFlagBits::eTemporary : return "Temporary";
5404       default: return "invalid";
5405     }
5406   }
5407 
5408   enum class Filter
5409   {
5410     eNearest = VK_FILTER_NEAREST,
5411     eLinear = VK_FILTER_LINEAR,
5412     eCubicIMG = VK_FILTER_CUBIC_IMG,
5413     eCubicEXT = VK_FILTER_CUBIC_EXT
5414   };
5415 
to_string(Filter value)5416   VULKAN_HPP_INLINE std::string to_string( Filter value )
5417   {
5418     switch ( value )
5419     {
5420       case Filter::eNearest : return "Nearest";
5421       case Filter::eLinear : return "Linear";
5422       case Filter::eCubicIMG : return "CubicIMG";
5423       default: return "invalid";
5424     }
5425   }
5426 
5427   enum class Format
5428   {
5429     eUndefined = VK_FORMAT_UNDEFINED,
5430     eR4G4UnormPack8 = VK_FORMAT_R4G4_UNORM_PACK8,
5431     eR4G4B4A4UnormPack16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
5432     eB4G4R4A4UnormPack16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
5433     eR5G6B5UnormPack16 = VK_FORMAT_R5G6B5_UNORM_PACK16,
5434     eB5G6R5UnormPack16 = VK_FORMAT_B5G6R5_UNORM_PACK16,
5435     eR5G5B5A1UnormPack16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
5436     eB5G5R5A1UnormPack16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16,
5437     eA1R5G5B5UnormPack16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16,
5438     eR8Unorm = VK_FORMAT_R8_UNORM,
5439     eR8Snorm = VK_FORMAT_R8_SNORM,
5440     eR8Uscaled = VK_FORMAT_R8_USCALED,
5441     eR8Sscaled = VK_FORMAT_R8_SSCALED,
5442     eR8Uint = VK_FORMAT_R8_UINT,
5443     eR8Sint = VK_FORMAT_R8_SINT,
5444     eR8Srgb = VK_FORMAT_R8_SRGB,
5445     eR8G8Unorm = VK_FORMAT_R8G8_UNORM,
5446     eR8G8Snorm = VK_FORMAT_R8G8_SNORM,
5447     eR8G8Uscaled = VK_FORMAT_R8G8_USCALED,
5448     eR8G8Sscaled = VK_FORMAT_R8G8_SSCALED,
5449     eR8G8Uint = VK_FORMAT_R8G8_UINT,
5450     eR8G8Sint = VK_FORMAT_R8G8_SINT,
5451     eR8G8Srgb = VK_FORMAT_R8G8_SRGB,
5452     eR8G8B8Unorm = VK_FORMAT_R8G8B8_UNORM,
5453     eR8G8B8Snorm = VK_FORMAT_R8G8B8_SNORM,
5454     eR8G8B8Uscaled = VK_FORMAT_R8G8B8_USCALED,
5455     eR8G8B8Sscaled = VK_FORMAT_R8G8B8_SSCALED,
5456     eR8G8B8Uint = VK_FORMAT_R8G8B8_UINT,
5457     eR8G8B8Sint = VK_FORMAT_R8G8B8_SINT,
5458     eR8G8B8Srgb = VK_FORMAT_R8G8B8_SRGB,
5459     eB8G8R8Unorm = VK_FORMAT_B8G8R8_UNORM,
5460     eB8G8R8Snorm = VK_FORMAT_B8G8R8_SNORM,
5461     eB8G8R8Uscaled = VK_FORMAT_B8G8R8_USCALED,
5462     eB8G8R8Sscaled = VK_FORMAT_B8G8R8_SSCALED,
5463     eB8G8R8Uint = VK_FORMAT_B8G8R8_UINT,
5464     eB8G8R8Sint = VK_FORMAT_B8G8R8_SINT,
5465     eB8G8R8Srgb = VK_FORMAT_B8G8R8_SRGB,
5466     eR8G8B8A8Unorm = VK_FORMAT_R8G8B8A8_UNORM,
5467     eR8G8B8A8Snorm = VK_FORMAT_R8G8B8A8_SNORM,
5468     eR8G8B8A8Uscaled = VK_FORMAT_R8G8B8A8_USCALED,
5469     eR8G8B8A8Sscaled = VK_FORMAT_R8G8B8A8_SSCALED,
5470     eR8G8B8A8Uint = VK_FORMAT_R8G8B8A8_UINT,
5471     eR8G8B8A8Sint = VK_FORMAT_R8G8B8A8_SINT,
5472     eR8G8B8A8Srgb = VK_FORMAT_R8G8B8A8_SRGB,
5473     eB8G8R8A8Unorm = VK_FORMAT_B8G8R8A8_UNORM,
5474     eB8G8R8A8Snorm = VK_FORMAT_B8G8R8A8_SNORM,
5475     eB8G8R8A8Uscaled = VK_FORMAT_B8G8R8A8_USCALED,
5476     eB8G8R8A8Sscaled = VK_FORMAT_B8G8R8A8_SSCALED,
5477     eB8G8R8A8Uint = VK_FORMAT_B8G8R8A8_UINT,
5478     eB8G8R8A8Sint = VK_FORMAT_B8G8R8A8_SINT,
5479     eB8G8R8A8Srgb = VK_FORMAT_B8G8R8A8_SRGB,
5480     eA8B8G8R8UnormPack32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32,
5481     eA8B8G8R8SnormPack32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32,
5482     eA8B8G8R8UscaledPack32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32,
5483     eA8B8G8R8SscaledPack32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
5484     eA8B8G8R8UintPack32 = VK_FORMAT_A8B8G8R8_UINT_PACK32,
5485     eA8B8G8R8SintPack32 = VK_FORMAT_A8B8G8R8_SINT_PACK32,
5486     eA8B8G8R8SrgbPack32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32,
5487     eA2R10G10B10UnormPack32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
5488     eA2R10G10B10SnormPack32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32,
5489     eA2R10G10B10UscaledPack32 = VK_FORMAT_A2R10G10B10_USCALED_PACK32,
5490     eA2R10G10B10SscaledPack32 = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
5491     eA2R10G10B10UintPack32 = VK_FORMAT_A2R10G10B10_UINT_PACK32,
5492     eA2R10G10B10SintPack32 = VK_FORMAT_A2R10G10B10_SINT_PACK32,
5493     eA2B10G10R10UnormPack32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32,
5494     eA2B10G10R10SnormPack32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32,
5495     eA2B10G10R10UscaledPack32 = VK_FORMAT_A2B10G10R10_USCALED_PACK32,
5496     eA2B10G10R10SscaledPack32 = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
5497     eA2B10G10R10UintPack32 = VK_FORMAT_A2B10G10R10_UINT_PACK32,
5498     eA2B10G10R10SintPack32 = VK_FORMAT_A2B10G10R10_SINT_PACK32,
5499     eR16Unorm = VK_FORMAT_R16_UNORM,
5500     eR16Snorm = VK_FORMAT_R16_SNORM,
5501     eR16Uscaled = VK_FORMAT_R16_USCALED,
5502     eR16Sscaled = VK_FORMAT_R16_SSCALED,
5503     eR16Uint = VK_FORMAT_R16_UINT,
5504     eR16Sint = VK_FORMAT_R16_SINT,
5505     eR16Sfloat = VK_FORMAT_R16_SFLOAT,
5506     eR16G16Unorm = VK_FORMAT_R16G16_UNORM,
5507     eR16G16Snorm = VK_FORMAT_R16G16_SNORM,
5508     eR16G16Uscaled = VK_FORMAT_R16G16_USCALED,
5509     eR16G16Sscaled = VK_FORMAT_R16G16_SSCALED,
5510     eR16G16Uint = VK_FORMAT_R16G16_UINT,
5511     eR16G16Sint = VK_FORMAT_R16G16_SINT,
5512     eR16G16Sfloat = VK_FORMAT_R16G16_SFLOAT,
5513     eR16G16B16Unorm = VK_FORMAT_R16G16B16_UNORM,
5514     eR16G16B16Snorm = VK_FORMAT_R16G16B16_SNORM,
5515     eR16G16B16Uscaled = VK_FORMAT_R16G16B16_USCALED,
5516     eR16G16B16Sscaled = VK_FORMAT_R16G16B16_SSCALED,
5517     eR16G16B16Uint = VK_FORMAT_R16G16B16_UINT,
5518     eR16G16B16Sint = VK_FORMAT_R16G16B16_SINT,
5519     eR16G16B16Sfloat = VK_FORMAT_R16G16B16_SFLOAT,
5520     eR16G16B16A16Unorm = VK_FORMAT_R16G16B16A16_UNORM,
5521     eR16G16B16A16Snorm = VK_FORMAT_R16G16B16A16_SNORM,
5522     eR16G16B16A16Uscaled = VK_FORMAT_R16G16B16A16_USCALED,
5523     eR16G16B16A16Sscaled = VK_FORMAT_R16G16B16A16_SSCALED,
5524     eR16G16B16A16Uint = VK_FORMAT_R16G16B16A16_UINT,
5525     eR16G16B16A16Sint = VK_FORMAT_R16G16B16A16_SINT,
5526     eR16G16B16A16Sfloat = VK_FORMAT_R16G16B16A16_SFLOAT,
5527     eR32Uint = VK_FORMAT_R32_UINT,
5528     eR32Sint = VK_FORMAT_R32_SINT,
5529     eR32Sfloat = VK_FORMAT_R32_SFLOAT,
5530     eR32G32Uint = VK_FORMAT_R32G32_UINT,
5531     eR32G32Sint = VK_FORMAT_R32G32_SINT,
5532     eR32G32Sfloat = VK_FORMAT_R32G32_SFLOAT,
5533     eR32G32B32Uint = VK_FORMAT_R32G32B32_UINT,
5534     eR32G32B32Sint = VK_FORMAT_R32G32B32_SINT,
5535     eR32G32B32Sfloat = VK_FORMAT_R32G32B32_SFLOAT,
5536     eR32G32B32A32Uint = VK_FORMAT_R32G32B32A32_UINT,
5537     eR32G32B32A32Sint = VK_FORMAT_R32G32B32A32_SINT,
5538     eR32G32B32A32Sfloat = VK_FORMAT_R32G32B32A32_SFLOAT,
5539     eR64Uint = VK_FORMAT_R64_UINT,
5540     eR64Sint = VK_FORMAT_R64_SINT,
5541     eR64Sfloat = VK_FORMAT_R64_SFLOAT,
5542     eR64G64Uint = VK_FORMAT_R64G64_UINT,
5543     eR64G64Sint = VK_FORMAT_R64G64_SINT,
5544     eR64G64Sfloat = VK_FORMAT_R64G64_SFLOAT,
5545     eR64G64B64Uint = VK_FORMAT_R64G64B64_UINT,
5546     eR64G64B64Sint = VK_FORMAT_R64G64B64_SINT,
5547     eR64G64B64Sfloat = VK_FORMAT_R64G64B64_SFLOAT,
5548     eR64G64B64A64Uint = VK_FORMAT_R64G64B64A64_UINT,
5549     eR64G64B64A64Sint = VK_FORMAT_R64G64B64A64_SINT,
5550     eR64G64B64A64Sfloat = VK_FORMAT_R64G64B64A64_SFLOAT,
5551     eB10G11R11UfloatPack32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32,
5552     eE5B9G9R9UfloatPack32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
5553     eD16Unorm = VK_FORMAT_D16_UNORM,
5554     eX8D24UnormPack32 = VK_FORMAT_X8_D24_UNORM_PACK32,
5555     eD32Sfloat = VK_FORMAT_D32_SFLOAT,
5556     eS8Uint = VK_FORMAT_S8_UINT,
5557     eD16UnormS8Uint = VK_FORMAT_D16_UNORM_S8_UINT,
5558     eD24UnormS8Uint = VK_FORMAT_D24_UNORM_S8_UINT,
5559     eD32SfloatS8Uint = VK_FORMAT_D32_SFLOAT_S8_UINT,
5560     eBc1RgbUnormBlock = VK_FORMAT_BC1_RGB_UNORM_BLOCK,
5561     eBc1RgbSrgbBlock = VK_FORMAT_BC1_RGB_SRGB_BLOCK,
5562     eBc1RgbaUnormBlock = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
5563     eBc1RgbaSrgbBlock = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
5564     eBc2UnormBlock = VK_FORMAT_BC2_UNORM_BLOCK,
5565     eBc2SrgbBlock = VK_FORMAT_BC2_SRGB_BLOCK,
5566     eBc3UnormBlock = VK_FORMAT_BC3_UNORM_BLOCK,
5567     eBc3SrgbBlock = VK_FORMAT_BC3_SRGB_BLOCK,
5568     eBc4UnormBlock = VK_FORMAT_BC4_UNORM_BLOCK,
5569     eBc4SnormBlock = VK_FORMAT_BC4_SNORM_BLOCK,
5570     eBc5UnormBlock = VK_FORMAT_BC5_UNORM_BLOCK,
5571     eBc5SnormBlock = VK_FORMAT_BC5_SNORM_BLOCK,
5572     eBc6HUfloatBlock = VK_FORMAT_BC6H_UFLOAT_BLOCK,
5573     eBc6HSfloatBlock = VK_FORMAT_BC6H_SFLOAT_BLOCK,
5574     eBc7UnormBlock = VK_FORMAT_BC7_UNORM_BLOCK,
5575     eBc7SrgbBlock = VK_FORMAT_BC7_SRGB_BLOCK,
5576     eEtc2R8G8B8UnormBlock = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
5577     eEtc2R8G8B8SrgbBlock = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
5578     eEtc2R8G8B8A1UnormBlock = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
5579     eEtc2R8G8B8A1SrgbBlock = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
5580     eEtc2R8G8B8A8UnormBlock = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
5581     eEtc2R8G8B8A8SrgbBlock = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
5582     eEacR11UnormBlock = VK_FORMAT_EAC_R11_UNORM_BLOCK,
5583     eEacR11SnormBlock = VK_FORMAT_EAC_R11_SNORM_BLOCK,
5584     eEacR11G11UnormBlock = VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
5585     eEacR11G11SnormBlock = VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
5586     eAstc4x4UnormBlock = VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
5587     eAstc4x4SrgbBlock = VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
5588     eAstc5x4UnormBlock = VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
5589     eAstc5x4SrgbBlock = VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
5590     eAstc5x5UnormBlock = VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
5591     eAstc5x5SrgbBlock = VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
5592     eAstc6x5UnormBlock = VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
5593     eAstc6x5SrgbBlock = VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
5594     eAstc6x6UnormBlock = VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
5595     eAstc6x6SrgbBlock = VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
5596     eAstc8x5UnormBlock = VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
5597     eAstc8x5SrgbBlock = VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
5598     eAstc8x6UnormBlock = VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
5599     eAstc8x6SrgbBlock = VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
5600     eAstc8x8UnormBlock = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
5601     eAstc8x8SrgbBlock = VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
5602     eAstc10x5UnormBlock = VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
5603     eAstc10x5SrgbBlock = VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
5604     eAstc10x6UnormBlock = VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
5605     eAstc10x6SrgbBlock = VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
5606     eAstc10x8UnormBlock = VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
5607     eAstc10x8SrgbBlock = VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
5608     eAstc10x10UnormBlock = VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
5609     eAstc10x10SrgbBlock = VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
5610     eAstc12x10UnormBlock = VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
5611     eAstc12x10SrgbBlock = VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
5612     eAstc12x12UnormBlock = VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
5613     eAstc12x12SrgbBlock = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
5614     eG8B8G8R8422Unorm = VK_FORMAT_G8B8G8R8_422_UNORM,
5615     eB8G8R8G8422Unorm = VK_FORMAT_B8G8R8G8_422_UNORM,
5616     eG8B8R83Plane420Unorm = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
5617     eG8B8R82Plane420Unorm = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
5618     eG8B8R83Plane422Unorm = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
5619     eG8B8R82Plane422Unorm = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
5620     eG8B8R83Plane444Unorm = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
5621     eR10X6UnormPack16 = VK_FORMAT_R10X6_UNORM_PACK16,
5622     eR10X6G10X6Unorm2Pack16 = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
5623     eR10X6G10X6B10X6A10X6Unorm4Pack16 = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
5624     eG10X6B10X6G10X6R10X6422Unorm4Pack16 = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
5625     eB10X6G10X6R10X6G10X6422Unorm4Pack16 = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
5626     eG10X6B10X6R10X63Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
5627     eG10X6B10X6R10X62Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
5628     eG10X6B10X6R10X63Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
5629     eG10X6B10X6R10X62Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
5630     eG10X6B10X6R10X63Plane444Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
5631     eR12X4UnormPack16 = VK_FORMAT_R12X4_UNORM_PACK16,
5632     eR12X4G12X4Unorm2Pack16 = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
5633     eR12X4G12X4B12X4A12X4Unorm4Pack16 = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
5634     eG12X4B12X4G12X4R12X4422Unorm4Pack16 = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
5635     eB12X4G12X4R12X4G12X4422Unorm4Pack16 = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
5636     eG12X4B12X4R12X43Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
5637     eG12X4B12X4R12X42Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
5638     eG12X4B12X4R12X43Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
5639     eG12X4B12X4R12X42Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
5640     eG12X4B12X4R12X43Plane444Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
5641     eG16B16G16R16422Unorm = VK_FORMAT_G16B16G16R16_422_UNORM,
5642     eB16G16R16G16422Unorm = VK_FORMAT_B16G16R16G16_422_UNORM,
5643     eG16B16R163Plane420Unorm = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
5644     eG16B16R162Plane420Unorm = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
5645     eG16B16R163Plane422Unorm = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
5646     eG16B16R162Plane422Unorm = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
5647     eG16B16R163Plane444Unorm = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
5648     ePvrtc12BppUnormBlockIMG = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
5649     ePvrtc14BppUnormBlockIMG = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
5650     ePvrtc22BppUnormBlockIMG = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
5651     ePvrtc24BppUnormBlockIMG = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
5652     ePvrtc12BppSrgbBlockIMG = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
5653     ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
5654     ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
5655     ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
5656     eAstc4x4SfloatBlockEXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
5657     eAstc5x4SfloatBlockEXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
5658     eAstc5x5SfloatBlockEXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
5659     eAstc6x5SfloatBlockEXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,
5660     eAstc6x6SfloatBlockEXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,
5661     eAstc8x5SfloatBlockEXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
5662     eAstc8x6SfloatBlockEXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
5663     eAstc8x8SfloatBlockEXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
5664     eAstc10x5SfloatBlockEXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
5665     eAstc10x6SfloatBlockEXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
5666     eAstc10x8SfloatBlockEXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
5667     eAstc10x10SfloatBlockEXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
5668     eAstc12x10SfloatBlockEXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
5669     eAstc12x12SfloatBlockEXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
5670     eA4R4G4B4UnormPack16EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
5671     eA4B4G4R4UnormPack16EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
5672     eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
5673     eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
5674     eB16G16R16G16422UnormKHR = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
5675     eB8G8R8G8422UnormKHR = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
5676     eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
5677     eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
5678     eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
5679     eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
5680     eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
5681     eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
5682     eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
5683     eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
5684     eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
5685     eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
5686     eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
5687     eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
5688     eG16B16G16R16422UnormKHR = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
5689     eG16B16R162Plane420UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
5690     eG16B16R162Plane422UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
5691     eG16B16R163Plane420UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
5692     eG16B16R163Plane422UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
5693     eG16B16R163Plane444UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR,
5694     eG8B8G8R8422UnormKHR = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
5695     eG8B8R82Plane420UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
5696     eG8B8R82Plane422UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
5697     eG8B8R83Plane420UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
5698     eG8B8R83Plane422UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
5699     eG8B8R83Plane444UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
5700     eR10X6G10X6B10X6A10X6Unorm4Pack16KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
5701     eR10X6G10X6Unorm2Pack16KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
5702     eR10X6UnormPack16KHR = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
5703     eR12X4G12X4B12X4A12X4Unorm4Pack16KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
5704     eR12X4G12X4Unorm2Pack16KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
5705     eR12X4UnormPack16KHR = VK_FORMAT_R12X4_UNORM_PACK16_KHR
5706   };
5707 
to_string(Format value)5708   VULKAN_HPP_INLINE std::string to_string( Format value )
5709   {
5710     switch ( value )
5711     {
5712       case Format::eUndefined : return "Undefined";
5713       case Format::eR4G4UnormPack8 : return "R4G4UnormPack8";
5714       case Format::eR4G4B4A4UnormPack16 : return "R4G4B4A4UnormPack16";
5715       case Format::eB4G4R4A4UnormPack16 : return "B4G4R4A4UnormPack16";
5716       case Format::eR5G6B5UnormPack16 : return "R5G6B5UnormPack16";
5717       case Format::eB5G6R5UnormPack16 : return "B5G6R5UnormPack16";
5718       case Format::eR5G5B5A1UnormPack16 : return "R5G5B5A1UnormPack16";
5719       case Format::eB5G5R5A1UnormPack16 : return "B5G5R5A1UnormPack16";
5720       case Format::eA1R5G5B5UnormPack16 : return "A1R5G5B5UnormPack16";
5721       case Format::eR8Unorm : return "R8Unorm";
5722       case Format::eR8Snorm : return "R8Snorm";
5723       case Format::eR8Uscaled : return "R8Uscaled";
5724       case Format::eR8Sscaled : return "R8Sscaled";
5725       case Format::eR8Uint : return "R8Uint";
5726       case Format::eR8Sint : return "R8Sint";
5727       case Format::eR8Srgb : return "R8Srgb";
5728       case Format::eR8G8Unorm : return "R8G8Unorm";
5729       case Format::eR8G8Snorm : return "R8G8Snorm";
5730       case Format::eR8G8Uscaled : return "R8G8Uscaled";
5731       case Format::eR8G8Sscaled : return "R8G8Sscaled";
5732       case Format::eR8G8Uint : return "R8G8Uint";
5733       case Format::eR8G8Sint : return "R8G8Sint";
5734       case Format::eR8G8Srgb : return "R8G8Srgb";
5735       case Format::eR8G8B8Unorm : return "R8G8B8Unorm";
5736       case Format::eR8G8B8Snorm : return "R8G8B8Snorm";
5737       case Format::eR8G8B8Uscaled : return "R8G8B8Uscaled";
5738       case Format::eR8G8B8Sscaled : return "R8G8B8Sscaled";
5739       case Format::eR8G8B8Uint : return "R8G8B8Uint";
5740       case Format::eR8G8B8Sint : return "R8G8B8Sint";
5741       case Format::eR8G8B8Srgb : return "R8G8B8Srgb";
5742       case Format::eB8G8R8Unorm : return "B8G8R8Unorm";
5743       case Format::eB8G8R8Snorm : return "B8G8R8Snorm";
5744       case Format::eB8G8R8Uscaled : return "B8G8R8Uscaled";
5745       case Format::eB8G8R8Sscaled : return "B8G8R8Sscaled";
5746       case Format::eB8G8R8Uint : return "B8G8R8Uint";
5747       case Format::eB8G8R8Sint : return "B8G8R8Sint";
5748       case Format::eB8G8R8Srgb : return "B8G8R8Srgb";
5749       case Format::eR8G8B8A8Unorm : return "R8G8B8A8Unorm";
5750       case Format::eR8G8B8A8Snorm : return "R8G8B8A8Snorm";
5751       case Format::eR8G8B8A8Uscaled : return "R8G8B8A8Uscaled";
5752       case Format::eR8G8B8A8Sscaled : return "R8G8B8A8Sscaled";
5753       case Format::eR8G8B8A8Uint : return "R8G8B8A8Uint";
5754       case Format::eR8G8B8A8Sint : return "R8G8B8A8Sint";
5755       case Format::eR8G8B8A8Srgb : return "R8G8B8A8Srgb";
5756       case Format::eB8G8R8A8Unorm : return "B8G8R8A8Unorm";
5757       case Format::eB8G8R8A8Snorm : return "B8G8R8A8Snorm";
5758       case Format::eB8G8R8A8Uscaled : return "B8G8R8A8Uscaled";
5759       case Format::eB8G8R8A8Sscaled : return "B8G8R8A8Sscaled";
5760       case Format::eB8G8R8A8Uint : return "B8G8R8A8Uint";
5761       case Format::eB8G8R8A8Sint : return "B8G8R8A8Sint";
5762       case Format::eB8G8R8A8Srgb : return "B8G8R8A8Srgb";
5763       case Format::eA8B8G8R8UnormPack32 : return "A8B8G8R8UnormPack32";
5764       case Format::eA8B8G8R8SnormPack32 : return "A8B8G8R8SnormPack32";
5765       case Format::eA8B8G8R8UscaledPack32 : return "A8B8G8R8UscaledPack32";
5766       case Format::eA8B8G8R8SscaledPack32 : return "A8B8G8R8SscaledPack32";
5767       case Format::eA8B8G8R8UintPack32 : return "A8B8G8R8UintPack32";
5768       case Format::eA8B8G8R8SintPack32 : return "A8B8G8R8SintPack32";
5769       case Format::eA8B8G8R8SrgbPack32 : return "A8B8G8R8SrgbPack32";
5770       case Format::eA2R10G10B10UnormPack32 : return "A2R10G10B10UnormPack32";
5771       case Format::eA2R10G10B10SnormPack32 : return "A2R10G10B10SnormPack32";
5772       case Format::eA2R10G10B10UscaledPack32 : return "A2R10G10B10UscaledPack32";
5773       case Format::eA2R10G10B10SscaledPack32 : return "A2R10G10B10SscaledPack32";
5774       case Format::eA2R10G10B10UintPack32 : return "A2R10G10B10UintPack32";
5775       case Format::eA2R10G10B10SintPack32 : return "A2R10G10B10SintPack32";
5776       case Format::eA2B10G10R10UnormPack32 : return "A2B10G10R10UnormPack32";
5777       case Format::eA2B10G10R10SnormPack32 : return "A2B10G10R10SnormPack32";
5778       case Format::eA2B10G10R10UscaledPack32 : return "A2B10G10R10UscaledPack32";
5779       case Format::eA2B10G10R10SscaledPack32 : return "A2B10G10R10SscaledPack32";
5780       case Format::eA2B10G10R10UintPack32 : return "A2B10G10R10UintPack32";
5781       case Format::eA2B10G10R10SintPack32 : return "A2B10G10R10SintPack32";
5782       case Format::eR16Unorm : return "R16Unorm";
5783       case Format::eR16Snorm : return "R16Snorm";
5784       case Format::eR16Uscaled : return "R16Uscaled";
5785       case Format::eR16Sscaled : return "R16Sscaled";
5786       case Format::eR16Uint : return "R16Uint";
5787       case Format::eR16Sint : return "R16Sint";
5788       case Format::eR16Sfloat : return "R16Sfloat";
5789       case Format::eR16G16Unorm : return "R16G16Unorm";
5790       case Format::eR16G16Snorm : return "R16G16Snorm";
5791       case Format::eR16G16Uscaled : return "R16G16Uscaled";
5792       case Format::eR16G16Sscaled : return "R16G16Sscaled";
5793       case Format::eR16G16Uint : return "R16G16Uint";
5794       case Format::eR16G16Sint : return "R16G16Sint";
5795       case Format::eR16G16Sfloat : return "R16G16Sfloat";
5796       case Format::eR16G16B16Unorm : return "R16G16B16Unorm";
5797       case Format::eR16G16B16Snorm : return "R16G16B16Snorm";
5798       case Format::eR16G16B16Uscaled : return "R16G16B16Uscaled";
5799       case Format::eR16G16B16Sscaled : return "R16G16B16Sscaled";
5800       case Format::eR16G16B16Uint : return "R16G16B16Uint";
5801       case Format::eR16G16B16Sint : return "R16G16B16Sint";
5802       case Format::eR16G16B16Sfloat : return "R16G16B16Sfloat";
5803       case Format::eR16G16B16A16Unorm : return "R16G16B16A16Unorm";
5804       case Format::eR16G16B16A16Snorm : return "R16G16B16A16Snorm";
5805       case Format::eR16G16B16A16Uscaled : return "R16G16B16A16Uscaled";
5806       case Format::eR16G16B16A16Sscaled : return "R16G16B16A16Sscaled";
5807       case Format::eR16G16B16A16Uint : return "R16G16B16A16Uint";
5808       case Format::eR16G16B16A16Sint : return "R16G16B16A16Sint";
5809       case Format::eR16G16B16A16Sfloat : return "R16G16B16A16Sfloat";
5810       case Format::eR32Uint : return "R32Uint";
5811       case Format::eR32Sint : return "R32Sint";
5812       case Format::eR32Sfloat : return "R32Sfloat";
5813       case Format::eR32G32Uint : return "R32G32Uint";
5814       case Format::eR32G32Sint : return "R32G32Sint";
5815       case Format::eR32G32Sfloat : return "R32G32Sfloat";
5816       case Format::eR32G32B32Uint : return "R32G32B32Uint";
5817       case Format::eR32G32B32Sint : return "R32G32B32Sint";
5818       case Format::eR32G32B32Sfloat : return "R32G32B32Sfloat";
5819       case Format::eR32G32B32A32Uint : return "R32G32B32A32Uint";
5820       case Format::eR32G32B32A32Sint : return "R32G32B32A32Sint";
5821       case Format::eR32G32B32A32Sfloat : return "R32G32B32A32Sfloat";
5822       case Format::eR64Uint : return "R64Uint";
5823       case Format::eR64Sint : return "R64Sint";
5824       case Format::eR64Sfloat : return "R64Sfloat";
5825       case Format::eR64G64Uint : return "R64G64Uint";
5826       case Format::eR64G64Sint : return "R64G64Sint";
5827       case Format::eR64G64Sfloat : return "R64G64Sfloat";
5828       case Format::eR64G64B64Uint : return "R64G64B64Uint";
5829       case Format::eR64G64B64Sint : return "R64G64B64Sint";
5830       case Format::eR64G64B64Sfloat : return "R64G64B64Sfloat";
5831       case Format::eR64G64B64A64Uint : return "R64G64B64A64Uint";
5832       case Format::eR64G64B64A64Sint : return "R64G64B64A64Sint";
5833       case Format::eR64G64B64A64Sfloat : return "R64G64B64A64Sfloat";
5834       case Format::eB10G11R11UfloatPack32 : return "B10G11R11UfloatPack32";
5835       case Format::eE5B9G9R9UfloatPack32 : return "E5B9G9R9UfloatPack32";
5836       case Format::eD16Unorm : return "D16Unorm";
5837       case Format::eX8D24UnormPack32 : return "X8D24UnormPack32";
5838       case Format::eD32Sfloat : return "D32Sfloat";
5839       case Format::eS8Uint : return "S8Uint";
5840       case Format::eD16UnormS8Uint : return "D16UnormS8Uint";
5841       case Format::eD24UnormS8Uint : return "D24UnormS8Uint";
5842       case Format::eD32SfloatS8Uint : return "D32SfloatS8Uint";
5843       case Format::eBc1RgbUnormBlock : return "Bc1RgbUnormBlock";
5844       case Format::eBc1RgbSrgbBlock : return "Bc1RgbSrgbBlock";
5845       case Format::eBc1RgbaUnormBlock : return "Bc1RgbaUnormBlock";
5846       case Format::eBc1RgbaSrgbBlock : return "Bc1RgbaSrgbBlock";
5847       case Format::eBc2UnormBlock : return "Bc2UnormBlock";
5848       case Format::eBc2SrgbBlock : return "Bc2SrgbBlock";
5849       case Format::eBc3UnormBlock : return "Bc3UnormBlock";
5850       case Format::eBc3SrgbBlock : return "Bc3SrgbBlock";
5851       case Format::eBc4UnormBlock : return "Bc4UnormBlock";
5852       case Format::eBc4SnormBlock : return "Bc4SnormBlock";
5853       case Format::eBc5UnormBlock : return "Bc5UnormBlock";
5854       case Format::eBc5SnormBlock : return "Bc5SnormBlock";
5855       case Format::eBc6HUfloatBlock : return "Bc6HUfloatBlock";
5856       case Format::eBc6HSfloatBlock : return "Bc6HSfloatBlock";
5857       case Format::eBc7UnormBlock : return "Bc7UnormBlock";
5858       case Format::eBc7SrgbBlock : return "Bc7SrgbBlock";
5859       case Format::eEtc2R8G8B8UnormBlock : return "Etc2R8G8B8UnormBlock";
5860       case Format::eEtc2R8G8B8SrgbBlock : return "Etc2R8G8B8SrgbBlock";
5861       case Format::eEtc2R8G8B8A1UnormBlock : return "Etc2R8G8B8A1UnormBlock";
5862       case Format::eEtc2R8G8B8A1SrgbBlock : return "Etc2R8G8B8A1SrgbBlock";
5863       case Format::eEtc2R8G8B8A8UnormBlock : return "Etc2R8G8B8A8UnormBlock";
5864       case Format::eEtc2R8G8B8A8SrgbBlock : return "Etc2R8G8B8A8SrgbBlock";
5865       case Format::eEacR11UnormBlock : return "EacR11UnormBlock";
5866       case Format::eEacR11SnormBlock : return "EacR11SnormBlock";
5867       case Format::eEacR11G11UnormBlock : return "EacR11G11UnormBlock";
5868       case Format::eEacR11G11SnormBlock : return "EacR11G11SnormBlock";
5869       case Format::eAstc4x4UnormBlock : return "Astc4x4UnormBlock";
5870       case Format::eAstc4x4SrgbBlock : return "Astc4x4SrgbBlock";
5871       case Format::eAstc5x4UnormBlock : return "Astc5x4UnormBlock";
5872       case Format::eAstc5x4SrgbBlock : return "Astc5x4SrgbBlock";
5873       case Format::eAstc5x5UnormBlock : return "Astc5x5UnormBlock";
5874       case Format::eAstc5x5SrgbBlock : return "Astc5x5SrgbBlock";
5875       case Format::eAstc6x5UnormBlock : return "Astc6x5UnormBlock";
5876       case Format::eAstc6x5SrgbBlock : return "Astc6x5SrgbBlock";
5877       case Format::eAstc6x6UnormBlock : return "Astc6x6UnormBlock";
5878       case Format::eAstc6x6SrgbBlock : return "Astc6x6SrgbBlock";
5879       case Format::eAstc8x5UnormBlock : return "Astc8x5UnormBlock";
5880       case Format::eAstc8x5SrgbBlock : return "Astc8x5SrgbBlock";
5881       case Format::eAstc8x6UnormBlock : return "Astc8x6UnormBlock";
5882       case Format::eAstc8x6SrgbBlock : return "Astc8x6SrgbBlock";
5883       case Format::eAstc8x8UnormBlock : return "Astc8x8UnormBlock";
5884       case Format::eAstc8x8SrgbBlock : return "Astc8x8SrgbBlock";
5885       case Format::eAstc10x5UnormBlock : return "Astc10x5UnormBlock";
5886       case Format::eAstc10x5SrgbBlock : return "Astc10x5SrgbBlock";
5887       case Format::eAstc10x6UnormBlock : return "Astc10x6UnormBlock";
5888       case Format::eAstc10x6SrgbBlock : return "Astc10x6SrgbBlock";
5889       case Format::eAstc10x8UnormBlock : return "Astc10x8UnormBlock";
5890       case Format::eAstc10x8SrgbBlock : return "Astc10x8SrgbBlock";
5891       case Format::eAstc10x10UnormBlock : return "Astc10x10UnormBlock";
5892       case Format::eAstc10x10SrgbBlock : return "Astc10x10SrgbBlock";
5893       case Format::eAstc12x10UnormBlock : return "Astc12x10UnormBlock";
5894       case Format::eAstc12x10SrgbBlock : return "Astc12x10SrgbBlock";
5895       case Format::eAstc12x12UnormBlock : return "Astc12x12UnormBlock";
5896       case Format::eAstc12x12SrgbBlock : return "Astc12x12SrgbBlock";
5897       case Format::eG8B8G8R8422Unorm : return "G8B8G8R8422Unorm";
5898       case Format::eB8G8R8G8422Unorm : return "B8G8R8G8422Unorm";
5899       case Format::eG8B8R83Plane420Unorm : return "G8B8R83Plane420Unorm";
5900       case Format::eG8B8R82Plane420Unorm : return "G8B8R82Plane420Unorm";
5901       case Format::eG8B8R83Plane422Unorm : return "G8B8R83Plane422Unorm";
5902       case Format::eG8B8R82Plane422Unorm : return "G8B8R82Plane422Unorm";
5903       case Format::eG8B8R83Plane444Unorm : return "G8B8R83Plane444Unorm";
5904       case Format::eR10X6UnormPack16 : return "R10X6UnormPack16";
5905       case Format::eR10X6G10X6Unorm2Pack16 : return "R10X6G10X6Unorm2Pack16";
5906       case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16 : return "R10X6G10X6B10X6A10X6Unorm4Pack16";
5907       case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16 : return "G10X6B10X6G10X6R10X6422Unorm4Pack16";
5908       case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16 : return "B10X6G10X6R10X6G10X6422Unorm4Pack16";
5909       case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16 : return "G10X6B10X6R10X63Plane420Unorm3Pack16";
5910       case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16 : return "G10X6B10X6R10X62Plane420Unorm3Pack16";
5911       case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16 : return "G10X6B10X6R10X63Plane422Unorm3Pack16";
5912       case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16 : return "G10X6B10X6R10X62Plane422Unorm3Pack16";
5913       case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16 : return "G10X6B10X6R10X63Plane444Unorm3Pack16";
5914       case Format::eR12X4UnormPack16 : return "R12X4UnormPack16";
5915       case Format::eR12X4G12X4Unorm2Pack16 : return "R12X4G12X4Unorm2Pack16";
5916       case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16 : return "R12X4G12X4B12X4A12X4Unorm4Pack16";
5917       case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16 : return "G12X4B12X4G12X4R12X4422Unorm4Pack16";
5918       case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16 : return "B12X4G12X4R12X4G12X4422Unorm4Pack16";
5919       case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16 : return "G12X4B12X4R12X43Plane420Unorm3Pack16";
5920       case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16 : return "G12X4B12X4R12X42Plane420Unorm3Pack16";
5921       case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16 : return "G12X4B12X4R12X43Plane422Unorm3Pack16";
5922       case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16 : return "G12X4B12X4R12X42Plane422Unorm3Pack16";
5923       case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16 : return "G12X4B12X4R12X43Plane444Unorm3Pack16";
5924       case Format::eG16B16G16R16422Unorm : return "G16B16G16R16422Unorm";
5925       case Format::eB16G16R16G16422Unorm : return "B16G16R16G16422Unorm";
5926       case Format::eG16B16R163Plane420Unorm : return "G16B16R163Plane420Unorm";
5927       case Format::eG16B16R162Plane420Unorm : return "G16B16R162Plane420Unorm";
5928       case Format::eG16B16R163Plane422Unorm : return "G16B16R163Plane422Unorm";
5929       case Format::eG16B16R162Plane422Unorm : return "G16B16R162Plane422Unorm";
5930       case Format::eG16B16R163Plane444Unorm : return "G16B16R163Plane444Unorm";
5931       case Format::ePvrtc12BppUnormBlockIMG : return "Pvrtc12BppUnormBlockIMG";
5932       case Format::ePvrtc14BppUnormBlockIMG : return "Pvrtc14BppUnormBlockIMG";
5933       case Format::ePvrtc22BppUnormBlockIMG : return "Pvrtc22BppUnormBlockIMG";
5934       case Format::ePvrtc24BppUnormBlockIMG : return "Pvrtc24BppUnormBlockIMG";
5935       case Format::ePvrtc12BppSrgbBlockIMG : return "Pvrtc12BppSrgbBlockIMG";
5936       case Format::ePvrtc14BppSrgbBlockIMG : return "Pvrtc14BppSrgbBlockIMG";
5937       case Format::ePvrtc22BppSrgbBlockIMG : return "Pvrtc22BppSrgbBlockIMG";
5938       case Format::ePvrtc24BppSrgbBlockIMG : return "Pvrtc24BppSrgbBlockIMG";
5939       case Format::eAstc4x4SfloatBlockEXT : return "Astc4x4SfloatBlockEXT";
5940       case Format::eAstc5x4SfloatBlockEXT : return "Astc5x4SfloatBlockEXT";
5941       case Format::eAstc5x5SfloatBlockEXT : return "Astc5x5SfloatBlockEXT";
5942       case Format::eAstc6x5SfloatBlockEXT : return "Astc6x5SfloatBlockEXT";
5943       case Format::eAstc6x6SfloatBlockEXT : return "Astc6x6SfloatBlockEXT";
5944       case Format::eAstc8x5SfloatBlockEXT : return "Astc8x5SfloatBlockEXT";
5945       case Format::eAstc8x6SfloatBlockEXT : return "Astc8x6SfloatBlockEXT";
5946       case Format::eAstc8x8SfloatBlockEXT : return "Astc8x8SfloatBlockEXT";
5947       case Format::eAstc10x5SfloatBlockEXT : return "Astc10x5SfloatBlockEXT";
5948       case Format::eAstc10x6SfloatBlockEXT : return "Astc10x6SfloatBlockEXT";
5949       case Format::eAstc10x8SfloatBlockEXT : return "Astc10x8SfloatBlockEXT";
5950       case Format::eAstc10x10SfloatBlockEXT : return "Astc10x10SfloatBlockEXT";
5951       case Format::eAstc12x10SfloatBlockEXT : return "Astc12x10SfloatBlockEXT";
5952       case Format::eAstc12x12SfloatBlockEXT : return "Astc12x12SfloatBlockEXT";
5953       case Format::eA4R4G4B4UnormPack16EXT : return "A4R4G4B4UnormPack16EXT";
5954       case Format::eA4B4G4R4UnormPack16EXT : return "A4B4G4R4UnormPack16EXT";
5955       default: return "invalid";
5956     }
5957   }
5958 
5959   enum class FormatFeatureFlagBits : VkFormatFeatureFlags
5960   {
5961     eSampledImage = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
5962     eStorageImage = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
5963     eStorageImageAtomic = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
5964     eUniformTexelBuffer = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
5965     eStorageTexelBuffer = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
5966     eStorageTexelBufferAtomic = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
5967     eVertexBuffer = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
5968     eColorAttachment = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
5969     eColorAttachmentBlend = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
5970     eDepthStencilAttachment = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
5971     eBlitSrc = VK_FORMAT_FEATURE_BLIT_SRC_BIT,
5972     eBlitDst = VK_FORMAT_FEATURE_BLIT_DST_BIT,
5973     eSampledImageFilterLinear = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
5974     eTransferSrc = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
5975     eTransferDst = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
5976     eMidpointChromaSamples = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
5977     eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
5978     eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
5979     eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
5980     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
5981     eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT,
5982     eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
5983     eSampledImageFilterMinmax = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
5984     eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
5985     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
5986     eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
5987     eFragmentShadingRateAttachmentKHR = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
5988     eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
5989     eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
5990     eMidpointChromaSamplesKHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
5991     eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
5992     eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
5993     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
5994     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
5995     eSampledImageYcbcrConversionLinearFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
5996     eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
5997     eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
5998     eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
5999   };
6000 
to_string(FormatFeatureFlagBits value)6001   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value )
6002   {
6003     switch ( value )
6004     {
6005       case FormatFeatureFlagBits::eSampledImage : return "SampledImage";
6006       case FormatFeatureFlagBits::eStorageImage : return "StorageImage";
6007       case FormatFeatureFlagBits::eStorageImageAtomic : return "StorageImageAtomic";
6008       case FormatFeatureFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
6009       case FormatFeatureFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
6010       case FormatFeatureFlagBits::eStorageTexelBufferAtomic : return "StorageTexelBufferAtomic";
6011       case FormatFeatureFlagBits::eVertexBuffer : return "VertexBuffer";
6012       case FormatFeatureFlagBits::eColorAttachment : return "ColorAttachment";
6013       case FormatFeatureFlagBits::eColorAttachmentBlend : return "ColorAttachmentBlend";
6014       case FormatFeatureFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
6015       case FormatFeatureFlagBits::eBlitSrc : return "BlitSrc";
6016       case FormatFeatureFlagBits::eBlitDst : return "BlitDst";
6017       case FormatFeatureFlagBits::eSampledImageFilterLinear : return "SampledImageFilterLinear";
6018       case FormatFeatureFlagBits::eTransferSrc : return "TransferSrc";
6019       case FormatFeatureFlagBits::eTransferDst : return "TransferDst";
6020       case FormatFeatureFlagBits::eMidpointChromaSamples : return "MidpointChromaSamples";
6021       case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter : return "SampledImageYcbcrConversionLinearFilter";
6022       case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter : return "SampledImageYcbcrConversionSeparateReconstructionFilter";
6023       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit : return "SampledImageYcbcrConversionChromaReconstructionExplicit";
6024       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable : return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
6025       case FormatFeatureFlagBits::eDisjoint : return "Disjoint";
6026       case FormatFeatureFlagBits::eCositedChromaSamples : return "CositedChromaSamples";
6027       case FormatFeatureFlagBits::eSampledImageFilterMinmax : return "SampledImageFilterMinmax";
6028       case FormatFeatureFlagBits::eSampledImageFilterCubicIMG : return "SampledImageFilterCubicIMG";
6029       case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR : return "AccelerationStructureVertexBufferKHR";
6030       case FormatFeatureFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
6031       case FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR : return "FragmentShadingRateAttachmentKHR";
6032       default: return "invalid";
6033     }
6034   }
6035 
6036   enum class FragmentShadingRateCombinerOpKHR
6037   {
6038     eKeep = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR,
6039     eReplace = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,
6040     eMin = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR,
6041     eMax = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR,
6042     eMul = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR
6043   };
6044 
to_string(FragmentShadingRateCombinerOpKHR value)6045   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateCombinerOpKHR value )
6046   {
6047     switch ( value )
6048     {
6049       case FragmentShadingRateCombinerOpKHR::eKeep : return "Keep";
6050       case FragmentShadingRateCombinerOpKHR::eReplace : return "Replace";
6051       case FragmentShadingRateCombinerOpKHR::eMin : return "Min";
6052       case FragmentShadingRateCombinerOpKHR::eMax : return "Max";
6053       case FragmentShadingRateCombinerOpKHR::eMul : return "Mul";
6054       default: return "invalid";
6055     }
6056   }
6057 
6058   enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags
6059   {
6060     eImageless = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
6061     eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
6062   };
6063 
to_string(FramebufferCreateFlagBits value)6064   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value )
6065   {
6066     switch ( value )
6067     {
6068       case FramebufferCreateFlagBits::eImageless : return "Imageless";
6069       default: return "invalid";
6070     }
6071   }
6072 
6073   enum class FrontFace
6074   {
6075     eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
6076     eClockwise = VK_FRONT_FACE_CLOCKWISE
6077   };
6078 
to_string(FrontFace value)6079   VULKAN_HPP_INLINE std::string to_string( FrontFace value )
6080   {
6081     switch ( value )
6082     {
6083       case FrontFace::eCounterClockwise : return "CounterClockwise";
6084       case FrontFace::eClockwise : return "Clockwise";
6085       default: return "invalid";
6086     }
6087   }
6088 
6089 #ifdef VK_USE_PLATFORM_WIN32_KHR
6090   enum class FullScreenExclusiveEXT
6091   {
6092     eDefault = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
6093     eAllowed = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,
6094     eDisallowed = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,
6095     eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
6096   };
6097 
to_string(FullScreenExclusiveEXT value)6098   VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value )
6099   {
6100     switch ( value )
6101     {
6102       case FullScreenExclusiveEXT::eDefault : return "Default";
6103       case FullScreenExclusiveEXT::eAllowed : return "Allowed";
6104       case FullScreenExclusiveEXT::eDisallowed : return "Disallowed";
6105       case FullScreenExclusiveEXT::eApplicationControlled : return "ApplicationControlled";
6106       default: return "invalid";
6107     }
6108   }
6109 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
6110 
6111   enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR
6112   {
6113     eOpaque = VK_GEOMETRY_OPAQUE_BIT_KHR,
6114     eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
6115   };
6116   using GeometryFlagBitsNV = GeometryFlagBitsKHR;
6117 
to_string(GeometryFlagBitsKHR value)6118   VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsKHR value )
6119   {
6120     switch ( value )
6121     {
6122       case GeometryFlagBitsKHR::eOpaque : return "Opaque";
6123       case GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation : return "NoDuplicateAnyHitInvocation";
6124       default: return "invalid";
6125     }
6126   }
6127 
6128   enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR
6129   {
6130     eTriangleFacingCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
6131     eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
6132     eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
6133     eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
6134     eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV
6135   };
6136   using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
6137 
to_string(GeometryInstanceFlagBitsKHR value)6138   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsKHR value )
6139   {
6140     switch ( value )
6141     {
6142       case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable : return "TriangleFacingCullDisable";
6143       case GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise : return "TriangleFrontCounterclockwise";
6144       case GeometryInstanceFlagBitsKHR::eForceOpaque : return "ForceOpaque";
6145       case GeometryInstanceFlagBitsKHR::eForceNoOpaque : return "ForceNoOpaque";
6146       default: return "invalid";
6147     }
6148   }
6149 
6150   enum class GeometryTypeKHR
6151   {
6152     eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
6153     eAabbs = VK_GEOMETRY_TYPE_AABBS_KHR,
6154     eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR
6155   };
6156   using GeometryTypeNV = GeometryTypeKHR;
6157 
to_string(GeometryTypeKHR value)6158   VULKAN_HPP_INLINE std::string to_string( GeometryTypeKHR value )
6159   {
6160     switch ( value )
6161     {
6162       case GeometryTypeKHR::eTriangles : return "Triangles";
6163       case GeometryTypeKHR::eAabbs : return "Aabbs";
6164       case GeometryTypeKHR::eInstances : return "Instances";
6165       default: return "invalid";
6166     }
6167   }
6168 
6169   enum class ImageAspectFlagBits : VkImageAspectFlags
6170   {
6171     eColor = VK_IMAGE_ASPECT_COLOR_BIT,
6172     eDepth = VK_IMAGE_ASPECT_DEPTH_BIT,
6173     eStencil = VK_IMAGE_ASPECT_STENCIL_BIT,
6174     eMetadata = VK_IMAGE_ASPECT_METADATA_BIT,
6175     ePlane0 = VK_IMAGE_ASPECT_PLANE_0_BIT,
6176     ePlane1 = VK_IMAGE_ASPECT_PLANE_1_BIT,
6177     ePlane2 = VK_IMAGE_ASPECT_PLANE_2_BIT,
6178     eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
6179     eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
6180     eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
6181     eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
6182     ePlane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
6183     ePlane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
6184     ePlane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
6185   };
6186 
to_string(ImageAspectFlagBits value)6187   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value )
6188   {
6189     switch ( value )
6190     {
6191       case ImageAspectFlagBits::eColor : return "Color";
6192       case ImageAspectFlagBits::eDepth : return "Depth";
6193       case ImageAspectFlagBits::eStencil : return "Stencil";
6194       case ImageAspectFlagBits::eMetadata : return "Metadata";
6195       case ImageAspectFlagBits::ePlane0 : return "Plane0";
6196       case ImageAspectFlagBits::ePlane1 : return "Plane1";
6197       case ImageAspectFlagBits::ePlane2 : return "Plane2";
6198       case ImageAspectFlagBits::eMemoryPlane0EXT : return "MemoryPlane0EXT";
6199       case ImageAspectFlagBits::eMemoryPlane1EXT : return "MemoryPlane1EXT";
6200       case ImageAspectFlagBits::eMemoryPlane2EXT : return "MemoryPlane2EXT";
6201       case ImageAspectFlagBits::eMemoryPlane3EXT : return "MemoryPlane3EXT";
6202       default: return "invalid";
6203     }
6204   }
6205 
6206   enum class ImageCreateFlagBits : VkImageCreateFlags
6207   {
6208     eSparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
6209     eSparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
6210     eSparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
6211     eMutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
6212     eCubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
6213     eAlias = VK_IMAGE_CREATE_ALIAS_BIT,
6214     eSplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
6215     e2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
6216     eBlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
6217     eExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
6218     eProtected = VK_IMAGE_CREATE_PROTECTED_BIT,
6219     eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT,
6220     eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
6221     eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
6222     eSubsampledEXT = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
6223     e2DArrayCompatibleKHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
6224     eAliasKHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR,
6225     eBlockTexelViewCompatibleKHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
6226     eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
6227     eExtendedUsageKHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
6228     eSplitInstanceBindRegionsKHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
6229   };
6230 
to_string(ImageCreateFlagBits value)6231   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value )
6232   {
6233     switch ( value )
6234     {
6235       case ImageCreateFlagBits::eSparseBinding : return "SparseBinding";
6236       case ImageCreateFlagBits::eSparseResidency : return "SparseResidency";
6237       case ImageCreateFlagBits::eSparseAliased : return "SparseAliased";
6238       case ImageCreateFlagBits::eMutableFormat : return "MutableFormat";
6239       case ImageCreateFlagBits::eCubeCompatible : return "CubeCompatible";
6240       case ImageCreateFlagBits::eAlias : return "Alias";
6241       case ImageCreateFlagBits::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
6242       case ImageCreateFlagBits::e2DArrayCompatible : return "2DArrayCompatible";
6243       case ImageCreateFlagBits::eBlockTexelViewCompatible : return "BlockTexelViewCompatible";
6244       case ImageCreateFlagBits::eExtendedUsage : return "ExtendedUsage";
6245       case ImageCreateFlagBits::eProtected : return "Protected";
6246       case ImageCreateFlagBits::eDisjoint : return "Disjoint";
6247       case ImageCreateFlagBits::eCornerSampledNV : return "CornerSampledNV";
6248       case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT : return "SampleLocationsCompatibleDepthEXT";
6249       case ImageCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
6250       default: return "invalid";
6251     }
6252   }
6253 
6254   enum class ImageLayout
6255   {
6256     eUndefined = VK_IMAGE_LAYOUT_UNDEFINED,
6257     eGeneral = VK_IMAGE_LAYOUT_GENERAL,
6258     eColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
6259     eDepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
6260     eDepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
6261     eShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
6262     eTransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
6263     eTransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
6264     ePreinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED,
6265     eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
6266     eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
6267     eDepthAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
6268     eDepthReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
6269     eStencilAttachmentOptimal = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
6270     eStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
6271     ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
6272     eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
6273     eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
6274     eFragmentDensityMapOptimalEXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
6275     eDepthAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
6276     eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
6277     eDepthReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
6278     eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
6279     eFragmentShadingRateAttachmentOptimalKHR = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
6280     eStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR,
6281     eStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR
6282   };
6283 
to_string(ImageLayout value)6284   VULKAN_HPP_INLINE std::string to_string( ImageLayout value )
6285   {
6286     switch ( value )
6287     {
6288       case ImageLayout::eUndefined : return "Undefined";
6289       case ImageLayout::eGeneral : return "General";
6290       case ImageLayout::eColorAttachmentOptimal : return "ColorAttachmentOptimal";
6291       case ImageLayout::eDepthStencilAttachmentOptimal : return "DepthStencilAttachmentOptimal";
6292       case ImageLayout::eDepthStencilReadOnlyOptimal : return "DepthStencilReadOnlyOptimal";
6293       case ImageLayout::eShaderReadOnlyOptimal : return "ShaderReadOnlyOptimal";
6294       case ImageLayout::eTransferSrcOptimal : return "TransferSrcOptimal";
6295       case ImageLayout::eTransferDstOptimal : return "TransferDstOptimal";
6296       case ImageLayout::ePreinitialized : return "Preinitialized";
6297       case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal : return "DepthReadOnlyStencilAttachmentOptimal";
6298       case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal : return "DepthAttachmentStencilReadOnlyOptimal";
6299       case ImageLayout::eDepthAttachmentOptimal : return "DepthAttachmentOptimal";
6300       case ImageLayout::eDepthReadOnlyOptimal : return "DepthReadOnlyOptimal";
6301       case ImageLayout::eStencilAttachmentOptimal : return "StencilAttachmentOptimal";
6302       case ImageLayout::eStencilReadOnlyOptimal : return "StencilReadOnlyOptimal";
6303       case ImageLayout::ePresentSrcKHR : return "PresentSrcKHR";
6304       case ImageLayout::eSharedPresentKHR : return "SharedPresentKHR";
6305       case ImageLayout::eShadingRateOptimalNV : return "ShadingRateOptimalNV";
6306       case ImageLayout::eFragmentDensityMapOptimalEXT : return "FragmentDensityMapOptimalEXT";
6307       default: return "invalid";
6308     }
6309   }
6310 
6311   enum class ImageTiling
6312   {
6313     eOptimal = VK_IMAGE_TILING_OPTIMAL,
6314     eLinear = VK_IMAGE_TILING_LINEAR,
6315     eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
6316   };
6317 
to_string(ImageTiling value)6318   VULKAN_HPP_INLINE std::string to_string( ImageTiling value )
6319   {
6320     switch ( value )
6321     {
6322       case ImageTiling::eOptimal : return "Optimal";
6323       case ImageTiling::eLinear : return "Linear";
6324       case ImageTiling::eDrmFormatModifierEXT : return "DrmFormatModifierEXT";
6325       default: return "invalid";
6326     }
6327   }
6328 
6329   enum class ImageType
6330   {
6331     e1D = VK_IMAGE_TYPE_1D,
6332     e2D = VK_IMAGE_TYPE_2D,
6333     e3D = VK_IMAGE_TYPE_3D
6334   };
6335 
to_string(ImageType value)6336   VULKAN_HPP_INLINE std::string to_string( ImageType value )
6337   {
6338     switch ( value )
6339     {
6340       case ImageType::e1D : return "1D";
6341       case ImageType::e2D : return "2D";
6342       case ImageType::e3D : return "3D";
6343       default: return "invalid";
6344     }
6345   }
6346 
6347   enum class ImageUsageFlagBits : VkImageUsageFlags
6348   {
6349     eTransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
6350     eTransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
6351     eSampled = VK_IMAGE_USAGE_SAMPLED_BIT,
6352     eStorage = VK_IMAGE_USAGE_STORAGE_BIT,
6353     eColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
6354     eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
6355     eTransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
6356     eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
6357     eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
6358     eFragmentDensityMapEXT = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,
6359     eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
6360   };
6361 
to_string(ImageUsageFlagBits value)6362   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value )
6363   {
6364     switch ( value )
6365     {
6366       case ImageUsageFlagBits::eTransferSrc : return "TransferSrc";
6367       case ImageUsageFlagBits::eTransferDst : return "TransferDst";
6368       case ImageUsageFlagBits::eSampled : return "Sampled";
6369       case ImageUsageFlagBits::eStorage : return "Storage";
6370       case ImageUsageFlagBits::eColorAttachment : return "ColorAttachment";
6371       case ImageUsageFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
6372       case ImageUsageFlagBits::eTransientAttachment : return "TransientAttachment";
6373       case ImageUsageFlagBits::eInputAttachment : return "InputAttachment";
6374       case ImageUsageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
6375       case ImageUsageFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
6376       default: return "invalid";
6377     }
6378   }
6379 
6380   enum class ImageViewCreateFlagBits : VkImageViewCreateFlags
6381   {
6382     eFragmentDensityMapDynamicEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,
6383     eFragmentDensityMapDeferredEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
6384   };
6385 
to_string(ImageViewCreateFlagBits value)6386   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value )
6387   {
6388     switch ( value )
6389     {
6390       case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT : return "FragmentDensityMapDynamicEXT";
6391       case ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT : return "FragmentDensityMapDeferredEXT";
6392       default: return "invalid";
6393     }
6394   }
6395 
6396   enum class ImageViewType
6397   {
6398     e1D = VK_IMAGE_VIEW_TYPE_1D,
6399     e2D = VK_IMAGE_VIEW_TYPE_2D,
6400     e3D = VK_IMAGE_VIEW_TYPE_3D,
6401     eCube = VK_IMAGE_VIEW_TYPE_CUBE,
6402     e1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
6403     e2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
6404     eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
6405   };
6406 
to_string(ImageViewType value)6407   VULKAN_HPP_INLINE std::string to_string( ImageViewType value )
6408   {
6409     switch ( value )
6410     {
6411       case ImageViewType::e1D : return "1D";
6412       case ImageViewType::e2D : return "2D";
6413       case ImageViewType::e3D : return "3D";
6414       case ImageViewType::eCube : return "Cube";
6415       case ImageViewType::e1DArray : return "1DArray";
6416       case ImageViewType::e2DArray : return "2DArray";
6417       case ImageViewType::eCubeArray : return "CubeArray";
6418       default: return "invalid";
6419     }
6420   }
6421 
6422   enum class IndexType
6423   {
6424     eUint16 = VK_INDEX_TYPE_UINT16,
6425     eUint32 = VK_INDEX_TYPE_UINT32,
6426     eNoneKHR = VK_INDEX_TYPE_NONE_KHR,
6427     eUint8EXT = VK_INDEX_TYPE_UINT8_EXT,
6428     eNoneNV = VK_INDEX_TYPE_NONE_NV
6429   };
6430 
to_string(IndexType value)6431   VULKAN_HPP_INLINE std::string to_string( IndexType value )
6432   {
6433     switch ( value )
6434     {
6435       case IndexType::eUint16 : return "Uint16";
6436       case IndexType::eUint32 : return "Uint32";
6437       case IndexType::eNoneKHR : return "NoneKHR";
6438       case IndexType::eUint8EXT : return "Uint8EXT";
6439       default: return "invalid";
6440     }
6441   }
6442 
6443   enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV
6444   {
6445     eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,
6446     eIndexedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,
6447     eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
6448   };
6449 
to_string(IndirectCommandsLayoutUsageFlagBitsNV value)6450   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNV value )
6451   {
6452     switch ( value )
6453     {
6454       case IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess : return "ExplicitPreprocess";
6455       case IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences : return "IndexedSequences";
6456       case IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences : return "UnorderedSequences";
6457       default: return "invalid";
6458     }
6459   }
6460 
6461   enum class IndirectCommandsTokenTypeNV
6462   {
6463     eShaderGroup = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV,
6464     eStateFlags = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,
6465     eIndexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,
6466     eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,
6467     ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV,
6468     eDrawIndexed = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,
6469     eDraw = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,
6470     eDrawTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
6471   };
6472 
to_string(IndirectCommandsTokenTypeNV value)6473   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNV value )
6474   {
6475     switch ( value )
6476     {
6477       case IndirectCommandsTokenTypeNV::eShaderGroup : return "ShaderGroup";
6478       case IndirectCommandsTokenTypeNV::eStateFlags : return "StateFlags";
6479       case IndirectCommandsTokenTypeNV::eIndexBuffer : return "IndexBuffer";
6480       case IndirectCommandsTokenTypeNV::eVertexBuffer : return "VertexBuffer";
6481       case IndirectCommandsTokenTypeNV::ePushConstant : return "PushConstant";
6482       case IndirectCommandsTokenTypeNV::eDrawIndexed : return "DrawIndexed";
6483       case IndirectCommandsTokenTypeNV::eDraw : return "Draw";
6484       case IndirectCommandsTokenTypeNV::eDrawTasks : return "DrawTasks";
6485       default: return "invalid";
6486     }
6487   }
6488 
6489   enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV
6490   {
6491     eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
6492   };
6493 
to_string(IndirectStateFlagBitsNV value)6494   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagBitsNV value )
6495   {
6496     switch ( value )
6497     {
6498       case IndirectStateFlagBitsNV::eFlagFrontface : return "FlagFrontface";
6499       default: return "invalid";
6500     }
6501   }
6502 
6503   enum class InstanceCreateFlagBits
6504   {};
6505 
to_string(InstanceCreateFlagBits)6506   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
6507   {
6508     return "(void)";
6509   }
6510 
6511   enum class InternalAllocationType
6512   {
6513     eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
6514   };
6515 
to_string(InternalAllocationType value)6516   VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value )
6517   {
6518     switch ( value )
6519     {
6520       case InternalAllocationType::eExecutable : return "Executable";
6521       default: return "invalid";
6522     }
6523   }
6524 
6525   enum class LineRasterizationModeEXT
6526   {
6527     eDefault = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
6528     eRectangular = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
6529     eBresenham = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT,
6530     eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
6531   };
6532 
to_string(LineRasterizationModeEXT value)6533   VULKAN_HPP_INLINE std::string to_string( LineRasterizationModeEXT value )
6534   {
6535     switch ( value )
6536     {
6537       case LineRasterizationModeEXT::eDefault : return "Default";
6538       case LineRasterizationModeEXT::eRectangular : return "Rectangular";
6539       case LineRasterizationModeEXT::eBresenham : return "Bresenham";
6540       case LineRasterizationModeEXT::eRectangularSmooth : return "RectangularSmooth";
6541       default: return "invalid";
6542     }
6543   }
6544 
6545   enum class LogicOp
6546   {
6547     eClear = VK_LOGIC_OP_CLEAR,
6548     eAnd = VK_LOGIC_OP_AND,
6549     eAndReverse = VK_LOGIC_OP_AND_REVERSE,
6550     eCopy = VK_LOGIC_OP_COPY,
6551     eAndInverted = VK_LOGIC_OP_AND_INVERTED,
6552     eNoOp = VK_LOGIC_OP_NO_OP,
6553     eXor = VK_LOGIC_OP_XOR,
6554     eOr = VK_LOGIC_OP_OR,
6555     eNor = VK_LOGIC_OP_NOR,
6556     eEquivalent = VK_LOGIC_OP_EQUIVALENT,
6557     eInvert = VK_LOGIC_OP_INVERT,
6558     eOrReverse = VK_LOGIC_OP_OR_REVERSE,
6559     eCopyInverted = VK_LOGIC_OP_COPY_INVERTED,
6560     eOrInverted = VK_LOGIC_OP_OR_INVERTED,
6561     eNand = VK_LOGIC_OP_NAND,
6562     eSet = VK_LOGIC_OP_SET
6563   };
6564 
to_string(LogicOp value)6565   VULKAN_HPP_INLINE std::string to_string( LogicOp value )
6566   {
6567     switch ( value )
6568     {
6569       case LogicOp::eClear : return "Clear";
6570       case LogicOp::eAnd : return "And";
6571       case LogicOp::eAndReverse : return "AndReverse";
6572       case LogicOp::eCopy : return "Copy";
6573       case LogicOp::eAndInverted : return "AndInverted";
6574       case LogicOp::eNoOp : return "NoOp";
6575       case LogicOp::eXor : return "Xor";
6576       case LogicOp::eOr : return "Or";
6577       case LogicOp::eNor : return "Nor";
6578       case LogicOp::eEquivalent : return "Equivalent";
6579       case LogicOp::eInvert : return "Invert";
6580       case LogicOp::eOrReverse : return "OrReverse";
6581       case LogicOp::eCopyInverted : return "CopyInverted";
6582       case LogicOp::eOrInverted : return "OrInverted";
6583       case LogicOp::eNand : return "Nand";
6584       case LogicOp::eSet : return "Set";
6585       default: return "invalid";
6586     }
6587   }
6588 
6589   enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags
6590   {
6591     eDeviceMask = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
6592     eDeviceAddress = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
6593     eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
6594   };
6595   using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
6596 
to_string(MemoryAllocateFlagBits value)6597   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value )
6598   {
6599     switch ( value )
6600     {
6601       case MemoryAllocateFlagBits::eDeviceMask : return "DeviceMask";
6602       case MemoryAllocateFlagBits::eDeviceAddress : return "DeviceAddress";
6603       case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay";
6604       default: return "invalid";
6605     }
6606   }
6607 
6608   enum class MemoryHeapFlagBits : VkMemoryHeapFlags
6609   {
6610     eDeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
6611     eMultiInstance = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
6612     eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
6613   };
6614 
to_string(MemoryHeapFlagBits value)6615   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value )
6616   {
6617     switch ( value )
6618     {
6619       case MemoryHeapFlagBits::eDeviceLocal : return "DeviceLocal";
6620       case MemoryHeapFlagBits::eMultiInstance : return "MultiInstance";
6621       default: return "invalid";
6622     }
6623   }
6624 
6625   enum class MemoryOverallocationBehaviorAMD
6626   {
6627     eDefault = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
6628     eAllowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
6629     eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
6630   };
6631 
to_string(MemoryOverallocationBehaviorAMD value)6632   VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value )
6633   {
6634     switch ( value )
6635     {
6636       case MemoryOverallocationBehaviorAMD::eDefault : return "Default";
6637       case MemoryOverallocationBehaviorAMD::eAllowed : return "Allowed";
6638       case MemoryOverallocationBehaviorAMD::eDisallowed : return "Disallowed";
6639       default: return "invalid";
6640     }
6641   }
6642 
6643   enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags
6644   {
6645     eDeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
6646     eHostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
6647     eHostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
6648     eHostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
6649     eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
6650     eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT,
6651     eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
6652     eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
6653   };
6654 
to_string(MemoryPropertyFlagBits value)6655   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value )
6656   {
6657     switch ( value )
6658     {
6659       case MemoryPropertyFlagBits::eDeviceLocal : return "DeviceLocal";
6660       case MemoryPropertyFlagBits::eHostVisible : return "HostVisible";
6661       case MemoryPropertyFlagBits::eHostCoherent : return "HostCoherent";
6662       case MemoryPropertyFlagBits::eHostCached : return "HostCached";
6663       case MemoryPropertyFlagBits::eLazilyAllocated : return "LazilyAllocated";
6664       case MemoryPropertyFlagBits::eProtected : return "Protected";
6665       case MemoryPropertyFlagBits::eDeviceCoherentAMD : return "DeviceCoherentAMD";
6666       case MemoryPropertyFlagBits::eDeviceUncachedAMD : return "DeviceUncachedAMD";
6667       default: return "invalid";
6668     }
6669   }
6670 
6671   enum class ObjectType
6672   {
6673     eUnknown = VK_OBJECT_TYPE_UNKNOWN,
6674     eInstance = VK_OBJECT_TYPE_INSTANCE,
6675     ePhysicalDevice = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
6676     eDevice = VK_OBJECT_TYPE_DEVICE,
6677     eQueue = VK_OBJECT_TYPE_QUEUE,
6678     eSemaphore = VK_OBJECT_TYPE_SEMAPHORE,
6679     eCommandBuffer = VK_OBJECT_TYPE_COMMAND_BUFFER,
6680     eFence = VK_OBJECT_TYPE_FENCE,
6681     eDeviceMemory = VK_OBJECT_TYPE_DEVICE_MEMORY,
6682     eBuffer = VK_OBJECT_TYPE_BUFFER,
6683     eImage = VK_OBJECT_TYPE_IMAGE,
6684     eEvent = VK_OBJECT_TYPE_EVENT,
6685     eQueryPool = VK_OBJECT_TYPE_QUERY_POOL,
6686     eBufferView = VK_OBJECT_TYPE_BUFFER_VIEW,
6687     eImageView = VK_OBJECT_TYPE_IMAGE_VIEW,
6688     eShaderModule = VK_OBJECT_TYPE_SHADER_MODULE,
6689     ePipelineCache = VK_OBJECT_TYPE_PIPELINE_CACHE,
6690     ePipelineLayout = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
6691     eRenderPass = VK_OBJECT_TYPE_RENDER_PASS,
6692     ePipeline = VK_OBJECT_TYPE_PIPELINE,
6693     eDescriptorSetLayout = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
6694     eSampler = VK_OBJECT_TYPE_SAMPLER,
6695     eDescriptorPool = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
6696     eDescriptorSet = VK_OBJECT_TYPE_DESCRIPTOR_SET,
6697     eFramebuffer = VK_OBJECT_TYPE_FRAMEBUFFER,
6698     eCommandPool = VK_OBJECT_TYPE_COMMAND_POOL,
6699     eSamplerYcbcrConversion = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
6700     eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
6701     eSurfaceKHR = VK_OBJECT_TYPE_SURFACE_KHR,
6702     eSwapchainKHR = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
6703     eDisplayKHR = VK_OBJECT_TYPE_DISPLAY_KHR,
6704     eDisplayModeKHR = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
6705     eDebugReportCallbackEXT = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
6706     eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
6707     eAccelerationStructureKHR = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
6708     eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
6709     ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
6710     eDeferredOperationKHR = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
6711     eIndirectCommandsLayoutNV = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
6712     ePrivateDataSlotEXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
6713     eAccelerationStructureNV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
6714     eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
6715     eSamplerYcbcrConversionKHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
6716   };
6717 
to_string(ObjectType value)6718   VULKAN_HPP_INLINE std::string to_string( ObjectType value )
6719   {
6720     switch ( value )
6721     {
6722       case ObjectType::eUnknown : return "Unknown";
6723       case ObjectType::eInstance : return "Instance";
6724       case ObjectType::ePhysicalDevice : return "PhysicalDevice";
6725       case ObjectType::eDevice : return "Device";
6726       case ObjectType::eQueue : return "Queue";
6727       case ObjectType::eSemaphore : return "Semaphore";
6728       case ObjectType::eCommandBuffer : return "CommandBuffer";
6729       case ObjectType::eFence : return "Fence";
6730       case ObjectType::eDeviceMemory : return "DeviceMemory";
6731       case ObjectType::eBuffer : return "Buffer";
6732       case ObjectType::eImage : return "Image";
6733       case ObjectType::eEvent : return "Event";
6734       case ObjectType::eQueryPool : return "QueryPool";
6735       case ObjectType::eBufferView : return "BufferView";
6736       case ObjectType::eImageView : return "ImageView";
6737       case ObjectType::eShaderModule : return "ShaderModule";
6738       case ObjectType::ePipelineCache : return "PipelineCache";
6739       case ObjectType::ePipelineLayout : return "PipelineLayout";
6740       case ObjectType::eRenderPass : return "RenderPass";
6741       case ObjectType::ePipeline : return "Pipeline";
6742       case ObjectType::eDescriptorSetLayout : return "DescriptorSetLayout";
6743       case ObjectType::eSampler : return "Sampler";
6744       case ObjectType::eDescriptorPool : return "DescriptorPool";
6745       case ObjectType::eDescriptorSet : return "DescriptorSet";
6746       case ObjectType::eFramebuffer : return "Framebuffer";
6747       case ObjectType::eCommandPool : return "CommandPool";
6748       case ObjectType::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
6749       case ObjectType::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
6750       case ObjectType::eSurfaceKHR : return "SurfaceKHR";
6751       case ObjectType::eSwapchainKHR : return "SwapchainKHR";
6752       case ObjectType::eDisplayKHR : return "DisplayKHR";
6753       case ObjectType::eDisplayModeKHR : return "DisplayModeKHR";
6754       case ObjectType::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
6755       case ObjectType::eDebugUtilsMessengerEXT : return "DebugUtilsMessengerEXT";
6756       case ObjectType::eAccelerationStructureKHR : return "AccelerationStructureKHR";
6757       case ObjectType::eValidationCacheEXT : return "ValidationCacheEXT";
6758       case ObjectType::ePerformanceConfigurationINTEL : return "PerformanceConfigurationINTEL";
6759       case ObjectType::eDeferredOperationKHR : return "DeferredOperationKHR";
6760       case ObjectType::eIndirectCommandsLayoutNV : return "IndirectCommandsLayoutNV";
6761       case ObjectType::ePrivateDataSlotEXT : return "PrivateDataSlotEXT";
6762       default: return "invalid";
6763     }
6764   }
6765 
6766   template<ObjectType value>
6767   struct cpp_type
6768   {};
6769 
6770   enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags
6771   {
6772     eCopySrc = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
6773     eCopyDst = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
6774     eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
6775     eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
6776   };
6777   using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
6778 
to_string(PeerMemoryFeatureFlagBits value)6779   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value )
6780   {
6781     switch ( value )
6782     {
6783       case PeerMemoryFeatureFlagBits::eCopySrc : return "CopySrc";
6784       case PeerMemoryFeatureFlagBits::eCopyDst : return "CopyDst";
6785       case PeerMemoryFeatureFlagBits::eGenericSrc : return "GenericSrc";
6786       case PeerMemoryFeatureFlagBits::eGenericDst : return "GenericDst";
6787       default: return "invalid";
6788     }
6789   }
6790 
6791   enum class PerformanceConfigurationTypeINTEL
6792   {
6793     eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
6794   };
6795 
to_string(PerformanceConfigurationTypeINTEL value)6796   VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value )
6797   {
6798     switch ( value )
6799     {
6800       case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated : return "CommandQueueMetricsDiscoveryActivated";
6801       default: return "invalid";
6802     }
6803   }
6804 
6805   enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR
6806   {
6807     ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR,
6808     eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR
6809   };
6810 
to_string(PerformanceCounterDescriptionFlagBitsKHR value)6811   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagBitsKHR value )
6812   {
6813     switch ( value )
6814     {
6815       case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting : return "PerformanceImpacting";
6816       case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted : return "ConcurrentlyImpacted";
6817       default: return "invalid";
6818     }
6819   }
6820 
6821   enum class PerformanceCounterScopeKHR
6822   {
6823     eCommandBuffer = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
6824     eRenderPass = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
6825     eCommand = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
6826     eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
6827     eVkQueryScopeCommand = VK_QUERY_SCOPE_COMMAND_KHR,
6828     eVkQueryScopeRenderPass = VK_QUERY_SCOPE_RENDER_PASS_KHR
6829   };
6830 
to_string(PerformanceCounterScopeKHR value)6831   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterScopeKHR value )
6832   {
6833     switch ( value )
6834     {
6835       case PerformanceCounterScopeKHR::eCommandBuffer : return "CommandBuffer";
6836       case PerformanceCounterScopeKHR::eRenderPass : return "RenderPass";
6837       case PerformanceCounterScopeKHR::eCommand : return "Command";
6838       default: return "invalid";
6839     }
6840   }
6841 
6842   enum class PerformanceCounterStorageKHR
6843   {
6844     eInt32 = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
6845     eInt64 = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR,
6846     eUint32 = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR,
6847     eUint64 = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR,
6848     eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR,
6849     eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
6850   };
6851 
to_string(PerformanceCounterStorageKHR value)6852   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterStorageKHR value )
6853   {
6854     switch ( value )
6855     {
6856       case PerformanceCounterStorageKHR::eInt32 : return "Int32";
6857       case PerformanceCounterStorageKHR::eInt64 : return "Int64";
6858       case PerformanceCounterStorageKHR::eUint32 : return "Uint32";
6859       case PerformanceCounterStorageKHR::eUint64 : return "Uint64";
6860       case PerformanceCounterStorageKHR::eFloat32 : return "Float32";
6861       case PerformanceCounterStorageKHR::eFloat64 : return "Float64";
6862       default: return "invalid";
6863     }
6864   }
6865 
6866   enum class PerformanceCounterUnitKHR
6867   {
6868     eGeneric = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
6869     ePercentage = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR,
6870     eNanoseconds = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR,
6871     eBytes = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR,
6872     eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR,
6873     eKelvin = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR,
6874     eWatts = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR,
6875     eVolts = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR,
6876     eAmps = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR,
6877     eHertz = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR,
6878     eCycles = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
6879   };
6880 
to_string(PerformanceCounterUnitKHR value)6881   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterUnitKHR value )
6882   {
6883     switch ( value )
6884     {
6885       case PerformanceCounterUnitKHR::eGeneric : return "Generic";
6886       case PerformanceCounterUnitKHR::ePercentage : return "Percentage";
6887       case PerformanceCounterUnitKHR::eNanoseconds : return "Nanoseconds";
6888       case PerformanceCounterUnitKHR::eBytes : return "Bytes";
6889       case PerformanceCounterUnitKHR::eBytesPerSecond : return "BytesPerSecond";
6890       case PerformanceCounterUnitKHR::eKelvin : return "Kelvin";
6891       case PerformanceCounterUnitKHR::eWatts : return "Watts";
6892       case PerformanceCounterUnitKHR::eVolts : return "Volts";
6893       case PerformanceCounterUnitKHR::eAmps : return "Amps";
6894       case PerformanceCounterUnitKHR::eHertz : return "Hertz";
6895       case PerformanceCounterUnitKHR::eCycles : return "Cycles";
6896       default: return "invalid";
6897     }
6898   }
6899 
6900   enum class PerformanceOverrideTypeINTEL
6901   {
6902     eNullHardware = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
6903     eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
6904   };
6905 
to_string(PerformanceOverrideTypeINTEL value)6906   VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value )
6907   {
6908     switch ( value )
6909     {
6910       case PerformanceOverrideTypeINTEL::eNullHardware : return "NullHardware";
6911       case PerformanceOverrideTypeINTEL::eFlushGpuCaches : return "FlushGpuCaches";
6912       default: return "invalid";
6913     }
6914   }
6915 
6916   enum class PerformanceParameterTypeINTEL
6917   {
6918     eHwCountersSupported = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
6919     eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
6920   };
6921 
to_string(PerformanceParameterTypeINTEL value)6922   VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value )
6923   {
6924     switch ( value )
6925     {
6926       case PerformanceParameterTypeINTEL::eHwCountersSupported : return "HwCountersSupported";
6927       case PerformanceParameterTypeINTEL::eStreamMarkerValidBits : return "StreamMarkerValidBits";
6928       default: return "invalid";
6929     }
6930   }
6931 
6932   enum class PerformanceValueTypeINTEL
6933   {
6934     eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
6935     eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
6936     eFloat = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
6937     eBool = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
6938     eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
6939   };
6940 
to_string(PerformanceValueTypeINTEL value)6941   VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value )
6942   {
6943     switch ( value )
6944     {
6945       case PerformanceValueTypeINTEL::eUint32 : return "Uint32";
6946       case PerformanceValueTypeINTEL::eUint64 : return "Uint64";
6947       case PerformanceValueTypeINTEL::eFloat : return "Float";
6948       case PerformanceValueTypeINTEL::eBool : return "Bool";
6949       case PerformanceValueTypeINTEL::eString : return "String";
6950       default: return "invalid";
6951     }
6952   }
6953 
6954   enum class PhysicalDeviceType
6955   {
6956     eOther = VK_PHYSICAL_DEVICE_TYPE_OTHER,
6957     eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
6958     eDiscreteGpu = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
6959     eVirtualGpu = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
6960     eCpu = VK_PHYSICAL_DEVICE_TYPE_CPU
6961   };
6962 
to_string(PhysicalDeviceType value)6963   VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value )
6964   {
6965     switch ( value )
6966     {
6967       case PhysicalDeviceType::eOther : return "Other";
6968       case PhysicalDeviceType::eIntegratedGpu : return "IntegratedGpu";
6969       case PhysicalDeviceType::eDiscreteGpu : return "DiscreteGpu";
6970       case PhysicalDeviceType::eVirtualGpu : return "VirtualGpu";
6971       case PhysicalDeviceType::eCpu : return "Cpu";
6972       default: return "invalid";
6973     }
6974   }
6975 
6976   enum class PipelineBindPoint
6977   {
6978     eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
6979     eCompute = VK_PIPELINE_BIND_POINT_COMPUTE,
6980     eRayTracingKHR = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
6981     eRayTracingNV = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
6982   };
6983 
to_string(PipelineBindPoint value)6984   VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value )
6985   {
6986     switch ( value )
6987     {
6988       case PipelineBindPoint::eGraphics : return "Graphics";
6989       case PipelineBindPoint::eCompute : return "Compute";
6990       case PipelineBindPoint::eRayTracingKHR : return "RayTracingKHR";
6991       default: return "invalid";
6992     }
6993   }
6994 
6995   enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
6996   {
6997     eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
6998   };
6999 
to_string(PipelineCacheCreateFlagBits value)7000   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
7001   {
7002     switch ( value )
7003     {
7004       case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT : return "ExternallySynchronizedEXT";
7005       default: return "invalid";
7006     }
7007   }
7008 
7009   enum class PipelineCacheHeaderVersion
7010   {
7011     eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
7012   };
7013 
to_string(PipelineCacheHeaderVersion value)7014   VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value )
7015   {
7016     switch ( value )
7017     {
7018       case PipelineCacheHeaderVersion::eOne : return "One";
7019       default: return "invalid";
7020     }
7021   }
7022 
7023   enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD
7024   {};
7025 
to_string(PipelineCompilerControlFlagBitsAMD)7026   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD )
7027   {
7028     return "(void)";
7029   }
7030 
7031   enum class PipelineCreateFlagBits : VkPipelineCreateFlags
7032   {
7033     eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
7034     eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
7035     eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
7036     eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
7037     eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
7038     eRayTracingNoNullAnyHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
7039     eRayTracingNoNullClosestHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
7040     eRayTracingNoNullMissShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
7041     eRayTracingNoNullIntersectionShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
7042     eRayTracingSkipTrianglesKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
7043     eRayTracingSkipAabbsKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,
7044     eDeferCompileNV = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
7045     eCaptureStatisticsKHR = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
7046     eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
7047     eIndirectBindableNV = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,
7048     eLibraryKHR = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
7049     eFailOnPipelineCompileRequiredEXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
7050     eEarlyReturnOnFailureEXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
7051     eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
7052     eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
7053   };
7054 
to_string(PipelineCreateFlagBits value)7055   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value )
7056   {
7057     switch ( value )
7058     {
7059       case PipelineCreateFlagBits::eDisableOptimization : return "DisableOptimization";
7060       case PipelineCreateFlagBits::eAllowDerivatives : return "AllowDerivatives";
7061       case PipelineCreateFlagBits::eDerivative : return "Derivative";
7062       case PipelineCreateFlagBits::eViewIndexFromDeviceIndex : return "ViewIndexFromDeviceIndex";
7063       case PipelineCreateFlagBits::eDispatchBase : return "DispatchBase";
7064       case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR : return "RayTracingNoNullAnyHitShadersKHR";
7065       case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR : return "RayTracingNoNullClosestHitShadersKHR";
7066       case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR : return "RayTracingNoNullMissShadersKHR";
7067       case PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR : return "RayTracingNoNullIntersectionShadersKHR";
7068       case PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR : return "RayTracingSkipTrianglesKHR";
7069       case PipelineCreateFlagBits::eRayTracingSkipAabbsKHR : return "RayTracingSkipAabbsKHR";
7070       case PipelineCreateFlagBits::eDeferCompileNV : return "DeferCompileNV";
7071       case PipelineCreateFlagBits::eCaptureStatisticsKHR : return "CaptureStatisticsKHR";
7072       case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR : return "CaptureInternalRepresentationsKHR";
7073       case PipelineCreateFlagBits::eIndirectBindableNV : return "IndirectBindableNV";
7074       case PipelineCreateFlagBits::eLibraryKHR : return "LibraryKHR";
7075       case PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT : return "FailOnPipelineCompileRequiredEXT";
7076       case PipelineCreateFlagBits::eEarlyReturnOnFailureEXT : return "EarlyReturnOnFailureEXT";
7077       default: return "invalid";
7078     }
7079   }
7080 
7081   enum class PipelineCreationFeedbackFlagBitsEXT : VkPipelineCreationFeedbackFlagsEXT
7082   {
7083     eValid = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,
7084     eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,
7085     eBasePipelineAcceleration = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT
7086   };
7087 
to_string(PipelineCreationFeedbackFlagBitsEXT value)7088   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value )
7089   {
7090     switch ( value )
7091     {
7092       case PipelineCreationFeedbackFlagBitsEXT::eValid : return "Valid";
7093       case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit : return "ApplicationPipelineCacheHit";
7094       case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration : return "BasePipelineAcceleration";
7095       default: return "invalid";
7096     }
7097   }
7098 
7099   enum class PipelineExecutableStatisticFormatKHR
7100   {
7101     eBool32 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
7102     eInt64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,
7103     eUint64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,
7104     eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
7105   };
7106 
to_string(PipelineExecutableStatisticFormatKHR value)7107   VULKAN_HPP_INLINE std::string to_string( PipelineExecutableStatisticFormatKHR value )
7108   {
7109     switch ( value )
7110     {
7111       case PipelineExecutableStatisticFormatKHR::eBool32 : return "Bool32";
7112       case PipelineExecutableStatisticFormatKHR::eInt64 : return "Int64";
7113       case PipelineExecutableStatisticFormatKHR::eUint64 : return "Uint64";
7114       case PipelineExecutableStatisticFormatKHR::eFloat64 : return "Float64";
7115       default: return "invalid";
7116     }
7117   }
7118 
7119   enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags
7120   {
7121     eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
7122     eRequireFullSubgroupsEXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
7123   };
7124 
to_string(PipelineShaderStageCreateFlagBits value)7125   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value )
7126   {
7127     switch ( value )
7128     {
7129       case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT : return "AllowVaryingSubgroupSizeEXT";
7130       case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT : return "RequireFullSubgroupsEXT";
7131       default: return "invalid";
7132     }
7133   }
7134 
7135   enum class PipelineStageFlagBits : VkPipelineStageFlags
7136   {
7137     eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
7138     eDrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
7139     eVertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
7140     eVertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
7141     eTessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
7142     eTessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
7143     eGeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
7144     eFragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
7145     eEarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
7146     eLateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
7147     eColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
7148     eComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
7149     eTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT,
7150     eBottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
7151     eHost = VK_PIPELINE_STAGE_HOST_BIT,
7152     eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
7153     eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
7154     eTransformFeedbackEXT = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
7155     eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
7156     eRayTracingShaderKHR = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
7157     eAccelerationStructureBuildKHR = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
7158     eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
7159     eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
7160     eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
7161     eFragmentDensityProcessEXT = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
7162     eCommandPreprocessNV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
7163     eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
7164     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
7165     eRayTracingShaderNV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV
7166   };
7167 
to_string(PipelineStageFlagBits value)7168   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value )
7169   {
7170     switch ( value )
7171     {
7172       case PipelineStageFlagBits::eTopOfPipe : return "TopOfPipe";
7173       case PipelineStageFlagBits::eDrawIndirect : return "DrawIndirect";
7174       case PipelineStageFlagBits::eVertexInput : return "VertexInput";
7175       case PipelineStageFlagBits::eVertexShader : return "VertexShader";
7176       case PipelineStageFlagBits::eTessellationControlShader : return "TessellationControlShader";
7177       case PipelineStageFlagBits::eTessellationEvaluationShader : return "TessellationEvaluationShader";
7178       case PipelineStageFlagBits::eGeometryShader : return "GeometryShader";
7179       case PipelineStageFlagBits::eFragmentShader : return "FragmentShader";
7180       case PipelineStageFlagBits::eEarlyFragmentTests : return "EarlyFragmentTests";
7181       case PipelineStageFlagBits::eLateFragmentTests : return "LateFragmentTests";
7182       case PipelineStageFlagBits::eColorAttachmentOutput : return "ColorAttachmentOutput";
7183       case PipelineStageFlagBits::eComputeShader : return "ComputeShader";
7184       case PipelineStageFlagBits::eTransfer : return "Transfer";
7185       case PipelineStageFlagBits::eBottomOfPipe : return "BottomOfPipe";
7186       case PipelineStageFlagBits::eHost : return "Host";
7187       case PipelineStageFlagBits::eAllGraphics : return "AllGraphics";
7188       case PipelineStageFlagBits::eAllCommands : return "AllCommands";
7189       case PipelineStageFlagBits::eTransformFeedbackEXT : return "TransformFeedbackEXT";
7190       case PipelineStageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
7191       case PipelineStageFlagBits::eRayTracingShaderKHR : return "RayTracingShaderKHR";
7192       case PipelineStageFlagBits::eAccelerationStructureBuildKHR : return "AccelerationStructureBuildKHR";
7193       case PipelineStageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
7194       case PipelineStageFlagBits::eTaskShaderNV : return "TaskShaderNV";
7195       case PipelineStageFlagBits::eMeshShaderNV : return "MeshShaderNV";
7196       case PipelineStageFlagBits::eFragmentDensityProcessEXT : return "FragmentDensityProcessEXT";
7197       case PipelineStageFlagBits::eCommandPreprocessNV : return "CommandPreprocessNV";
7198       default: return "invalid";
7199     }
7200   }
7201 
7202   enum class PointClippingBehavior
7203   {
7204     eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
7205     eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
7206   };
7207   using PointClippingBehaviorKHR = PointClippingBehavior;
7208 
to_string(PointClippingBehavior value)7209   VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value )
7210   {
7211     switch ( value )
7212     {
7213       case PointClippingBehavior::eAllClipPlanes : return "AllClipPlanes";
7214       case PointClippingBehavior::eUserClipPlanesOnly : return "UserClipPlanesOnly";
7215       default: return "invalid";
7216     }
7217   }
7218 
7219   enum class PolygonMode
7220   {
7221     eFill = VK_POLYGON_MODE_FILL,
7222     eLine = VK_POLYGON_MODE_LINE,
7223     ePoint = VK_POLYGON_MODE_POINT,
7224     eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
7225   };
7226 
to_string(PolygonMode value)7227   VULKAN_HPP_INLINE std::string to_string( PolygonMode value )
7228   {
7229     switch ( value )
7230     {
7231       case PolygonMode::eFill : return "Fill";
7232       case PolygonMode::eLine : return "Line";
7233       case PolygonMode::ePoint : return "Point";
7234       case PolygonMode::eFillRectangleNV : return "FillRectangleNV";
7235       default: return "invalid";
7236     }
7237   }
7238 
7239   enum class PresentModeKHR
7240   {
7241     eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR,
7242     eMailbox = VK_PRESENT_MODE_MAILBOX_KHR,
7243     eFifo = VK_PRESENT_MODE_FIFO_KHR,
7244     eFifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
7245     eSharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
7246     eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
7247   };
7248 
to_string(PresentModeKHR value)7249   VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value )
7250   {
7251     switch ( value )
7252     {
7253       case PresentModeKHR::eImmediate : return "Immediate";
7254       case PresentModeKHR::eMailbox : return "Mailbox";
7255       case PresentModeKHR::eFifo : return "Fifo";
7256       case PresentModeKHR::eFifoRelaxed : return "FifoRelaxed";
7257       case PresentModeKHR::eSharedDemandRefresh : return "SharedDemandRefresh";
7258       case PresentModeKHR::eSharedContinuousRefresh : return "SharedContinuousRefresh";
7259       default: return "invalid";
7260     }
7261   }
7262 
7263   enum class PrimitiveTopology
7264   {
7265     ePointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
7266     eLineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
7267     eLineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
7268     eTriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
7269     eTriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
7270     eTriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
7271     eLineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
7272     eLineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
7273     eTriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
7274     eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
7275     ePatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
7276   };
7277 
to_string(PrimitiveTopology value)7278   VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value )
7279   {
7280     switch ( value )
7281     {
7282       case PrimitiveTopology::ePointList : return "PointList";
7283       case PrimitiveTopology::eLineList : return "LineList";
7284       case PrimitiveTopology::eLineStrip : return "LineStrip";
7285       case PrimitiveTopology::eTriangleList : return "TriangleList";
7286       case PrimitiveTopology::eTriangleStrip : return "TriangleStrip";
7287       case PrimitiveTopology::eTriangleFan : return "TriangleFan";
7288       case PrimitiveTopology::eLineListWithAdjacency : return "LineListWithAdjacency";
7289       case PrimitiveTopology::eLineStripWithAdjacency : return "LineStripWithAdjacency";
7290       case PrimitiveTopology::eTriangleListWithAdjacency : return "TriangleListWithAdjacency";
7291       case PrimitiveTopology::eTriangleStripWithAdjacency : return "TriangleStripWithAdjacency";
7292       case PrimitiveTopology::ePatchList : return "PatchList";
7293       default: return "invalid";
7294     }
7295   }
7296 
7297   enum class PrivateDataSlotCreateFlagBitsEXT : VkPrivateDataSlotCreateFlagsEXT
7298   {};
7299 
to_string(PrivateDataSlotCreateFlagBitsEXT)7300   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBitsEXT )
7301   {
7302     return "(void)";
7303   }
7304 
7305   enum class QueryControlFlagBits : VkQueryControlFlags
7306   {
7307     ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
7308   };
7309 
to_string(QueryControlFlagBits value)7310   VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value )
7311   {
7312     switch ( value )
7313     {
7314       case QueryControlFlagBits::ePrecise : return "Precise";
7315       default: return "invalid";
7316     }
7317   }
7318 
7319   enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags
7320   {
7321     eInputAssemblyVertices = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
7322     eInputAssemblyPrimitives = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
7323     eVertexShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
7324     eGeometryShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
7325     eGeometryShaderPrimitives = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
7326     eClippingInvocations = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
7327     eClippingPrimitives = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
7328     eFragmentShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
7329     eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
7330     eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
7331     eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
7332   };
7333 
to_string(QueryPipelineStatisticFlagBits value)7334   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value )
7335   {
7336     switch ( value )
7337     {
7338       case QueryPipelineStatisticFlagBits::eInputAssemblyVertices : return "InputAssemblyVertices";
7339       case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives : return "InputAssemblyPrimitives";
7340       case QueryPipelineStatisticFlagBits::eVertexShaderInvocations : return "VertexShaderInvocations";
7341       case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations : return "GeometryShaderInvocations";
7342       case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives : return "GeometryShaderPrimitives";
7343       case QueryPipelineStatisticFlagBits::eClippingInvocations : return "ClippingInvocations";
7344       case QueryPipelineStatisticFlagBits::eClippingPrimitives : return "ClippingPrimitives";
7345       case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations : return "FragmentShaderInvocations";
7346       case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches : return "TessellationControlShaderPatches";
7347       case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations : return "TessellationEvaluationShaderInvocations";
7348       case QueryPipelineStatisticFlagBits::eComputeShaderInvocations : return "ComputeShaderInvocations";
7349       default: return "invalid";
7350     }
7351   }
7352 
7353   enum class QueryPoolCreateFlagBits
7354   {};
7355 
to_string(QueryPoolCreateFlagBits)7356   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
7357   {
7358     return "(void)";
7359   }
7360 
7361   enum class QueryPoolSamplingModeINTEL
7362   {
7363     eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
7364   };
7365 
to_string(QueryPoolSamplingModeINTEL value)7366   VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value )
7367   {
7368     switch ( value )
7369     {
7370       case QueryPoolSamplingModeINTEL::eManual : return "Manual";
7371       default: return "invalid";
7372     }
7373   }
7374 
7375   enum class QueryResultFlagBits : VkQueryResultFlags
7376   {
7377     e64 = VK_QUERY_RESULT_64_BIT,
7378     eWait = VK_QUERY_RESULT_WAIT_BIT,
7379     eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
7380     ePartial = VK_QUERY_RESULT_PARTIAL_BIT
7381   };
7382 
to_string(QueryResultFlagBits value)7383   VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value )
7384   {
7385     switch ( value )
7386     {
7387       case QueryResultFlagBits::e64 : return "64";
7388       case QueryResultFlagBits::eWait : return "Wait";
7389       case QueryResultFlagBits::eWithAvailability : return "WithAvailability";
7390       case QueryResultFlagBits::ePartial : return "Partial";
7391       default: return "invalid";
7392     }
7393   }
7394 
7395   enum class QueryType
7396   {
7397     eOcclusion = VK_QUERY_TYPE_OCCLUSION,
7398     ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS,
7399     eTimestamp = VK_QUERY_TYPE_TIMESTAMP,
7400     eTransformFeedbackStreamEXT = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
7401     ePerformanceQueryKHR = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
7402     eAccelerationStructureCompactedSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
7403     eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
7404     ePerformanceQueryINTEL = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
7405     eAccelerationStructureCompactedSizeNV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
7406   };
7407 
to_string(QueryType value)7408   VULKAN_HPP_INLINE std::string to_string( QueryType value )
7409   {
7410     switch ( value )
7411     {
7412       case QueryType::eOcclusion : return "Occlusion";
7413       case QueryType::ePipelineStatistics : return "PipelineStatistics";
7414       case QueryType::eTimestamp : return "Timestamp";
7415       case QueryType::eTransformFeedbackStreamEXT : return "TransformFeedbackStreamEXT";
7416       case QueryType::ePerformanceQueryKHR : return "PerformanceQueryKHR";
7417       case QueryType::eAccelerationStructureCompactedSizeKHR : return "AccelerationStructureCompactedSizeKHR";
7418       case QueryType::eAccelerationStructureSerializationSizeKHR : return "AccelerationStructureSerializationSizeKHR";
7419       case QueryType::ePerformanceQueryINTEL : return "PerformanceQueryINTEL";
7420       default: return "invalid";
7421     }
7422   }
7423 
7424   enum class QueueFlagBits : VkQueueFlags
7425   {
7426     eGraphics = VK_QUEUE_GRAPHICS_BIT,
7427     eCompute = VK_QUEUE_COMPUTE_BIT,
7428     eTransfer = VK_QUEUE_TRANSFER_BIT,
7429     eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT,
7430     eProtected = VK_QUEUE_PROTECTED_BIT
7431   };
7432 
to_string(QueueFlagBits value)7433   VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value )
7434   {
7435     switch ( value )
7436     {
7437       case QueueFlagBits::eGraphics : return "Graphics";
7438       case QueueFlagBits::eCompute : return "Compute";
7439       case QueueFlagBits::eTransfer : return "Transfer";
7440       case QueueFlagBits::eSparseBinding : return "SparseBinding";
7441       case QueueFlagBits::eProtected : return "Protected";
7442       default: return "invalid";
7443     }
7444   }
7445 
7446   enum class QueueGlobalPriorityEXT
7447   {
7448     eLow = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
7449     eMedium = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
7450     eHigh = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
7451     eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
7452   };
7453 
to_string(QueueGlobalPriorityEXT value)7454   VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value )
7455   {
7456     switch ( value )
7457     {
7458       case QueueGlobalPriorityEXT::eLow : return "Low";
7459       case QueueGlobalPriorityEXT::eMedium : return "Medium";
7460       case QueueGlobalPriorityEXT::eHigh : return "High";
7461       case QueueGlobalPriorityEXT::eRealtime : return "Realtime";
7462       default: return "invalid";
7463     }
7464   }
7465 
7466   enum class RasterizationOrderAMD
7467   {
7468     eStrict = VK_RASTERIZATION_ORDER_STRICT_AMD,
7469     eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
7470   };
7471 
to_string(RasterizationOrderAMD value)7472   VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value )
7473   {
7474     switch ( value )
7475     {
7476       case RasterizationOrderAMD::eStrict : return "Strict";
7477       case RasterizationOrderAMD::eRelaxed : return "Relaxed";
7478       default: return "invalid";
7479     }
7480   }
7481 
7482   enum class RayTracingShaderGroupTypeKHR
7483   {
7484     eGeneral = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
7485     eTrianglesHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
7486     eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
7487   };
7488   using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
7489 
to_string(RayTracingShaderGroupTypeKHR value)7490   VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value )
7491   {
7492     switch ( value )
7493     {
7494       case RayTracingShaderGroupTypeKHR::eGeneral : return "General";
7495       case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup : return "TrianglesHitGroup";
7496       case RayTracingShaderGroupTypeKHR::eProceduralHitGroup : return "ProceduralHitGroup";
7497       default: return "invalid";
7498     }
7499   }
7500 
7501   enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags
7502   {
7503     eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
7504   };
7505 
to_string(RenderPassCreateFlagBits value)7506   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits value )
7507   {
7508     switch ( value )
7509     {
7510       case RenderPassCreateFlagBits::eTransformQCOM : return "TransformQCOM";
7511       default: return "invalid";
7512     }
7513   }
7514 
7515   enum class ResolveModeFlagBits : VkResolveModeFlags
7516   {
7517     eNone = VK_RESOLVE_MODE_NONE,
7518     eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
7519     eAverage = VK_RESOLVE_MODE_AVERAGE_BIT,
7520     eMin = VK_RESOLVE_MODE_MIN_BIT,
7521     eMax = VK_RESOLVE_MODE_MAX_BIT
7522   };
7523   using ResolveModeFlagBitsKHR = ResolveModeFlagBits;
7524 
to_string(ResolveModeFlagBits value)7525   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBits value )
7526   {
7527     switch ( value )
7528     {
7529       case ResolveModeFlagBits::eNone : return "None";
7530       case ResolveModeFlagBits::eSampleZero : return "SampleZero";
7531       case ResolveModeFlagBits::eAverage : return "Average";
7532       case ResolveModeFlagBits::eMin : return "Min";
7533       case ResolveModeFlagBits::eMax : return "Max";
7534       default: return "invalid";
7535     }
7536   }
7537 
7538   enum class Result
7539   {
7540     eSuccess = VK_SUCCESS,
7541     eNotReady = VK_NOT_READY,
7542     eTimeout = VK_TIMEOUT,
7543     eEventSet = VK_EVENT_SET,
7544     eEventReset = VK_EVENT_RESET,
7545     eIncomplete = VK_INCOMPLETE,
7546     eErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY,
7547     eErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY,
7548     eErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED,
7549     eErrorDeviceLost = VK_ERROR_DEVICE_LOST,
7550     eErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED,
7551     eErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT,
7552     eErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT,
7553     eErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT,
7554     eErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER,
7555     eErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS,
7556     eErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED,
7557     eErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL,
7558     eErrorUnknown = VK_ERROR_UNKNOWN,
7559     eErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY,
7560     eErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE,
7561     eErrorFragmentation = VK_ERROR_FRAGMENTATION,
7562     eErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
7563     eErrorSurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR,
7564     eErrorNativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
7565     eSuboptimalKHR = VK_SUBOPTIMAL_KHR,
7566     eErrorOutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR,
7567     eErrorIncompatibleDisplayKHR = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
7568     eErrorValidationFailedEXT = VK_ERROR_VALIDATION_FAILED_EXT,
7569     eErrorInvalidShaderNV = VK_ERROR_INVALID_SHADER_NV,
7570     eErrorIncompatibleVersionKHR = VK_ERROR_INCOMPATIBLE_VERSION_KHR,
7571     eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,
7572     eErrorNotPermittedEXT = VK_ERROR_NOT_PERMITTED_EXT,
7573     eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
7574     eThreadIdleKHR = VK_THREAD_IDLE_KHR,
7575     eThreadDoneKHR = VK_THREAD_DONE_KHR,
7576     eOperationDeferredKHR = VK_OPERATION_DEFERRED_KHR,
7577     eOperationNotDeferredKHR = VK_OPERATION_NOT_DEFERRED_KHR,
7578     ePipelineCompileRequiredEXT = VK_PIPELINE_COMPILE_REQUIRED_EXT,
7579     eErrorFragmentationEXT = VK_ERROR_FRAGMENTATION_EXT,
7580     eErrorInvalidDeviceAddressEXT = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
7581     eErrorInvalidExternalHandleKHR = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
7582     eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR,
7583     eErrorOutOfPoolMemoryKHR = VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
7584     eErrorPipelineCompileRequiredEXT = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT
7585   };
7586 
to_string(Result value)7587   VULKAN_HPP_INLINE std::string to_string( Result value )
7588   {
7589     switch ( value )
7590     {
7591       case Result::eSuccess : return "Success";
7592       case Result::eNotReady : return "NotReady";
7593       case Result::eTimeout : return "Timeout";
7594       case Result::eEventSet : return "EventSet";
7595       case Result::eEventReset : return "EventReset";
7596       case Result::eIncomplete : return "Incomplete";
7597       case Result::eErrorOutOfHostMemory : return "ErrorOutOfHostMemory";
7598       case Result::eErrorOutOfDeviceMemory : return "ErrorOutOfDeviceMemory";
7599       case Result::eErrorInitializationFailed : return "ErrorInitializationFailed";
7600       case Result::eErrorDeviceLost : return "ErrorDeviceLost";
7601       case Result::eErrorMemoryMapFailed : return "ErrorMemoryMapFailed";
7602       case Result::eErrorLayerNotPresent : return "ErrorLayerNotPresent";
7603       case Result::eErrorExtensionNotPresent : return "ErrorExtensionNotPresent";
7604       case Result::eErrorFeatureNotPresent : return "ErrorFeatureNotPresent";
7605       case Result::eErrorIncompatibleDriver : return "ErrorIncompatibleDriver";
7606       case Result::eErrorTooManyObjects : return "ErrorTooManyObjects";
7607       case Result::eErrorFormatNotSupported : return "ErrorFormatNotSupported";
7608       case Result::eErrorFragmentedPool : return "ErrorFragmentedPool";
7609       case Result::eErrorUnknown : return "ErrorUnknown";
7610       case Result::eErrorOutOfPoolMemory : return "ErrorOutOfPoolMemory";
7611       case Result::eErrorInvalidExternalHandle : return "ErrorInvalidExternalHandle";
7612       case Result::eErrorFragmentation : return "ErrorFragmentation";
7613       case Result::eErrorInvalidOpaqueCaptureAddress : return "ErrorInvalidOpaqueCaptureAddress";
7614       case Result::eErrorSurfaceLostKHR : return "ErrorSurfaceLostKHR";
7615       case Result::eErrorNativeWindowInUseKHR : return "ErrorNativeWindowInUseKHR";
7616       case Result::eSuboptimalKHR : return "SuboptimalKHR";
7617       case Result::eErrorOutOfDateKHR : return "ErrorOutOfDateKHR";
7618       case Result::eErrorIncompatibleDisplayKHR : return "ErrorIncompatibleDisplayKHR";
7619       case Result::eErrorValidationFailedEXT : return "ErrorValidationFailedEXT";
7620       case Result::eErrorInvalidShaderNV : return "ErrorInvalidShaderNV";
7621       case Result::eErrorIncompatibleVersionKHR : return "ErrorIncompatibleVersionKHR";
7622       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT : return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT";
7623       case Result::eErrorNotPermittedEXT : return "ErrorNotPermittedEXT";
7624       case Result::eErrorFullScreenExclusiveModeLostEXT : return "ErrorFullScreenExclusiveModeLostEXT";
7625       case Result::eThreadIdleKHR : return "ThreadIdleKHR";
7626       case Result::eThreadDoneKHR : return "ThreadDoneKHR";
7627       case Result::eOperationDeferredKHR : return "OperationDeferredKHR";
7628       case Result::eOperationNotDeferredKHR : return "OperationNotDeferredKHR";
7629       case Result::ePipelineCompileRequiredEXT : return "PipelineCompileRequiredEXT";
7630       default: return "invalid";
7631     }
7632   }
7633 
7634   enum class SampleCountFlagBits : VkSampleCountFlags
7635   {
7636     e1 = VK_SAMPLE_COUNT_1_BIT,
7637     e2 = VK_SAMPLE_COUNT_2_BIT,
7638     e4 = VK_SAMPLE_COUNT_4_BIT,
7639     e8 = VK_SAMPLE_COUNT_8_BIT,
7640     e16 = VK_SAMPLE_COUNT_16_BIT,
7641     e32 = VK_SAMPLE_COUNT_32_BIT,
7642     e64 = VK_SAMPLE_COUNT_64_BIT
7643   };
7644 
to_string(SampleCountFlagBits value)7645   VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value )
7646   {
7647     switch ( value )
7648     {
7649       case SampleCountFlagBits::e1 : return "1";
7650       case SampleCountFlagBits::e2 : return "2";
7651       case SampleCountFlagBits::e4 : return "4";
7652       case SampleCountFlagBits::e8 : return "8";
7653       case SampleCountFlagBits::e16 : return "16";
7654       case SampleCountFlagBits::e32 : return "32";
7655       case SampleCountFlagBits::e64 : return "64";
7656       default: return "invalid";
7657     }
7658   }
7659 
7660   enum class SamplerAddressMode
7661   {
7662     eRepeat = VK_SAMPLER_ADDRESS_MODE_REPEAT,
7663     eMirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
7664     eClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
7665     eClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
7666     eMirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
7667     eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR
7668   };
7669 
to_string(SamplerAddressMode value)7670   VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value )
7671   {
7672     switch ( value )
7673     {
7674       case SamplerAddressMode::eRepeat : return "Repeat";
7675       case SamplerAddressMode::eMirroredRepeat : return "MirroredRepeat";
7676       case SamplerAddressMode::eClampToEdge : return "ClampToEdge";
7677       case SamplerAddressMode::eClampToBorder : return "ClampToBorder";
7678       case SamplerAddressMode::eMirrorClampToEdge : return "MirrorClampToEdge";
7679       default: return "invalid";
7680     }
7681   }
7682 
7683   enum class SamplerCreateFlagBits : VkSamplerCreateFlags
7684   {
7685     eSubsampledEXT = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
7686     eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
7687   };
7688 
to_string(SamplerCreateFlagBits value)7689   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value )
7690   {
7691     switch ( value )
7692     {
7693       case SamplerCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
7694       case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT : return "SubsampledCoarseReconstructionEXT";
7695       default: return "invalid";
7696     }
7697   }
7698 
7699   enum class SamplerMipmapMode
7700   {
7701     eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
7702     eLinear = VK_SAMPLER_MIPMAP_MODE_LINEAR
7703   };
7704 
to_string(SamplerMipmapMode value)7705   VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value )
7706   {
7707     switch ( value )
7708     {
7709       case SamplerMipmapMode::eNearest : return "Nearest";
7710       case SamplerMipmapMode::eLinear : return "Linear";
7711       default: return "invalid";
7712     }
7713   }
7714 
7715   enum class SamplerReductionMode
7716   {
7717     eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
7718     eMin = VK_SAMPLER_REDUCTION_MODE_MIN,
7719     eMax = VK_SAMPLER_REDUCTION_MODE_MAX
7720   };
7721   using SamplerReductionModeEXT = SamplerReductionMode;
7722 
to_string(SamplerReductionMode value)7723   VULKAN_HPP_INLINE std::string to_string( SamplerReductionMode value )
7724   {
7725     switch ( value )
7726     {
7727       case SamplerReductionMode::eWeightedAverage : return "WeightedAverage";
7728       case SamplerReductionMode::eMin : return "Min";
7729       case SamplerReductionMode::eMax : return "Max";
7730       default: return "invalid";
7731     }
7732   }
7733 
7734   enum class SamplerYcbcrModelConversion
7735   {
7736     eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
7737     eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
7738     eYcbcr709 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
7739     eYcbcr601 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
7740     eYcbcr2020 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
7741   };
7742   using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
7743 
to_string(SamplerYcbcrModelConversion value)7744   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value )
7745   {
7746     switch ( value )
7747     {
7748       case SamplerYcbcrModelConversion::eRgbIdentity : return "RgbIdentity";
7749       case SamplerYcbcrModelConversion::eYcbcrIdentity : return "YcbcrIdentity";
7750       case SamplerYcbcrModelConversion::eYcbcr709 : return "Ycbcr709";
7751       case SamplerYcbcrModelConversion::eYcbcr601 : return "Ycbcr601";
7752       case SamplerYcbcrModelConversion::eYcbcr2020 : return "Ycbcr2020";
7753       default: return "invalid";
7754     }
7755   }
7756 
7757   enum class SamplerYcbcrRange
7758   {
7759     eItuFull = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
7760     eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
7761   };
7762   using SamplerYcbcrRangeKHR = SamplerYcbcrRange;
7763 
to_string(SamplerYcbcrRange value)7764   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value )
7765   {
7766     switch ( value )
7767     {
7768       case SamplerYcbcrRange::eItuFull : return "ItuFull";
7769       case SamplerYcbcrRange::eItuNarrow : return "ItuNarrow";
7770       default: return "invalid";
7771     }
7772   }
7773 
7774   enum class ScopeNV
7775   {
7776     eDevice = VK_SCOPE_DEVICE_NV,
7777     eWorkgroup = VK_SCOPE_WORKGROUP_NV,
7778     eSubgroup = VK_SCOPE_SUBGROUP_NV,
7779     eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
7780   };
7781 
to_string(ScopeNV value)7782   VULKAN_HPP_INLINE std::string to_string( ScopeNV value )
7783   {
7784     switch ( value )
7785     {
7786       case ScopeNV::eDevice : return "Device";
7787       case ScopeNV::eWorkgroup : return "Workgroup";
7788       case ScopeNV::eSubgroup : return "Subgroup";
7789       case ScopeNV::eQueueFamily : return "QueueFamily";
7790       default: return "invalid";
7791     }
7792   }
7793 
7794   enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
7795   {};
7796 
to_string(SemaphoreCreateFlagBits)7797   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
7798   {
7799     return "(void)";
7800   }
7801 
7802   enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags
7803   {
7804     eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
7805   };
7806   using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
7807 
to_string(SemaphoreImportFlagBits value)7808   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value )
7809   {
7810     switch ( value )
7811     {
7812       case SemaphoreImportFlagBits::eTemporary : return "Temporary";
7813       default: return "invalid";
7814     }
7815   }
7816 
7817   enum class SemaphoreType
7818   {
7819     eBinary = VK_SEMAPHORE_TYPE_BINARY,
7820     eTimeline = VK_SEMAPHORE_TYPE_TIMELINE
7821   };
7822   using SemaphoreTypeKHR = SemaphoreType;
7823 
to_string(SemaphoreType value)7824   VULKAN_HPP_INLINE std::string to_string( SemaphoreType value )
7825   {
7826     switch ( value )
7827     {
7828       case SemaphoreType::eBinary : return "Binary";
7829       case SemaphoreType::eTimeline : return "Timeline";
7830       default: return "invalid";
7831     }
7832   }
7833 
7834   enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags
7835   {
7836     eAny = VK_SEMAPHORE_WAIT_ANY_BIT
7837   };
7838   using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
7839 
to_string(SemaphoreWaitFlagBits value)7840   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlagBits value )
7841   {
7842     switch ( value )
7843     {
7844       case SemaphoreWaitFlagBits::eAny : return "Any";
7845       default: return "invalid";
7846     }
7847   }
7848 
7849   enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD
7850   {};
7851 
to_string(ShaderCorePropertiesFlagBitsAMD)7852   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD )
7853   {
7854     return "(void)";
7855   }
7856 
7857   enum class ShaderFloatControlsIndependence
7858   {
7859     e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
7860     eAll = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
7861     eNone = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
7862   };
7863   using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
7864 
to_string(ShaderFloatControlsIndependence value)7865   VULKAN_HPP_INLINE std::string to_string( ShaderFloatControlsIndependence value )
7866   {
7867     switch ( value )
7868     {
7869       case ShaderFloatControlsIndependence::e32BitOnly : return "32BitOnly";
7870       case ShaderFloatControlsIndependence::eAll : return "All";
7871       case ShaderFloatControlsIndependence::eNone : return "None";
7872       default: return "invalid";
7873     }
7874   }
7875 
7876   enum class ShaderInfoTypeAMD
7877   {
7878     eStatistics = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
7879     eBinary = VK_SHADER_INFO_TYPE_BINARY_AMD,
7880     eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
7881   };
7882 
to_string(ShaderInfoTypeAMD value)7883   VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value )
7884   {
7885     switch ( value )
7886     {
7887       case ShaderInfoTypeAMD::eStatistics : return "Statistics";
7888       case ShaderInfoTypeAMD::eBinary : return "Binary";
7889       case ShaderInfoTypeAMD::eDisassembly : return "Disassembly";
7890       default: return "invalid";
7891     }
7892   }
7893 
7894   enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags
7895   {};
7896 
to_string(ShaderModuleCreateFlagBits)7897   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits )
7898   {
7899     return "(void)";
7900   }
7901 
7902   enum class ShaderStageFlagBits : VkShaderStageFlags
7903   {
7904     eVertex = VK_SHADER_STAGE_VERTEX_BIT,
7905     eTessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
7906     eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
7907     eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT,
7908     eFragment = VK_SHADER_STAGE_FRAGMENT_BIT,
7909     eCompute = VK_SHADER_STAGE_COMPUTE_BIT,
7910     eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS,
7911     eAll = VK_SHADER_STAGE_ALL,
7912     eRaygenKHR = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
7913     eAnyHitKHR = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
7914     eClosestHitKHR = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
7915     eMissKHR = VK_SHADER_STAGE_MISS_BIT_KHR,
7916     eIntersectionKHR = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
7917     eCallableKHR = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
7918     eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV,
7919     eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV,
7920     eAnyHitNV = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
7921     eCallableNV = VK_SHADER_STAGE_CALLABLE_BIT_NV,
7922     eClosestHitNV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
7923     eIntersectionNV = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
7924     eMissNV = VK_SHADER_STAGE_MISS_BIT_NV,
7925     eRaygenNV = VK_SHADER_STAGE_RAYGEN_BIT_NV
7926   };
7927 
to_string(ShaderStageFlagBits value)7928   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value )
7929   {
7930     switch ( value )
7931     {
7932       case ShaderStageFlagBits::eVertex : return "Vertex";
7933       case ShaderStageFlagBits::eTessellationControl : return "TessellationControl";
7934       case ShaderStageFlagBits::eTessellationEvaluation : return "TessellationEvaluation";
7935       case ShaderStageFlagBits::eGeometry : return "Geometry";
7936       case ShaderStageFlagBits::eFragment : return "Fragment";
7937       case ShaderStageFlagBits::eCompute : return "Compute";
7938       case ShaderStageFlagBits::eAllGraphics : return "AllGraphics";
7939       case ShaderStageFlagBits::eAll : return "All";
7940       case ShaderStageFlagBits::eRaygenKHR : return "RaygenKHR";
7941       case ShaderStageFlagBits::eAnyHitKHR : return "AnyHitKHR";
7942       case ShaderStageFlagBits::eClosestHitKHR : return "ClosestHitKHR";
7943       case ShaderStageFlagBits::eMissKHR : return "MissKHR";
7944       case ShaderStageFlagBits::eIntersectionKHR : return "IntersectionKHR";
7945       case ShaderStageFlagBits::eCallableKHR : return "CallableKHR";
7946       case ShaderStageFlagBits::eTaskNV : return "TaskNV";
7947       case ShaderStageFlagBits::eMeshNV : return "MeshNV";
7948       default: return "invalid";
7949     }
7950   }
7951 
7952   enum class ShadingRatePaletteEntryNV
7953   {
7954     eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
7955     e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
7956     e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
7957     e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
7958     e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
7959     e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
7960     e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
7961     e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
7962     e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
7963     e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
7964     e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
7965     e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
7966   };
7967 
to_string(ShadingRatePaletteEntryNV value)7968   VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value )
7969   {
7970     switch ( value )
7971     {
7972       case ShadingRatePaletteEntryNV::eNoInvocations : return "NoInvocations";
7973       case ShadingRatePaletteEntryNV::e16InvocationsPerPixel : return "16InvocationsPerPixel";
7974       case ShadingRatePaletteEntryNV::e8InvocationsPerPixel : return "8InvocationsPerPixel";
7975       case ShadingRatePaletteEntryNV::e4InvocationsPerPixel : return "4InvocationsPerPixel";
7976       case ShadingRatePaletteEntryNV::e2InvocationsPerPixel : return "2InvocationsPerPixel";
7977       case ShadingRatePaletteEntryNV::e1InvocationPerPixel : return "1InvocationPerPixel";
7978       case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels";
7979       case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels";
7980       case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels";
7981       case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels";
7982       case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels";
7983       case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels";
7984       default: return "invalid";
7985     }
7986   }
7987 
7988   enum class SharingMode
7989   {
7990     eExclusive = VK_SHARING_MODE_EXCLUSIVE,
7991     eConcurrent = VK_SHARING_MODE_CONCURRENT
7992   };
7993 
to_string(SharingMode value)7994   VULKAN_HPP_INLINE std::string to_string( SharingMode value )
7995   {
7996     switch ( value )
7997     {
7998       case SharingMode::eExclusive : return "Exclusive";
7999       case SharingMode::eConcurrent : return "Concurrent";
8000       default: return "invalid";
8001     }
8002   }
8003 
8004   enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags
8005   {
8006     eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
8007     eAlignedMipSize = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
8008     eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
8009   };
8010 
to_string(SparseImageFormatFlagBits value)8011   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value )
8012   {
8013     switch ( value )
8014     {
8015       case SparseImageFormatFlagBits::eSingleMiptail : return "SingleMiptail";
8016       case SparseImageFormatFlagBits::eAlignedMipSize : return "AlignedMipSize";
8017       case SparseImageFormatFlagBits::eNonstandardBlockSize : return "NonstandardBlockSize";
8018       default: return "invalid";
8019     }
8020   }
8021 
8022   enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags
8023   {
8024     eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
8025   };
8026 
to_string(SparseMemoryBindFlagBits value)8027   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value )
8028   {
8029     switch ( value )
8030     {
8031       case SparseMemoryBindFlagBits::eMetadata : return "Metadata";
8032       default: return "invalid";
8033     }
8034   }
8035 
8036   enum class StencilFaceFlagBits : VkStencilFaceFlags
8037   {
8038     eFront = VK_STENCIL_FACE_FRONT_BIT,
8039     eBack = VK_STENCIL_FACE_BACK_BIT,
8040     eFrontAndBack = VK_STENCIL_FACE_FRONT_AND_BACK,
8041     eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
8042   };
8043 
to_string(StencilFaceFlagBits value)8044   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value )
8045   {
8046     switch ( value )
8047     {
8048       case StencilFaceFlagBits::eFront : return "Front";
8049       case StencilFaceFlagBits::eBack : return "Back";
8050       case StencilFaceFlagBits::eFrontAndBack : return "FrontAndBack";
8051       default: return "invalid";
8052     }
8053   }
8054 
8055   enum class StencilOp
8056   {
8057     eKeep = VK_STENCIL_OP_KEEP,
8058     eZero = VK_STENCIL_OP_ZERO,
8059     eReplace = VK_STENCIL_OP_REPLACE,
8060     eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP,
8061     eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP,
8062     eInvert = VK_STENCIL_OP_INVERT,
8063     eIncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP,
8064     eDecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP
8065   };
8066 
to_string(StencilOp value)8067   VULKAN_HPP_INLINE std::string to_string( StencilOp value )
8068   {
8069     switch ( value )
8070     {
8071       case StencilOp::eKeep : return "Keep";
8072       case StencilOp::eZero : return "Zero";
8073       case StencilOp::eReplace : return "Replace";
8074       case StencilOp::eIncrementAndClamp : return "IncrementAndClamp";
8075       case StencilOp::eDecrementAndClamp : return "DecrementAndClamp";
8076       case StencilOp::eInvert : return "Invert";
8077       case StencilOp::eIncrementAndWrap : return "IncrementAndWrap";
8078       case StencilOp::eDecrementAndWrap : return "DecrementAndWrap";
8079       default: return "invalid";
8080     }
8081   }
8082 
8083   enum class StructureType
8084   {
8085     eApplicationInfo = VK_STRUCTURE_TYPE_APPLICATION_INFO,
8086     eInstanceCreateInfo = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
8087     eDeviceQueueCreateInfo = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
8088     eDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
8089     eSubmitInfo = VK_STRUCTURE_TYPE_SUBMIT_INFO,
8090     eMemoryAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
8091     eMappedMemoryRange = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
8092     eBindSparseInfo = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
8093     eFenceCreateInfo = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
8094     eSemaphoreCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
8095     eEventCreateInfo = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
8096     eQueryPoolCreateInfo = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
8097     eBufferCreateInfo = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
8098     eBufferViewCreateInfo = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
8099     eImageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
8100     eImageViewCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
8101     eShaderModuleCreateInfo = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
8102     ePipelineCacheCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
8103     ePipelineShaderStageCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
8104     ePipelineVertexInputStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
8105     ePipelineInputAssemblyStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
8106     ePipelineTessellationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
8107     ePipelineViewportStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
8108     ePipelineRasterizationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
8109     ePipelineMultisampleStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
8110     ePipelineDepthStencilStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
8111     ePipelineColorBlendStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
8112     ePipelineDynamicStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
8113     eGraphicsPipelineCreateInfo = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
8114     eComputePipelineCreateInfo = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
8115     ePipelineLayoutCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
8116     eSamplerCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
8117     eDescriptorSetLayoutCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
8118     eDescriptorPoolCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
8119     eDescriptorSetAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
8120     eWriteDescriptorSet = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
8121     eCopyDescriptorSet = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
8122     eFramebufferCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
8123     eRenderPassCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
8124     eCommandPoolCreateInfo = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
8125     eCommandBufferAllocateInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
8126     eCommandBufferInheritanceInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
8127     eCommandBufferBeginInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
8128     eRenderPassBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
8129     eBufferMemoryBarrier = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
8130     eImageMemoryBarrier = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
8131     eMemoryBarrier = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
8132     eLoaderInstanceCreateInfo = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
8133     eLoaderDeviceCreateInfo = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
8134     ePhysicalDeviceSubgroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
8135     eBindBufferMemoryInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
8136     eBindImageMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
8137     ePhysicalDevice16BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
8138     eMemoryDedicatedRequirements = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
8139     eMemoryDedicatedAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
8140     eMemoryAllocateFlagsInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
8141     eDeviceGroupRenderPassBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
8142     eDeviceGroupCommandBufferBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
8143     eDeviceGroupSubmitInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
8144     eDeviceGroupBindSparseInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
8145     eBindBufferMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
8146     eBindImageMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
8147     ePhysicalDeviceGroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
8148     eDeviceGroupDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
8149     eBufferMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
8150     eImageMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
8151     eImageSparseMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
8152     eMemoryRequirements2 = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
8153     eSparseImageMemoryRequirements2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
8154     ePhysicalDeviceFeatures2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
8155     ePhysicalDeviceProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
8156     eFormatProperties2 = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
8157     eImageFormatProperties2 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
8158     ePhysicalDeviceImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
8159     eQueueFamilyProperties2 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
8160     ePhysicalDeviceMemoryProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
8161     eSparseImageFormatProperties2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
8162     ePhysicalDeviceSparseImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
8163     ePhysicalDevicePointClippingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
8164     eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
8165     eImageViewUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
8166     ePipelineTessellationDomainOriginStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
8167     eRenderPassMultiviewCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
8168     ePhysicalDeviceMultiviewFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
8169     ePhysicalDeviceMultiviewProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
8170     ePhysicalDeviceVariablePointersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
8171     eProtectedSubmitInfo = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
8172     ePhysicalDeviceProtectedMemoryFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
8173     ePhysicalDeviceProtectedMemoryProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
8174     eDeviceQueueInfo2 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
8175     eSamplerYcbcrConversionCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
8176     eSamplerYcbcrConversionInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
8177     eBindImagePlaneMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
8178     eImagePlaneMemoryRequirementsInfo = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
8179     ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
8180     eSamplerYcbcrConversionImageFormatProperties = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
8181     eDescriptorUpdateTemplateCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
8182     ePhysicalDeviceExternalImageFormatInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
8183     eExternalImageFormatProperties = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
8184     ePhysicalDeviceExternalBufferInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
8185     eExternalBufferProperties = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
8186     ePhysicalDeviceIdProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
8187     eExternalMemoryBufferCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
8188     eExternalMemoryImageCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
8189     eExportMemoryAllocateInfo = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
8190     ePhysicalDeviceExternalFenceInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
8191     eExternalFenceProperties = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
8192     eExportFenceCreateInfo = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
8193     eExportSemaphoreCreateInfo = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
8194     ePhysicalDeviceExternalSemaphoreInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
8195     eExternalSemaphoreProperties = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
8196     ePhysicalDeviceMaintenance3Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
8197     eDescriptorSetLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
8198     ePhysicalDeviceShaderDrawParametersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
8199     ePhysicalDeviceVulkan11Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
8200     ePhysicalDeviceVulkan11Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
8201     ePhysicalDeviceVulkan12Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
8202     ePhysicalDeviceVulkan12Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
8203     eImageFormatListCreateInfo = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
8204     eAttachmentDescription2 = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
8205     eAttachmentReference2 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
8206     eSubpassDescription2 = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
8207     eSubpassDependency2 = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
8208     eRenderPassCreateInfo2 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
8209     eSubpassBeginInfo = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
8210     eSubpassEndInfo = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
8211     ePhysicalDevice8BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
8212     ePhysicalDeviceDriverProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
8213     ePhysicalDeviceShaderAtomicInt64Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
8214     ePhysicalDeviceShaderFloat16Int8Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
8215     ePhysicalDeviceFloatControlsProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
8216     eDescriptorSetLayoutBindingFlagsCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
8217     ePhysicalDeviceDescriptorIndexingFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
8218     ePhysicalDeviceDescriptorIndexingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
8219     eDescriptorSetVariableDescriptorCountAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
8220     eDescriptorSetVariableDescriptorCountLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
8221     ePhysicalDeviceDepthStencilResolveProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
8222     eSubpassDescriptionDepthStencilResolve = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
8223     ePhysicalDeviceScalarBlockLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
8224     eImageStencilUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
8225     ePhysicalDeviceSamplerFilterMinmaxProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
8226     eSamplerReductionModeCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
8227     ePhysicalDeviceVulkanMemoryModelFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
8228     ePhysicalDeviceImagelessFramebufferFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
8229     eFramebufferAttachmentsCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
8230     eFramebufferAttachmentImageInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
8231     eRenderPassAttachmentBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
8232     ePhysicalDeviceUniformBufferStandardLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
8233     ePhysicalDeviceShaderSubgroupExtendedTypesFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
8234     ePhysicalDeviceSeparateDepthStencilLayoutsFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
8235     eAttachmentReferenceStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
8236     eAttachmentDescriptionStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
8237     ePhysicalDeviceHostQueryResetFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
8238     ePhysicalDeviceTimelineSemaphoreFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
8239     ePhysicalDeviceTimelineSemaphoreProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
8240     eSemaphoreTypeCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
8241     eTimelineSemaphoreSubmitInfo = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
8242     eSemaphoreWaitInfo = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
8243     eSemaphoreSignalInfo = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
8244     ePhysicalDeviceBufferDeviceAddressFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
8245     eBufferDeviceAddressInfo = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
8246     eBufferOpaqueCaptureAddressCreateInfo = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
8247     eMemoryOpaqueCaptureAddressAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
8248     eDeviceMemoryOpaqueCaptureAddressInfo = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
8249     eSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
8250     ePresentInfoKHR = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
8251     eDeviceGroupPresentCapabilitiesKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
8252     eImageSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
8253     eBindImageMemorySwapchainInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
8254     eAcquireNextImageInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
8255     eDeviceGroupPresentInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
8256     eDeviceGroupSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
8257     eDisplayModeCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
8258     eDisplaySurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
8259     eDisplayPresentInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
8260     eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
8261     eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
8262     eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR,
8263     eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,
8264     eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
8265     eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
8266     ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
8267     eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
8268     eDebugMarkerObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
8269     eDebugMarkerMarkerInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
8270     eDedicatedAllocationImageCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
8271     eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
8272     eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
8273     ePhysicalDeviceTransformFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
8274     ePhysicalDeviceTransformFeedbackPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
8275     ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
8276     eImageViewHandleInfoNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
8277     eImageViewAddressPropertiesNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
8278     eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
8279     eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
8280     ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
8281     eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
8282     eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
8283     eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
8284     eExportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
8285     eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
8286     eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
8287     eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
8288     ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
8289     eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
8290     ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
8291     eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
8292     eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
8293     eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
8294     eMemoryGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
8295     eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
8296     eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
8297     eMemoryGetFdInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
8298     eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
8299     eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
8300     eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
8301     eD3D12FenceSubmitInfoKHR = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
8302     eSemaphoreGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
8303     eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
8304     eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
8305     ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
8306     eCommandBufferInheritanceConditionalRenderingInfoEXT = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
8307     ePhysicalDeviceConditionalRenderingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
8308     eConditionalRenderingBeginInfoEXT = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
8309     ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
8310     ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
8311     eSurfaceCapabilities2EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
8312     eDisplayPowerInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
8313     eDeviceEventInfoEXT = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
8314     eDisplayEventInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
8315     eSwapchainCounterCreateInfoEXT = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
8316     ePresentTimesInfoGOOGLE = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
8317     ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
8318     ePipelineViewportSwizzleStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
8319     ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
8320     ePipelineDiscardRectangleStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
8321     ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
8322     ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
8323     ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
8324     ePipelineRasterizationDepthClipStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
8325     eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
8326     eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
8327     eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
8328     eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
8329     eFenceGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
8330     eImportFenceFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
8331     eFenceGetFdInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
8332     ePhysicalDevicePerformanceQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
8333     ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
8334     eQueryPoolPerformanceCreateInfoKHR = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
8335     ePerformanceQuerySubmitInfoKHR = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
8336     eAcquireProfilingLockInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
8337     ePerformanceCounterKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
8338     ePerformanceCounterDescriptionKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
8339     ePhysicalDeviceSurfaceInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
8340     eSurfaceCapabilities2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
8341     eSurfaceFormat2KHR = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
8342     eDisplayProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
8343     eDisplayPlaneProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
8344     eDisplayModeProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
8345     eDisplayPlaneInfo2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
8346     eDisplayPlaneCapabilities2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
8347     eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
8348     eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
8349     eDebugUtilsObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
8350     eDebugUtilsObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
8351     eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
8352     eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
8353     eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
8354     eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
8355     eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
8356     eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
8357     eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
8358     eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
8359     eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
8360     ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
8361     ePhysicalDeviceInlineUniformBlockPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
8362     eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
8363     eDescriptorPoolInlineUniformBlockCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
8364     eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
8365     eRenderPassSampleLocationsBeginInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
8366     ePipelineSampleLocationsStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
8367     ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
8368     eMultisamplePropertiesEXT = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
8369     ePhysicalDeviceBlendOperationAdvancedFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
8370     ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
8371     ePipelineColorBlendAdvancedStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
8372     ePipelineCoverageToColorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
8373     eBindAccelerationStructureMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
8374     eWriteDescriptorSetAccelerationStructureKHR = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
8375     eAccelerationStructureBuildGeometryInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
8376     eAccelerationStructureCreateGeometryTypeInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR,
8377     eAccelerationStructureDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
8378     eAccelerationStructureGeometryAabbsDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
8379     eAccelerationStructureGeometryInstancesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
8380     eAccelerationStructureGeometryTrianglesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
8381     eAccelerationStructureGeometryKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
8382     eAccelerationStructureMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR,
8383     eAccelerationStructureVersionKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR,
8384     eCopyAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
8385     eCopyAccelerationStructureToMemoryInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
8386     eCopyMemoryToAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
8387     ePhysicalDeviceRayTracingFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR,
8388     ePhysicalDeviceRayTracingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR,
8389     eRayTracingPipelineCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
8390     eRayTracingShaderGroupCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
8391     eAccelerationStructureCreateInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
8392     eRayTracingPipelineInterfaceCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
8393     ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
8394     ePhysicalDeviceShaderSmBuiltinsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
8395     ePhysicalDeviceShaderSmBuiltinsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
8396     eDrmFormatModifierPropertiesListEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
8397     ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
8398     eImageDrmFormatModifierListCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
8399     eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
8400     eImageDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
8401     eValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
8402     eShaderModuleValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
8403     ePhysicalDevicePortabilitySubsetFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,
8404     ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,
8405     ePipelineViewportShadingRateImageStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
8406     ePhysicalDeviceShadingRateImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
8407     ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
8408     ePipelineViewportCoarseSampleOrderStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
8409     eRayTracingPipelineCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
8410     eAccelerationStructureCreateInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
8411     eGeometryNV = VK_STRUCTURE_TYPE_GEOMETRY_NV,
8412     eGeometryTrianglesNV = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
8413     eGeometryAabbNV = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
8414     eAccelerationStructureMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
8415     ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
8416     eRayTracingShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
8417     eAccelerationStructureInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
8418     ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
8419     ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
8420     ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
8421     eFilterCubicImageViewImageFormatPropertiesEXT = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
8422     eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
8423     eImportMemoryHostPointerInfoEXT = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
8424     eMemoryHostPointerPropertiesEXT = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
8425     ePhysicalDeviceExternalMemoryHostPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
8426     ePhysicalDeviceShaderClockFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
8427     ePipelineCompilerControlCreateInfoAMD = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
8428     eCalibratedTimestampInfoEXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
8429     ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
8430     eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
8431     ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
8432     ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
8433     ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
8434     ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
8435     ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
8436     ePhysicalDeviceComputeShaderDerivativesFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
8437     ePhysicalDeviceMeshShaderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
8438     ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
8439     ePhysicalDeviceFragmentShaderBarycentricFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
8440     ePhysicalDeviceShaderImageFootprintFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
8441     ePipelineViewportExclusiveScissorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
8442     ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
8443     eCheckpointDataNV = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
8444     eQueueFamilyCheckpointPropertiesNV = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
8445     ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
8446     eQueryPoolPerformanceQueryCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
8447     eInitializePerformanceApiInfoINTEL = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
8448     ePerformanceMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
8449     ePerformanceStreamMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
8450     ePerformanceOverrideInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
8451     ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
8452     ePhysicalDevicePciBusInfoPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
8453     eDisplayNativeHdrSurfaceCapabilitiesAMD = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
8454     eSwapchainDisplayNativeHdrCreateInfoAMD = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
8455     eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
8456     ePhysicalDeviceShaderTerminateInvocationFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,
8457     eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
8458     ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
8459     ePhysicalDeviceFragmentDensityMapPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
8460     eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
8461     ePhysicalDeviceSubgroupSizeControlPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
8462     ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
8463     ePhysicalDeviceSubgroupSizeControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
8464     eFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
8465     ePipelineFragmentShadingRateStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
8466     ePhysicalDeviceFragmentShadingRatePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,
8467     ePhysicalDeviceFragmentShadingRateFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,
8468     ePhysicalDeviceFragmentShadingRateKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,
8469     ePhysicalDeviceShaderCoreProperties2AMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
8470     ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
8471     ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,
8472     ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
8473     ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
8474     eMemoryPriorityAllocateInfoEXT = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
8475     eSurfaceProtectedCapabilitiesKHR = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
8476     ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
8477     ePhysicalDeviceBufferDeviceAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
8478     eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
8479     ePhysicalDeviceToolPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
8480     eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
8481     ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
8482     eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
8483     ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
8484     ePhysicalDeviceCoverageReductionModeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
8485     ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
8486     eFramebufferMixedSamplesCombinationNV = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
8487     ePhysicalDeviceFragmentShaderInterlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
8488     ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
8489     eSurfaceFullScreenExclusiveInfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
8490     eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
8491     eSurfaceFullScreenExclusiveWin32InfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
8492     eHeadlessSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
8493     ePhysicalDeviceLineRasterizationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
8494     ePipelineRasterizationLineStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
8495     ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
8496     ePhysicalDeviceShaderAtomicFloatFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
8497     ePhysicalDeviceIndexTypeUint8FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
8498     ePhysicalDeviceExtendedDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
8499     eDeferredOperationInfoKHR = VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,
8500     ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
8501     ePipelineInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
8502     ePipelineExecutablePropertiesKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
8503     ePipelineExecutableInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
8504     ePipelineExecutableStatisticKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
8505     ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
8506     ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
8507     ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
8508     eGraphicsShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
8509     eGraphicsPipelineShaderGroupsCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
8510     eIndirectCommandsLayoutTokenNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
8511     eIndirectCommandsLayoutCreateInfoNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
8512     eGeneratedCommandsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
8513     eGeneratedCommandsMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
8514     ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
8515     ePhysicalDeviceTexelBufferAlignmentFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
8516     ePhysicalDeviceTexelBufferAlignmentPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
8517     eCommandBufferInheritanceRenderPassTransformInfoQCOM = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
8518     eRenderPassTransformBeginInfoQCOM = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
8519     ePhysicalDeviceDeviceMemoryReportFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
8520     eDeviceDeviceMemoryReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
8521     eDeviceMemoryReportCallbackDataEXT = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
8522     ePhysicalDeviceRobustness2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
8523     ePhysicalDeviceRobustness2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
8524     eSamplerCustomBorderColorCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
8525     ePhysicalDeviceCustomBorderColorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
8526     ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
8527     ePipelineLibraryCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
8528     ePhysicalDevicePrivateDataFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
8529     eDevicePrivateDataCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
8530     ePrivateDataSlotCreateInfoEXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
8531     ePhysicalDevicePipelineCreationCacheControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
8532     ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
8533     eDeviceDiagnosticsConfigCreateInfoNV = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
8534     ePhysicalDeviceFragmentDensityMap2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
8535     ePhysicalDeviceFragmentDensityMap2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
8536     ePhysicalDeviceImageRobustnessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
8537     eCopyBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,
8538     eCopyImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,
8539     eCopyBufferToImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,
8540     eCopyImageToBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,
8541     eBlitImageInfo2KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,
8542     eResolveImageInfo2KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,
8543     eBufferCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
8544     eImageCopy2KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
8545     eImageBlit2KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
8546     eBufferImageCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
8547     eImageResolve2KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
8548     ePhysicalDevice4444FormatsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
8549     eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,
8550     eAttachmentDescription2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
8551     eAttachmentDescriptionStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
8552     eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
8553     eAttachmentReferenceStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
8554     eBindAccelerationStructureMemoryInfoNV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
8555     eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
8556     eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
8557     eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
8558     eBindImageMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
8559     eBindImagePlaneMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
8560     eBufferDeviceAddressInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
8561     eBufferDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
8562     eBufferMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
8563     eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
8564     eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
8565     eDescriptorSetLayoutBindingFlagsCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
8566     eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
8567     eDescriptorSetVariableDescriptorCountAllocateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
8568     eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
8569     eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
8570     eDeviceGroupBindSparseInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
8571     eDeviceGroupCommandBufferBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
8572     eDeviceGroupDeviceCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
8573     eDeviceGroupRenderPassBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
8574     eDeviceGroupSubmitInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
8575     eDeviceMemoryOpaqueCaptureAddressInfoKHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
8576     eExportFenceCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
8577     eExportMemoryAllocateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
8578     eExportSemaphoreCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
8579     eExternalBufferPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
8580     eExternalFencePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
8581     eExternalImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
8582     eExternalMemoryBufferCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
8583     eExternalMemoryImageCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
8584     eExternalSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
8585     eFormatProperties2KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
8586     eFramebufferAttachmentsCreateInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
8587     eFramebufferAttachmentImageInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
8588     eImageFormatListCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
8589     eImageFormatProperties2KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
8590     eImageMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
8591     eImagePlaneMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
8592     eImageSparseMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
8593     eImageStencilUsageCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
8594     eImageViewUsageCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
8595     eMemoryAllocateFlagsInfoKHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
8596     eMemoryDedicatedAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
8597     eMemoryDedicatedRequirementsKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
8598     eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
8599     eMemoryRequirements2KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
8600     ePhysicalDevice16BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
8601     ePhysicalDevice8BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
8602     ePhysicalDeviceBufferAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
8603     ePhysicalDeviceBufferDeviceAddressFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
8604     ePhysicalDeviceDepthStencilResolvePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
8605     ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
8606     ePhysicalDeviceDescriptorIndexingPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
8607     ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
8608     ePhysicalDeviceExternalBufferInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
8609     ePhysicalDeviceExternalFenceInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
8610     ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
8611     ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
8612     ePhysicalDeviceFeatures2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
8613     ePhysicalDeviceFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
8614     ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
8615     ePhysicalDeviceGroupPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
8616     ePhysicalDeviceHostQueryResetFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
8617     ePhysicalDeviceIdPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
8618     ePhysicalDeviceImagelessFramebufferFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
8619     ePhysicalDeviceImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
8620     ePhysicalDeviceMaintenance3PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
8621     ePhysicalDeviceMemoryProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
8622     ePhysicalDeviceMultiviewFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
8623     ePhysicalDeviceMultiviewPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
8624     ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
8625     ePhysicalDeviceProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
8626     ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
8627     ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
8628     ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
8629     ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
8630     ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
8631     ePhysicalDeviceShaderDrawParameterFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
8632     ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
8633     ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
8634     ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
8635     ePhysicalDeviceTimelineSemaphoreFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
8636     ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
8637     ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
8638     ePhysicalDeviceVariablePointersFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
8639     ePhysicalDeviceVariablePointerFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
8640     ePhysicalDeviceVariablePointerFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
8641     ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
8642     ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
8643     eQueryPoolCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
8644     eQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
8645     eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
8646     eRenderPassCreateInfo2KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
8647     eRenderPassInputAttachmentAspectCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
8648     eRenderPassMultiviewCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
8649     eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
8650     eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
8651     eSamplerYcbcrConversionImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
8652     eSamplerYcbcrConversionInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
8653     eSemaphoreSignalInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
8654     eSemaphoreTypeCreateInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
8655     eSemaphoreWaitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
8656     eSparseImageFormatProperties2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
8657     eSparseImageMemoryRequirements2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
8658     eSubpassBeginInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
8659     eSubpassDependency2KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
8660     eSubpassDescription2KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
8661     eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
8662     eSubpassEndInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
8663     eTimelineSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR,
8664     eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
8665   };
8666 
to_string(StructureType value)8667   VULKAN_HPP_INLINE std::string to_string( StructureType value )
8668   {
8669     switch ( value )
8670     {
8671       case StructureType::eApplicationInfo : return "ApplicationInfo";
8672       case StructureType::eInstanceCreateInfo : return "InstanceCreateInfo";
8673       case StructureType::eDeviceQueueCreateInfo : return "DeviceQueueCreateInfo";
8674       case StructureType::eDeviceCreateInfo : return "DeviceCreateInfo";
8675       case StructureType::eSubmitInfo : return "SubmitInfo";
8676       case StructureType::eMemoryAllocateInfo : return "MemoryAllocateInfo";
8677       case StructureType::eMappedMemoryRange : return "MappedMemoryRange";
8678       case StructureType::eBindSparseInfo : return "BindSparseInfo";
8679       case StructureType::eFenceCreateInfo : return "FenceCreateInfo";
8680       case StructureType::eSemaphoreCreateInfo : return "SemaphoreCreateInfo";
8681       case StructureType::eEventCreateInfo : return "EventCreateInfo";
8682       case StructureType::eQueryPoolCreateInfo : return "QueryPoolCreateInfo";
8683       case StructureType::eBufferCreateInfo : return "BufferCreateInfo";
8684       case StructureType::eBufferViewCreateInfo : return "BufferViewCreateInfo";
8685       case StructureType::eImageCreateInfo : return "ImageCreateInfo";
8686       case StructureType::eImageViewCreateInfo : return "ImageViewCreateInfo";
8687       case StructureType::eShaderModuleCreateInfo : return "ShaderModuleCreateInfo";
8688       case StructureType::ePipelineCacheCreateInfo : return "PipelineCacheCreateInfo";
8689       case StructureType::ePipelineShaderStageCreateInfo : return "PipelineShaderStageCreateInfo";
8690       case StructureType::ePipelineVertexInputStateCreateInfo : return "PipelineVertexInputStateCreateInfo";
8691       case StructureType::ePipelineInputAssemblyStateCreateInfo : return "PipelineInputAssemblyStateCreateInfo";
8692       case StructureType::ePipelineTessellationStateCreateInfo : return "PipelineTessellationStateCreateInfo";
8693       case StructureType::ePipelineViewportStateCreateInfo : return "PipelineViewportStateCreateInfo";
8694       case StructureType::ePipelineRasterizationStateCreateInfo : return "PipelineRasterizationStateCreateInfo";
8695       case StructureType::ePipelineMultisampleStateCreateInfo : return "PipelineMultisampleStateCreateInfo";
8696       case StructureType::ePipelineDepthStencilStateCreateInfo : return "PipelineDepthStencilStateCreateInfo";
8697       case StructureType::ePipelineColorBlendStateCreateInfo : return "PipelineColorBlendStateCreateInfo";
8698       case StructureType::ePipelineDynamicStateCreateInfo : return "PipelineDynamicStateCreateInfo";
8699       case StructureType::eGraphicsPipelineCreateInfo : return "GraphicsPipelineCreateInfo";
8700       case StructureType::eComputePipelineCreateInfo : return "ComputePipelineCreateInfo";
8701       case StructureType::ePipelineLayoutCreateInfo : return "PipelineLayoutCreateInfo";
8702       case StructureType::eSamplerCreateInfo : return "SamplerCreateInfo";
8703       case StructureType::eDescriptorSetLayoutCreateInfo : return "DescriptorSetLayoutCreateInfo";
8704       case StructureType::eDescriptorPoolCreateInfo : return "DescriptorPoolCreateInfo";
8705       case StructureType::eDescriptorSetAllocateInfo : return "DescriptorSetAllocateInfo";
8706       case StructureType::eWriteDescriptorSet : return "WriteDescriptorSet";
8707       case StructureType::eCopyDescriptorSet : return "CopyDescriptorSet";
8708       case StructureType::eFramebufferCreateInfo : return "FramebufferCreateInfo";
8709       case StructureType::eRenderPassCreateInfo : return "RenderPassCreateInfo";
8710       case StructureType::eCommandPoolCreateInfo : return "CommandPoolCreateInfo";
8711       case StructureType::eCommandBufferAllocateInfo : return "CommandBufferAllocateInfo";
8712       case StructureType::eCommandBufferInheritanceInfo : return "CommandBufferInheritanceInfo";
8713       case StructureType::eCommandBufferBeginInfo : return "CommandBufferBeginInfo";
8714       case StructureType::eRenderPassBeginInfo : return "RenderPassBeginInfo";
8715       case StructureType::eBufferMemoryBarrier : return "BufferMemoryBarrier";
8716       case StructureType::eImageMemoryBarrier : return "ImageMemoryBarrier";
8717       case StructureType::eMemoryBarrier : return "MemoryBarrier";
8718       case StructureType::eLoaderInstanceCreateInfo : return "LoaderInstanceCreateInfo";
8719       case StructureType::eLoaderDeviceCreateInfo : return "LoaderDeviceCreateInfo";
8720       case StructureType::ePhysicalDeviceSubgroupProperties : return "PhysicalDeviceSubgroupProperties";
8721       case StructureType::eBindBufferMemoryInfo : return "BindBufferMemoryInfo";
8722       case StructureType::eBindImageMemoryInfo : return "BindImageMemoryInfo";
8723       case StructureType::ePhysicalDevice16BitStorageFeatures : return "PhysicalDevice16BitStorageFeatures";
8724       case StructureType::eMemoryDedicatedRequirements : return "MemoryDedicatedRequirements";
8725       case StructureType::eMemoryDedicatedAllocateInfo : return "MemoryDedicatedAllocateInfo";
8726       case StructureType::eMemoryAllocateFlagsInfo : return "MemoryAllocateFlagsInfo";
8727       case StructureType::eDeviceGroupRenderPassBeginInfo : return "DeviceGroupRenderPassBeginInfo";
8728       case StructureType::eDeviceGroupCommandBufferBeginInfo : return "DeviceGroupCommandBufferBeginInfo";
8729       case StructureType::eDeviceGroupSubmitInfo : return "DeviceGroupSubmitInfo";
8730       case StructureType::eDeviceGroupBindSparseInfo : return "DeviceGroupBindSparseInfo";
8731       case StructureType::eBindBufferMemoryDeviceGroupInfo : return "BindBufferMemoryDeviceGroupInfo";
8732       case StructureType::eBindImageMemoryDeviceGroupInfo : return "BindImageMemoryDeviceGroupInfo";
8733       case StructureType::ePhysicalDeviceGroupProperties : return "PhysicalDeviceGroupProperties";
8734       case StructureType::eDeviceGroupDeviceCreateInfo : return "DeviceGroupDeviceCreateInfo";
8735       case StructureType::eBufferMemoryRequirementsInfo2 : return "BufferMemoryRequirementsInfo2";
8736       case StructureType::eImageMemoryRequirementsInfo2 : return "ImageMemoryRequirementsInfo2";
8737       case StructureType::eImageSparseMemoryRequirementsInfo2 : return "ImageSparseMemoryRequirementsInfo2";
8738       case StructureType::eMemoryRequirements2 : return "MemoryRequirements2";
8739       case StructureType::eSparseImageMemoryRequirements2 : return "SparseImageMemoryRequirements2";
8740       case StructureType::ePhysicalDeviceFeatures2 : return "PhysicalDeviceFeatures2";
8741       case StructureType::ePhysicalDeviceProperties2 : return "PhysicalDeviceProperties2";
8742       case StructureType::eFormatProperties2 : return "FormatProperties2";
8743       case StructureType::eImageFormatProperties2 : return "ImageFormatProperties2";
8744       case StructureType::ePhysicalDeviceImageFormatInfo2 : return "PhysicalDeviceImageFormatInfo2";
8745       case StructureType::eQueueFamilyProperties2 : return "QueueFamilyProperties2";
8746       case StructureType::ePhysicalDeviceMemoryProperties2 : return "PhysicalDeviceMemoryProperties2";
8747       case StructureType::eSparseImageFormatProperties2 : return "SparseImageFormatProperties2";
8748       case StructureType::ePhysicalDeviceSparseImageFormatInfo2 : return "PhysicalDeviceSparseImageFormatInfo2";
8749       case StructureType::ePhysicalDevicePointClippingProperties : return "PhysicalDevicePointClippingProperties";
8750       case StructureType::eRenderPassInputAttachmentAspectCreateInfo : return "RenderPassInputAttachmentAspectCreateInfo";
8751       case StructureType::eImageViewUsageCreateInfo : return "ImageViewUsageCreateInfo";
8752       case StructureType::ePipelineTessellationDomainOriginStateCreateInfo : return "PipelineTessellationDomainOriginStateCreateInfo";
8753       case StructureType::eRenderPassMultiviewCreateInfo : return "RenderPassMultiviewCreateInfo";
8754       case StructureType::ePhysicalDeviceMultiviewFeatures : return "PhysicalDeviceMultiviewFeatures";
8755       case StructureType::ePhysicalDeviceMultiviewProperties : return "PhysicalDeviceMultiviewProperties";
8756       case StructureType::ePhysicalDeviceVariablePointersFeatures : return "PhysicalDeviceVariablePointersFeatures";
8757       case StructureType::eProtectedSubmitInfo : return "ProtectedSubmitInfo";
8758       case StructureType::ePhysicalDeviceProtectedMemoryFeatures : return "PhysicalDeviceProtectedMemoryFeatures";
8759       case StructureType::ePhysicalDeviceProtectedMemoryProperties : return "PhysicalDeviceProtectedMemoryProperties";
8760       case StructureType::eDeviceQueueInfo2 : return "DeviceQueueInfo2";
8761       case StructureType::eSamplerYcbcrConversionCreateInfo : return "SamplerYcbcrConversionCreateInfo";
8762       case StructureType::eSamplerYcbcrConversionInfo : return "SamplerYcbcrConversionInfo";
8763       case StructureType::eBindImagePlaneMemoryInfo : return "BindImagePlaneMemoryInfo";
8764       case StructureType::eImagePlaneMemoryRequirementsInfo : return "ImagePlaneMemoryRequirementsInfo";
8765       case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures : return "PhysicalDeviceSamplerYcbcrConversionFeatures";
8766       case StructureType::eSamplerYcbcrConversionImageFormatProperties : return "SamplerYcbcrConversionImageFormatProperties";
8767       case StructureType::eDescriptorUpdateTemplateCreateInfo : return "DescriptorUpdateTemplateCreateInfo";
8768       case StructureType::ePhysicalDeviceExternalImageFormatInfo : return "PhysicalDeviceExternalImageFormatInfo";
8769       case StructureType::eExternalImageFormatProperties : return "ExternalImageFormatProperties";
8770       case StructureType::ePhysicalDeviceExternalBufferInfo : return "PhysicalDeviceExternalBufferInfo";
8771       case StructureType::eExternalBufferProperties : return "ExternalBufferProperties";
8772       case StructureType::ePhysicalDeviceIdProperties : return "PhysicalDeviceIdProperties";
8773       case StructureType::eExternalMemoryBufferCreateInfo : return "ExternalMemoryBufferCreateInfo";
8774       case StructureType::eExternalMemoryImageCreateInfo : return "ExternalMemoryImageCreateInfo";
8775       case StructureType::eExportMemoryAllocateInfo : return "ExportMemoryAllocateInfo";
8776       case StructureType::ePhysicalDeviceExternalFenceInfo : return "PhysicalDeviceExternalFenceInfo";
8777       case StructureType::eExternalFenceProperties : return "ExternalFenceProperties";
8778       case StructureType::eExportFenceCreateInfo : return "ExportFenceCreateInfo";
8779       case StructureType::eExportSemaphoreCreateInfo : return "ExportSemaphoreCreateInfo";
8780       case StructureType::ePhysicalDeviceExternalSemaphoreInfo : return "PhysicalDeviceExternalSemaphoreInfo";
8781       case StructureType::eExternalSemaphoreProperties : return "ExternalSemaphoreProperties";
8782       case StructureType::ePhysicalDeviceMaintenance3Properties : return "PhysicalDeviceMaintenance3Properties";
8783       case StructureType::eDescriptorSetLayoutSupport : return "DescriptorSetLayoutSupport";
8784       case StructureType::ePhysicalDeviceShaderDrawParametersFeatures : return "PhysicalDeviceShaderDrawParametersFeatures";
8785       case StructureType::ePhysicalDeviceVulkan11Features : return "PhysicalDeviceVulkan11Features";
8786       case StructureType::ePhysicalDeviceVulkan11Properties : return "PhysicalDeviceVulkan11Properties";
8787       case StructureType::ePhysicalDeviceVulkan12Features : return "PhysicalDeviceVulkan12Features";
8788       case StructureType::ePhysicalDeviceVulkan12Properties : return "PhysicalDeviceVulkan12Properties";
8789       case StructureType::eImageFormatListCreateInfo : return "ImageFormatListCreateInfo";
8790       case StructureType::eAttachmentDescription2 : return "AttachmentDescription2";
8791       case StructureType::eAttachmentReference2 : return "AttachmentReference2";
8792       case StructureType::eSubpassDescription2 : return "SubpassDescription2";
8793       case StructureType::eSubpassDependency2 : return "SubpassDependency2";
8794       case StructureType::eRenderPassCreateInfo2 : return "RenderPassCreateInfo2";
8795       case StructureType::eSubpassBeginInfo : return "SubpassBeginInfo";
8796       case StructureType::eSubpassEndInfo : return "SubpassEndInfo";
8797       case StructureType::ePhysicalDevice8BitStorageFeatures : return "PhysicalDevice8BitStorageFeatures";
8798       case StructureType::ePhysicalDeviceDriverProperties : return "PhysicalDeviceDriverProperties";
8799       case StructureType::ePhysicalDeviceShaderAtomicInt64Features : return "PhysicalDeviceShaderAtomicInt64Features";
8800       case StructureType::ePhysicalDeviceShaderFloat16Int8Features : return "PhysicalDeviceShaderFloat16Int8Features";
8801       case StructureType::ePhysicalDeviceFloatControlsProperties : return "PhysicalDeviceFloatControlsProperties";
8802       case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo : return "DescriptorSetLayoutBindingFlagsCreateInfo";
8803       case StructureType::ePhysicalDeviceDescriptorIndexingFeatures : return "PhysicalDeviceDescriptorIndexingFeatures";
8804       case StructureType::ePhysicalDeviceDescriptorIndexingProperties : return "PhysicalDeviceDescriptorIndexingProperties";
8805       case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo : return "DescriptorSetVariableDescriptorCountAllocateInfo";
8806       case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport : return "DescriptorSetVariableDescriptorCountLayoutSupport";
8807       case StructureType::ePhysicalDeviceDepthStencilResolveProperties : return "PhysicalDeviceDepthStencilResolveProperties";
8808       case StructureType::eSubpassDescriptionDepthStencilResolve : return "SubpassDescriptionDepthStencilResolve";
8809       case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures : return "PhysicalDeviceScalarBlockLayoutFeatures";
8810       case StructureType::eImageStencilUsageCreateInfo : return "ImageStencilUsageCreateInfo";
8811       case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties : return "PhysicalDeviceSamplerFilterMinmaxProperties";
8812       case StructureType::eSamplerReductionModeCreateInfo : return "SamplerReductionModeCreateInfo";
8813       case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures : return "PhysicalDeviceVulkanMemoryModelFeatures";
8814       case StructureType::ePhysicalDeviceImagelessFramebufferFeatures : return "PhysicalDeviceImagelessFramebufferFeatures";
8815       case StructureType::eFramebufferAttachmentsCreateInfo : return "FramebufferAttachmentsCreateInfo";
8816       case StructureType::eFramebufferAttachmentImageInfo : return "FramebufferAttachmentImageInfo";
8817       case StructureType::eRenderPassAttachmentBeginInfo : return "RenderPassAttachmentBeginInfo";
8818       case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures : return "PhysicalDeviceUniformBufferStandardLayoutFeatures";
8819       case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures : return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures";
8820       case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures : return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures";
8821       case StructureType::eAttachmentReferenceStencilLayout : return "AttachmentReferenceStencilLayout";
8822       case StructureType::eAttachmentDescriptionStencilLayout : return "AttachmentDescriptionStencilLayout";
8823       case StructureType::ePhysicalDeviceHostQueryResetFeatures : return "PhysicalDeviceHostQueryResetFeatures";
8824       case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures : return "PhysicalDeviceTimelineSemaphoreFeatures";
8825       case StructureType::ePhysicalDeviceTimelineSemaphoreProperties : return "PhysicalDeviceTimelineSemaphoreProperties";
8826       case StructureType::eSemaphoreTypeCreateInfo : return "SemaphoreTypeCreateInfo";
8827       case StructureType::eTimelineSemaphoreSubmitInfo : return "TimelineSemaphoreSubmitInfo";
8828       case StructureType::eSemaphoreWaitInfo : return "SemaphoreWaitInfo";
8829       case StructureType::eSemaphoreSignalInfo : return "SemaphoreSignalInfo";
8830       case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures : return "PhysicalDeviceBufferDeviceAddressFeatures";
8831       case StructureType::eBufferDeviceAddressInfo : return "BufferDeviceAddressInfo";
8832       case StructureType::eBufferOpaqueCaptureAddressCreateInfo : return "BufferOpaqueCaptureAddressCreateInfo";
8833       case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo : return "MemoryOpaqueCaptureAddressAllocateInfo";
8834       case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo : return "DeviceMemoryOpaqueCaptureAddressInfo";
8835       case StructureType::eSwapchainCreateInfoKHR : return "SwapchainCreateInfoKHR";
8836       case StructureType::ePresentInfoKHR : return "PresentInfoKHR";
8837       case StructureType::eDeviceGroupPresentCapabilitiesKHR : return "DeviceGroupPresentCapabilitiesKHR";
8838       case StructureType::eImageSwapchainCreateInfoKHR : return "ImageSwapchainCreateInfoKHR";
8839       case StructureType::eBindImageMemorySwapchainInfoKHR : return "BindImageMemorySwapchainInfoKHR";
8840       case StructureType::eAcquireNextImageInfoKHR : return "AcquireNextImageInfoKHR";
8841       case StructureType::eDeviceGroupPresentInfoKHR : return "DeviceGroupPresentInfoKHR";
8842       case StructureType::eDeviceGroupSwapchainCreateInfoKHR : return "DeviceGroupSwapchainCreateInfoKHR";
8843       case StructureType::eDisplayModeCreateInfoKHR : return "DisplayModeCreateInfoKHR";
8844       case StructureType::eDisplaySurfaceCreateInfoKHR : return "DisplaySurfaceCreateInfoKHR";
8845       case StructureType::eDisplayPresentInfoKHR : return "DisplayPresentInfoKHR";
8846       case StructureType::eXlibSurfaceCreateInfoKHR : return "XlibSurfaceCreateInfoKHR";
8847       case StructureType::eXcbSurfaceCreateInfoKHR : return "XcbSurfaceCreateInfoKHR";
8848       case StructureType::eWaylandSurfaceCreateInfoKHR : return "WaylandSurfaceCreateInfoKHR";
8849       case StructureType::eAndroidSurfaceCreateInfoKHR : return "AndroidSurfaceCreateInfoKHR";
8850       case StructureType::eWin32SurfaceCreateInfoKHR : return "Win32SurfaceCreateInfoKHR";
8851       case StructureType::eDebugReportCallbackCreateInfoEXT : return "DebugReportCallbackCreateInfoEXT";
8852       case StructureType::ePipelineRasterizationStateRasterizationOrderAMD : return "PipelineRasterizationStateRasterizationOrderAMD";
8853       case StructureType::eDebugMarkerObjectNameInfoEXT : return "DebugMarkerObjectNameInfoEXT";
8854       case StructureType::eDebugMarkerObjectTagInfoEXT : return "DebugMarkerObjectTagInfoEXT";
8855       case StructureType::eDebugMarkerMarkerInfoEXT : return "DebugMarkerMarkerInfoEXT";
8856       case StructureType::eDedicatedAllocationImageCreateInfoNV : return "DedicatedAllocationImageCreateInfoNV";
8857       case StructureType::eDedicatedAllocationBufferCreateInfoNV : return "DedicatedAllocationBufferCreateInfoNV";
8858       case StructureType::eDedicatedAllocationMemoryAllocateInfoNV : return "DedicatedAllocationMemoryAllocateInfoNV";
8859       case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT : return "PhysicalDeviceTransformFeedbackFeaturesEXT";
8860       case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT : return "PhysicalDeviceTransformFeedbackPropertiesEXT";
8861       case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT : return "PipelineRasterizationStateStreamCreateInfoEXT";
8862       case StructureType::eImageViewHandleInfoNVX : return "ImageViewHandleInfoNVX";
8863       case StructureType::eImageViewAddressPropertiesNVX : return "ImageViewAddressPropertiesNVX";
8864       case StructureType::eTextureLodGatherFormatPropertiesAMD : return "TextureLodGatherFormatPropertiesAMD";
8865       case StructureType::eStreamDescriptorSurfaceCreateInfoGGP : return "StreamDescriptorSurfaceCreateInfoGGP";
8866       case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV : return "PhysicalDeviceCornerSampledImageFeaturesNV";
8867       case StructureType::eExternalMemoryImageCreateInfoNV : return "ExternalMemoryImageCreateInfoNV";
8868       case StructureType::eExportMemoryAllocateInfoNV : return "ExportMemoryAllocateInfoNV";
8869       case StructureType::eImportMemoryWin32HandleInfoNV : return "ImportMemoryWin32HandleInfoNV";
8870       case StructureType::eExportMemoryWin32HandleInfoNV : return "ExportMemoryWin32HandleInfoNV";
8871       case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV : return "Win32KeyedMutexAcquireReleaseInfoNV";
8872       case StructureType::eValidationFlagsEXT : return "ValidationFlagsEXT";
8873       case StructureType::eViSurfaceCreateInfoNN : return "ViSurfaceCreateInfoNN";
8874       case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT : return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT";
8875       case StructureType::eImageViewAstcDecodeModeEXT : return "ImageViewAstcDecodeModeEXT";
8876       case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT : return "PhysicalDeviceAstcDecodeFeaturesEXT";
8877       case StructureType::eImportMemoryWin32HandleInfoKHR : return "ImportMemoryWin32HandleInfoKHR";
8878       case StructureType::eExportMemoryWin32HandleInfoKHR : return "ExportMemoryWin32HandleInfoKHR";
8879       case StructureType::eMemoryWin32HandlePropertiesKHR : return "MemoryWin32HandlePropertiesKHR";
8880       case StructureType::eMemoryGetWin32HandleInfoKHR : return "MemoryGetWin32HandleInfoKHR";
8881       case StructureType::eImportMemoryFdInfoKHR : return "ImportMemoryFdInfoKHR";
8882       case StructureType::eMemoryFdPropertiesKHR : return "MemoryFdPropertiesKHR";
8883       case StructureType::eMemoryGetFdInfoKHR : return "MemoryGetFdInfoKHR";
8884       case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR : return "Win32KeyedMutexAcquireReleaseInfoKHR";
8885       case StructureType::eImportSemaphoreWin32HandleInfoKHR : return "ImportSemaphoreWin32HandleInfoKHR";
8886       case StructureType::eExportSemaphoreWin32HandleInfoKHR : return "ExportSemaphoreWin32HandleInfoKHR";
8887       case StructureType::eD3D12FenceSubmitInfoKHR : return "D3D12FenceSubmitInfoKHR";
8888       case StructureType::eSemaphoreGetWin32HandleInfoKHR : return "SemaphoreGetWin32HandleInfoKHR";
8889       case StructureType::eImportSemaphoreFdInfoKHR : return "ImportSemaphoreFdInfoKHR";
8890       case StructureType::eSemaphoreGetFdInfoKHR : return "SemaphoreGetFdInfoKHR";
8891       case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR : return "PhysicalDevicePushDescriptorPropertiesKHR";
8892       case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT : return "CommandBufferInheritanceConditionalRenderingInfoEXT";
8893       case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT : return "PhysicalDeviceConditionalRenderingFeaturesEXT";
8894       case StructureType::eConditionalRenderingBeginInfoEXT : return "ConditionalRenderingBeginInfoEXT";
8895       case StructureType::ePresentRegionsKHR : return "PresentRegionsKHR";
8896       case StructureType::ePipelineViewportWScalingStateCreateInfoNV : return "PipelineViewportWScalingStateCreateInfoNV";
8897       case StructureType::eSurfaceCapabilities2EXT : return "SurfaceCapabilities2EXT";
8898       case StructureType::eDisplayPowerInfoEXT : return "DisplayPowerInfoEXT";
8899       case StructureType::eDeviceEventInfoEXT : return "DeviceEventInfoEXT";
8900       case StructureType::eDisplayEventInfoEXT : return "DisplayEventInfoEXT";
8901       case StructureType::eSwapchainCounterCreateInfoEXT : return "SwapchainCounterCreateInfoEXT";
8902       case StructureType::ePresentTimesInfoGOOGLE : return "PresentTimesInfoGOOGLE";
8903       case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX : return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX";
8904       case StructureType::ePipelineViewportSwizzleStateCreateInfoNV : return "PipelineViewportSwizzleStateCreateInfoNV";
8905       case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT : return "PhysicalDeviceDiscardRectanglePropertiesEXT";
8906       case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT : return "PipelineDiscardRectangleStateCreateInfoEXT";
8907       case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT : return "PhysicalDeviceConservativeRasterizationPropertiesEXT";
8908       case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT : return "PipelineRasterizationConservativeStateCreateInfoEXT";
8909       case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT : return "PhysicalDeviceDepthClipEnableFeaturesEXT";
8910       case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT : return "PipelineRasterizationDepthClipStateCreateInfoEXT";
8911       case StructureType::eHdrMetadataEXT : return "HdrMetadataEXT";
8912       case StructureType::eSharedPresentSurfaceCapabilitiesKHR : return "SharedPresentSurfaceCapabilitiesKHR";
8913       case StructureType::eImportFenceWin32HandleInfoKHR : return "ImportFenceWin32HandleInfoKHR";
8914       case StructureType::eExportFenceWin32HandleInfoKHR : return "ExportFenceWin32HandleInfoKHR";
8915       case StructureType::eFenceGetWin32HandleInfoKHR : return "FenceGetWin32HandleInfoKHR";
8916       case StructureType::eImportFenceFdInfoKHR : return "ImportFenceFdInfoKHR";
8917       case StructureType::eFenceGetFdInfoKHR : return "FenceGetFdInfoKHR";
8918       case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR : return "PhysicalDevicePerformanceQueryFeaturesKHR";
8919       case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR : return "PhysicalDevicePerformanceQueryPropertiesKHR";
8920       case StructureType::eQueryPoolPerformanceCreateInfoKHR : return "QueryPoolPerformanceCreateInfoKHR";
8921       case StructureType::ePerformanceQuerySubmitInfoKHR : return "PerformanceQuerySubmitInfoKHR";
8922       case StructureType::eAcquireProfilingLockInfoKHR : return "AcquireProfilingLockInfoKHR";
8923       case StructureType::ePerformanceCounterKHR : return "PerformanceCounterKHR";
8924       case StructureType::ePerformanceCounterDescriptionKHR : return "PerformanceCounterDescriptionKHR";
8925       case StructureType::ePhysicalDeviceSurfaceInfo2KHR : return "PhysicalDeviceSurfaceInfo2KHR";
8926       case StructureType::eSurfaceCapabilities2KHR : return "SurfaceCapabilities2KHR";
8927       case StructureType::eSurfaceFormat2KHR : return "SurfaceFormat2KHR";
8928       case StructureType::eDisplayProperties2KHR : return "DisplayProperties2KHR";
8929       case StructureType::eDisplayPlaneProperties2KHR : return "DisplayPlaneProperties2KHR";
8930       case StructureType::eDisplayModeProperties2KHR : return "DisplayModeProperties2KHR";
8931       case StructureType::eDisplayPlaneInfo2KHR : return "DisplayPlaneInfo2KHR";
8932       case StructureType::eDisplayPlaneCapabilities2KHR : return "DisplayPlaneCapabilities2KHR";
8933       case StructureType::eIosSurfaceCreateInfoMVK : return "IosSurfaceCreateInfoMVK";
8934       case StructureType::eMacosSurfaceCreateInfoMVK : return "MacosSurfaceCreateInfoMVK";
8935       case StructureType::eDebugUtilsObjectNameInfoEXT : return "DebugUtilsObjectNameInfoEXT";
8936       case StructureType::eDebugUtilsObjectTagInfoEXT : return "DebugUtilsObjectTagInfoEXT";
8937       case StructureType::eDebugUtilsLabelEXT : return "DebugUtilsLabelEXT";
8938       case StructureType::eDebugUtilsMessengerCallbackDataEXT : return "DebugUtilsMessengerCallbackDataEXT";
8939       case StructureType::eDebugUtilsMessengerCreateInfoEXT : return "DebugUtilsMessengerCreateInfoEXT";
8940       case StructureType::eAndroidHardwareBufferUsageANDROID : return "AndroidHardwareBufferUsageANDROID";
8941       case StructureType::eAndroidHardwareBufferPropertiesANDROID : return "AndroidHardwareBufferPropertiesANDROID";
8942       case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID : return "AndroidHardwareBufferFormatPropertiesANDROID";
8943       case StructureType::eImportAndroidHardwareBufferInfoANDROID : return "ImportAndroidHardwareBufferInfoANDROID";
8944       case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID : return "MemoryGetAndroidHardwareBufferInfoANDROID";
8945       case StructureType::eExternalFormatANDROID : return "ExternalFormatANDROID";
8946       case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT : return "PhysicalDeviceInlineUniformBlockFeaturesEXT";
8947       case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT : return "PhysicalDeviceInlineUniformBlockPropertiesEXT";
8948       case StructureType::eWriteDescriptorSetInlineUniformBlockEXT : return "WriteDescriptorSetInlineUniformBlockEXT";
8949       case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT : return "DescriptorPoolInlineUniformBlockCreateInfoEXT";
8950       case StructureType::eSampleLocationsInfoEXT : return "SampleLocationsInfoEXT";
8951       case StructureType::eRenderPassSampleLocationsBeginInfoEXT : return "RenderPassSampleLocationsBeginInfoEXT";
8952       case StructureType::ePipelineSampleLocationsStateCreateInfoEXT : return "PipelineSampleLocationsStateCreateInfoEXT";
8953       case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT : return "PhysicalDeviceSampleLocationsPropertiesEXT";
8954       case StructureType::eMultisamplePropertiesEXT : return "MultisamplePropertiesEXT";
8955       case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT : return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT";
8956       case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT : return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT";
8957       case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT : return "PipelineColorBlendAdvancedStateCreateInfoEXT";
8958       case StructureType::ePipelineCoverageToColorStateCreateInfoNV : return "PipelineCoverageToColorStateCreateInfoNV";
8959       case StructureType::eBindAccelerationStructureMemoryInfoKHR : return "BindAccelerationStructureMemoryInfoKHR";
8960       case StructureType::eWriteDescriptorSetAccelerationStructureKHR : return "WriteDescriptorSetAccelerationStructureKHR";
8961       case StructureType::eAccelerationStructureBuildGeometryInfoKHR : return "AccelerationStructureBuildGeometryInfoKHR";
8962       case StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR : return "AccelerationStructureCreateGeometryTypeInfoKHR";
8963       case StructureType::eAccelerationStructureDeviceAddressInfoKHR : return "AccelerationStructureDeviceAddressInfoKHR";
8964       case StructureType::eAccelerationStructureGeometryAabbsDataKHR : return "AccelerationStructureGeometryAabbsDataKHR";
8965       case StructureType::eAccelerationStructureGeometryInstancesDataKHR : return "AccelerationStructureGeometryInstancesDataKHR";
8966       case StructureType::eAccelerationStructureGeometryTrianglesDataKHR : return "AccelerationStructureGeometryTrianglesDataKHR";
8967       case StructureType::eAccelerationStructureGeometryKHR : return "AccelerationStructureGeometryKHR";
8968       case StructureType::eAccelerationStructureMemoryRequirementsInfoKHR : return "AccelerationStructureMemoryRequirementsInfoKHR";
8969       case StructureType::eAccelerationStructureVersionKHR : return "AccelerationStructureVersionKHR";
8970       case StructureType::eCopyAccelerationStructureInfoKHR : return "CopyAccelerationStructureInfoKHR";
8971       case StructureType::eCopyAccelerationStructureToMemoryInfoKHR : return "CopyAccelerationStructureToMemoryInfoKHR";
8972       case StructureType::eCopyMemoryToAccelerationStructureInfoKHR : return "CopyMemoryToAccelerationStructureInfoKHR";
8973       case StructureType::ePhysicalDeviceRayTracingFeaturesKHR : return "PhysicalDeviceRayTracingFeaturesKHR";
8974       case StructureType::ePhysicalDeviceRayTracingPropertiesKHR : return "PhysicalDeviceRayTracingPropertiesKHR";
8975       case StructureType::eRayTracingPipelineCreateInfoKHR : return "RayTracingPipelineCreateInfoKHR";
8976       case StructureType::eRayTracingShaderGroupCreateInfoKHR : return "RayTracingShaderGroupCreateInfoKHR";
8977       case StructureType::eAccelerationStructureCreateInfoKHR : return "AccelerationStructureCreateInfoKHR";
8978       case StructureType::eRayTracingPipelineInterfaceCreateInfoKHR : return "RayTracingPipelineInterfaceCreateInfoKHR";
8979       case StructureType::ePipelineCoverageModulationStateCreateInfoNV : return "PipelineCoverageModulationStateCreateInfoNV";
8980       case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV : return "PhysicalDeviceShaderSmBuiltinsFeaturesNV";
8981       case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV : return "PhysicalDeviceShaderSmBuiltinsPropertiesNV";
8982       case StructureType::eDrmFormatModifierPropertiesListEXT : return "DrmFormatModifierPropertiesListEXT";
8983       case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT : return "PhysicalDeviceImageDrmFormatModifierInfoEXT";
8984       case StructureType::eImageDrmFormatModifierListCreateInfoEXT : return "ImageDrmFormatModifierListCreateInfoEXT";
8985       case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT : return "ImageDrmFormatModifierExplicitCreateInfoEXT";
8986       case StructureType::eImageDrmFormatModifierPropertiesEXT : return "ImageDrmFormatModifierPropertiesEXT";
8987       case StructureType::eValidationCacheCreateInfoEXT : return "ValidationCacheCreateInfoEXT";
8988       case StructureType::eShaderModuleValidationCacheCreateInfoEXT : return "ShaderModuleValidationCacheCreateInfoEXT";
8989       case StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR : return "PhysicalDevicePortabilitySubsetFeaturesKHR";
8990       case StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR : return "PhysicalDevicePortabilitySubsetPropertiesKHR";
8991       case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV : return "PipelineViewportShadingRateImageStateCreateInfoNV";
8992       case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV : return "PhysicalDeviceShadingRateImageFeaturesNV";
8993       case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV : return "PhysicalDeviceShadingRateImagePropertiesNV";
8994       case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV : return "PipelineViewportCoarseSampleOrderStateCreateInfoNV";
8995       case StructureType::eRayTracingPipelineCreateInfoNV : return "RayTracingPipelineCreateInfoNV";
8996       case StructureType::eAccelerationStructureCreateInfoNV : return "AccelerationStructureCreateInfoNV";
8997       case StructureType::eGeometryNV : return "GeometryNV";
8998       case StructureType::eGeometryTrianglesNV : return "GeometryTrianglesNV";
8999       case StructureType::eGeometryAabbNV : return "GeometryAabbNV";
9000       case StructureType::eAccelerationStructureMemoryRequirementsInfoNV : return "AccelerationStructureMemoryRequirementsInfoNV";
9001       case StructureType::ePhysicalDeviceRayTracingPropertiesNV : return "PhysicalDeviceRayTracingPropertiesNV";
9002       case StructureType::eRayTracingShaderGroupCreateInfoNV : return "RayTracingShaderGroupCreateInfoNV";
9003       case StructureType::eAccelerationStructureInfoNV : return "AccelerationStructureInfoNV";
9004       case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV : return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV";
9005       case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV : return "PipelineRepresentativeFragmentTestStateCreateInfoNV";
9006       case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT : return "PhysicalDeviceImageViewImageFormatInfoEXT";
9007       case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT : return "FilterCubicImageViewImageFormatPropertiesEXT";
9008       case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT : return "DeviceQueueGlobalPriorityCreateInfoEXT";
9009       case StructureType::eImportMemoryHostPointerInfoEXT : return "ImportMemoryHostPointerInfoEXT";
9010       case StructureType::eMemoryHostPointerPropertiesEXT : return "MemoryHostPointerPropertiesEXT";
9011       case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT : return "PhysicalDeviceExternalMemoryHostPropertiesEXT";
9012       case StructureType::ePhysicalDeviceShaderClockFeaturesKHR : return "PhysicalDeviceShaderClockFeaturesKHR";
9013       case StructureType::ePipelineCompilerControlCreateInfoAMD : return "PipelineCompilerControlCreateInfoAMD";
9014       case StructureType::eCalibratedTimestampInfoEXT : return "CalibratedTimestampInfoEXT";
9015       case StructureType::ePhysicalDeviceShaderCorePropertiesAMD : return "PhysicalDeviceShaderCorePropertiesAMD";
9016       case StructureType::eDeviceMemoryOverallocationCreateInfoAMD : return "DeviceMemoryOverallocationCreateInfoAMD";
9017       case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT : return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT";
9018       case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT : return "PipelineVertexInputDivisorStateCreateInfoEXT";
9019       case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT : return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT";
9020       case StructureType::ePresentFrameTokenGGP : return "PresentFrameTokenGGP";
9021       case StructureType::ePipelineCreationFeedbackCreateInfoEXT : return "PipelineCreationFeedbackCreateInfoEXT";
9022       case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV : return "PhysicalDeviceComputeShaderDerivativesFeaturesNV";
9023       case StructureType::ePhysicalDeviceMeshShaderFeaturesNV : return "PhysicalDeviceMeshShaderFeaturesNV";
9024       case StructureType::ePhysicalDeviceMeshShaderPropertiesNV : return "PhysicalDeviceMeshShaderPropertiesNV";
9025       case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV : return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV";
9026       case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV : return "PhysicalDeviceShaderImageFootprintFeaturesNV";
9027       case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV : return "PipelineViewportExclusiveScissorStateCreateInfoNV";
9028       case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV : return "PhysicalDeviceExclusiveScissorFeaturesNV";
9029       case StructureType::eCheckpointDataNV : return "CheckpointDataNV";
9030       case StructureType::eQueueFamilyCheckpointPropertiesNV : return "QueueFamilyCheckpointPropertiesNV";
9031       case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL : return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL";
9032       case StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL : return "QueryPoolPerformanceQueryCreateInfoINTEL";
9033       case StructureType::eInitializePerformanceApiInfoINTEL : return "InitializePerformanceApiInfoINTEL";
9034       case StructureType::ePerformanceMarkerInfoINTEL : return "PerformanceMarkerInfoINTEL";
9035       case StructureType::ePerformanceStreamMarkerInfoINTEL : return "PerformanceStreamMarkerInfoINTEL";
9036       case StructureType::ePerformanceOverrideInfoINTEL : return "PerformanceOverrideInfoINTEL";
9037       case StructureType::ePerformanceConfigurationAcquireInfoINTEL : return "PerformanceConfigurationAcquireInfoINTEL";
9038       case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT : return "PhysicalDevicePciBusInfoPropertiesEXT";
9039       case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD : return "DisplayNativeHdrSurfaceCapabilitiesAMD";
9040       case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD : return "SwapchainDisplayNativeHdrCreateInfoAMD";
9041       case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA : return "ImagepipeSurfaceCreateInfoFUCHSIA";
9042       case StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR : return "PhysicalDeviceShaderTerminateInvocationFeaturesKHR";
9043       case StructureType::eMetalSurfaceCreateInfoEXT : return "MetalSurfaceCreateInfoEXT";
9044       case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT : return "PhysicalDeviceFragmentDensityMapFeaturesEXT";
9045       case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT : return "PhysicalDeviceFragmentDensityMapPropertiesEXT";
9046       case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT : return "RenderPassFragmentDensityMapCreateInfoEXT";
9047       case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT : return "PhysicalDeviceSubgroupSizeControlPropertiesEXT";
9048       case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT : return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT";
9049       case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT : return "PhysicalDeviceSubgroupSizeControlFeaturesEXT";
9050       case StructureType::eFragmentShadingRateAttachmentInfoKHR : return "FragmentShadingRateAttachmentInfoKHR";
9051       case StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR : return "PipelineFragmentShadingRateStateCreateInfoKHR";
9052       case StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR : return "PhysicalDeviceFragmentShadingRatePropertiesKHR";
9053       case StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR : return "PhysicalDeviceFragmentShadingRateFeaturesKHR";
9054       case StructureType::ePhysicalDeviceFragmentShadingRateKHR : return "PhysicalDeviceFragmentShadingRateKHR";
9055       case StructureType::ePhysicalDeviceShaderCoreProperties2AMD : return "PhysicalDeviceShaderCoreProperties2AMD";
9056       case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD : return "PhysicalDeviceCoherentMemoryFeaturesAMD";
9057       case StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT : return "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT";
9058       case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT : return "PhysicalDeviceMemoryBudgetPropertiesEXT";
9059       case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT : return "PhysicalDeviceMemoryPriorityFeaturesEXT";
9060       case StructureType::eMemoryPriorityAllocateInfoEXT : return "MemoryPriorityAllocateInfoEXT";
9061       case StructureType::eSurfaceProtectedCapabilitiesKHR : return "SurfaceProtectedCapabilitiesKHR";
9062       case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV : return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV";
9063       case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT : return "PhysicalDeviceBufferDeviceAddressFeaturesEXT";
9064       case StructureType::eBufferDeviceAddressCreateInfoEXT : return "BufferDeviceAddressCreateInfoEXT";
9065       case StructureType::ePhysicalDeviceToolPropertiesEXT : return "PhysicalDeviceToolPropertiesEXT";
9066       case StructureType::eValidationFeaturesEXT : return "ValidationFeaturesEXT";
9067       case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV : return "PhysicalDeviceCooperativeMatrixFeaturesNV";
9068       case StructureType::eCooperativeMatrixPropertiesNV : return "CooperativeMatrixPropertiesNV";
9069       case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV : return "PhysicalDeviceCooperativeMatrixPropertiesNV";
9070       case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV : return "PhysicalDeviceCoverageReductionModeFeaturesNV";
9071       case StructureType::ePipelineCoverageReductionStateCreateInfoNV : return "PipelineCoverageReductionStateCreateInfoNV";
9072       case StructureType::eFramebufferMixedSamplesCombinationNV : return "FramebufferMixedSamplesCombinationNV";
9073       case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT : return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT";
9074       case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT : return "PhysicalDeviceYcbcrImageArraysFeaturesEXT";
9075       case StructureType::eSurfaceFullScreenExclusiveInfoEXT : return "SurfaceFullScreenExclusiveInfoEXT";
9076       case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT : return "SurfaceCapabilitiesFullScreenExclusiveEXT";
9077       case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT : return "SurfaceFullScreenExclusiveWin32InfoEXT";
9078       case StructureType::eHeadlessSurfaceCreateInfoEXT : return "HeadlessSurfaceCreateInfoEXT";
9079       case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT : return "PhysicalDeviceLineRasterizationFeaturesEXT";
9080       case StructureType::ePipelineRasterizationLineStateCreateInfoEXT : return "PipelineRasterizationLineStateCreateInfoEXT";
9081       case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT : return "PhysicalDeviceLineRasterizationPropertiesEXT";
9082       case StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT : return "PhysicalDeviceShaderAtomicFloatFeaturesEXT";
9083       case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT : return "PhysicalDeviceIndexTypeUint8FeaturesEXT";
9084       case StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT : return "PhysicalDeviceExtendedDynamicStateFeaturesEXT";
9085       case StructureType::eDeferredOperationInfoKHR : return "DeferredOperationInfoKHR";
9086       case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR : return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR";
9087       case StructureType::ePipelineInfoKHR : return "PipelineInfoKHR";
9088       case StructureType::ePipelineExecutablePropertiesKHR : return "PipelineExecutablePropertiesKHR";
9089       case StructureType::ePipelineExecutableInfoKHR : return "PipelineExecutableInfoKHR";
9090       case StructureType::ePipelineExecutableStatisticKHR : return "PipelineExecutableStatisticKHR";
9091       case StructureType::ePipelineExecutableInternalRepresentationKHR : return "PipelineExecutableInternalRepresentationKHR";
9092       case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT : return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT";
9093       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV : return "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV";
9094       case StructureType::eGraphicsShaderGroupCreateInfoNV : return "GraphicsShaderGroupCreateInfoNV";
9095       case StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV : return "GraphicsPipelineShaderGroupsCreateInfoNV";
9096       case StructureType::eIndirectCommandsLayoutTokenNV : return "IndirectCommandsLayoutTokenNV";
9097       case StructureType::eIndirectCommandsLayoutCreateInfoNV : return "IndirectCommandsLayoutCreateInfoNV";
9098       case StructureType::eGeneratedCommandsInfoNV : return "GeneratedCommandsInfoNV";
9099       case StructureType::eGeneratedCommandsMemoryRequirementsInfoNV : return "GeneratedCommandsMemoryRequirementsInfoNV";
9100       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV : return "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV";
9101       case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT : return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
9102       case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT : return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT";
9103       case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM : return "CommandBufferInheritanceRenderPassTransformInfoQCOM";
9104       case StructureType::eRenderPassTransformBeginInfoQCOM : return "RenderPassTransformBeginInfoQCOM";
9105       case StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT : return "PhysicalDeviceDeviceMemoryReportFeaturesEXT";
9106       case StructureType::eDeviceDeviceMemoryReportCreateInfoEXT : return "DeviceDeviceMemoryReportCreateInfoEXT";
9107       case StructureType::eDeviceMemoryReportCallbackDataEXT : return "DeviceMemoryReportCallbackDataEXT";
9108       case StructureType::ePhysicalDeviceRobustness2FeaturesEXT : return "PhysicalDeviceRobustness2FeaturesEXT";
9109       case StructureType::ePhysicalDeviceRobustness2PropertiesEXT : return "PhysicalDeviceRobustness2PropertiesEXT";
9110       case StructureType::eSamplerCustomBorderColorCreateInfoEXT : return "SamplerCustomBorderColorCreateInfoEXT";
9111       case StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT : return "PhysicalDeviceCustomBorderColorPropertiesEXT";
9112       case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT : return "PhysicalDeviceCustomBorderColorFeaturesEXT";
9113       case StructureType::ePipelineLibraryCreateInfoKHR : return "PipelineLibraryCreateInfoKHR";
9114       case StructureType::ePhysicalDevicePrivateDataFeaturesEXT : return "PhysicalDevicePrivateDataFeaturesEXT";
9115       case StructureType::eDevicePrivateDataCreateInfoEXT : return "DevicePrivateDataCreateInfoEXT";
9116       case StructureType::ePrivateDataSlotCreateInfoEXT : return "PrivateDataSlotCreateInfoEXT";
9117       case StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT : return "PhysicalDevicePipelineCreationCacheControlFeaturesEXT";
9118       case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV : return "PhysicalDeviceDiagnosticsConfigFeaturesNV";
9119       case StructureType::eDeviceDiagnosticsConfigCreateInfoNV : return "DeviceDiagnosticsConfigCreateInfoNV";
9120       case StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT : return "PhysicalDeviceFragmentDensityMap2FeaturesEXT";
9121       case StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT : return "PhysicalDeviceFragmentDensityMap2PropertiesEXT";
9122       case StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT : return "PhysicalDeviceImageRobustnessFeaturesEXT";
9123       case StructureType::eCopyBufferInfo2KHR : return "CopyBufferInfo2KHR";
9124       case StructureType::eCopyImageInfo2KHR : return "CopyImageInfo2KHR";
9125       case StructureType::eCopyBufferToImageInfo2KHR : return "CopyBufferToImageInfo2KHR";
9126       case StructureType::eCopyImageToBufferInfo2KHR : return "CopyImageToBufferInfo2KHR";
9127       case StructureType::eBlitImageInfo2KHR : return "BlitImageInfo2KHR";
9128       case StructureType::eResolveImageInfo2KHR : return "ResolveImageInfo2KHR";
9129       case StructureType::eBufferCopy2KHR : return "BufferCopy2KHR";
9130       case StructureType::eImageCopy2KHR : return "ImageCopy2KHR";
9131       case StructureType::eImageBlit2KHR : return "ImageBlit2KHR";
9132       case StructureType::eBufferImageCopy2KHR : return "BufferImageCopy2KHR";
9133       case StructureType::eImageResolve2KHR : return "ImageResolve2KHR";
9134       case StructureType::ePhysicalDevice4444FormatsFeaturesEXT : return "PhysicalDevice4444FormatsFeaturesEXT";
9135       case StructureType::eDirectfbSurfaceCreateInfoEXT : return "DirectfbSurfaceCreateInfoEXT";
9136       default: return "invalid";
9137     }
9138   }
9139 
9140   enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags
9141   {
9142     eBasic = VK_SUBGROUP_FEATURE_BASIC_BIT,
9143     eVote = VK_SUBGROUP_FEATURE_VOTE_BIT,
9144     eArithmetic = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
9145     eBallot = VK_SUBGROUP_FEATURE_BALLOT_BIT,
9146     eShuffle = VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
9147     eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
9148     eClustered = VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
9149     eQuad = VK_SUBGROUP_FEATURE_QUAD_BIT,
9150     ePartitionedNV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
9151   };
9152 
to_string(SubgroupFeatureFlagBits value)9153   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value )
9154   {
9155     switch ( value )
9156     {
9157       case SubgroupFeatureFlagBits::eBasic : return "Basic";
9158       case SubgroupFeatureFlagBits::eVote : return "Vote";
9159       case SubgroupFeatureFlagBits::eArithmetic : return "Arithmetic";
9160       case SubgroupFeatureFlagBits::eBallot : return "Ballot";
9161       case SubgroupFeatureFlagBits::eShuffle : return "Shuffle";
9162       case SubgroupFeatureFlagBits::eShuffleRelative : return "ShuffleRelative";
9163       case SubgroupFeatureFlagBits::eClustered : return "Clustered";
9164       case SubgroupFeatureFlagBits::eQuad : return "Quad";
9165       case SubgroupFeatureFlagBits::ePartitionedNV : return "PartitionedNV";
9166       default: return "invalid";
9167     }
9168   }
9169 
9170   enum class SubpassContents
9171   {
9172     eInline = VK_SUBPASS_CONTENTS_INLINE,
9173     eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
9174   };
9175 
to_string(SubpassContents value)9176   VULKAN_HPP_INLINE std::string to_string( SubpassContents value )
9177   {
9178     switch ( value )
9179     {
9180       case SubpassContents::eInline : return "Inline";
9181       case SubpassContents::eSecondaryCommandBuffers : return "SecondaryCommandBuffers";
9182       default: return "invalid";
9183     }
9184   }
9185 
9186   enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags
9187   {
9188     ePerViewAttributesNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
9189     ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,
9190     eFragmentRegionQCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,
9191     eShaderResolveQCOM = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
9192   };
9193 
to_string(SubpassDescriptionFlagBits value)9194   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value )
9195   {
9196     switch ( value )
9197     {
9198       case SubpassDescriptionFlagBits::ePerViewAttributesNVX : return "PerViewAttributesNVX";
9199       case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX : return "PerViewPositionXOnlyNVX";
9200       case SubpassDescriptionFlagBits::eFragmentRegionQCOM : return "FragmentRegionQCOM";
9201       case SubpassDescriptionFlagBits::eShaderResolveQCOM : return "ShaderResolveQCOM";
9202       default: return "invalid";
9203     }
9204   }
9205 
9206   enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT
9207   {
9208     eVblank = VK_SURFACE_COUNTER_VBLANK_EXT
9209   };
9210 
to_string(SurfaceCounterFlagBitsEXT value)9211   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value )
9212   {
9213     switch ( value )
9214     {
9215       case SurfaceCounterFlagBitsEXT::eVblank : return "Vblank";
9216       default: return "invalid";
9217     }
9218   }
9219 
9220   enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR
9221   {
9222     eIdentity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
9223     eRotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
9224     eRotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
9225     eRotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
9226     eHorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
9227     eHorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
9228     eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
9229     eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
9230     eInherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
9231   };
9232 
to_string(SurfaceTransformFlagBitsKHR value)9233   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value )
9234   {
9235     switch ( value )
9236     {
9237       case SurfaceTransformFlagBitsKHR::eIdentity : return "Identity";
9238       case SurfaceTransformFlagBitsKHR::eRotate90 : return "Rotate90";
9239       case SurfaceTransformFlagBitsKHR::eRotate180 : return "Rotate180";
9240       case SurfaceTransformFlagBitsKHR::eRotate270 : return "Rotate270";
9241       case SurfaceTransformFlagBitsKHR::eHorizontalMirror : return "HorizontalMirror";
9242       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 : return "HorizontalMirrorRotate90";
9243       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 : return "HorizontalMirrorRotate180";
9244       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 : return "HorizontalMirrorRotate270";
9245       case SurfaceTransformFlagBitsKHR::eInherit : return "Inherit";
9246       default: return "invalid";
9247     }
9248   }
9249 
9250   enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR
9251   {
9252     eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
9253     eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
9254     eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
9255   };
9256 
to_string(SwapchainCreateFlagBitsKHR value)9257   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value )
9258   {
9259     switch ( value )
9260     {
9261       case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
9262       case SwapchainCreateFlagBitsKHR::eProtected : return "Protected";
9263       case SwapchainCreateFlagBitsKHR::eMutableFormat : return "MutableFormat";
9264       default: return "invalid";
9265     }
9266   }
9267 
9268   enum class SystemAllocationScope
9269   {
9270     eCommand = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
9271     eObject = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
9272     eCache = VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
9273     eDevice = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
9274     eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
9275   };
9276 
to_string(SystemAllocationScope value)9277   VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value )
9278   {
9279     switch ( value )
9280     {
9281       case SystemAllocationScope::eCommand : return "Command";
9282       case SystemAllocationScope::eObject : return "Object";
9283       case SystemAllocationScope::eCache : return "Cache";
9284       case SystemAllocationScope::eDevice : return "Device";
9285       case SystemAllocationScope::eInstance : return "Instance";
9286       default: return "invalid";
9287     }
9288   }
9289 
9290   enum class TessellationDomainOrigin
9291   {
9292     eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
9293     eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
9294   };
9295   using TessellationDomainOriginKHR = TessellationDomainOrigin;
9296 
to_string(TessellationDomainOrigin value)9297   VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value )
9298   {
9299     switch ( value )
9300     {
9301       case TessellationDomainOrigin::eUpperLeft : return "UpperLeft";
9302       case TessellationDomainOrigin::eLowerLeft : return "LowerLeft";
9303       default: return "invalid";
9304     }
9305   }
9306 
9307   enum class TimeDomainEXT
9308   {
9309     eDevice = VK_TIME_DOMAIN_DEVICE_EXT,
9310     eClockMonotonic = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
9311     eClockMonotonicRaw = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
9312     eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
9313   };
9314 
to_string(TimeDomainEXT value)9315   VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value )
9316   {
9317     switch ( value )
9318     {
9319       case TimeDomainEXT::eDevice : return "Device";
9320       case TimeDomainEXT::eClockMonotonic : return "ClockMonotonic";
9321       case TimeDomainEXT::eClockMonotonicRaw : return "ClockMonotonicRaw";
9322       case TimeDomainEXT::eQueryPerformanceCounter : return "QueryPerformanceCounter";
9323       default: return "invalid";
9324     }
9325   }
9326 
9327   enum class ToolPurposeFlagBitsEXT : VkToolPurposeFlagsEXT
9328   {
9329     eValidation = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,
9330     eProfiling = VK_TOOL_PURPOSE_PROFILING_BIT_EXT,
9331     eTracing = VK_TOOL_PURPOSE_TRACING_BIT_EXT,
9332     eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,
9333     eModifyingFeatures = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,
9334     eDebugReporting = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
9335     eDebugMarkers = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
9336   };
9337 
to_string(ToolPurposeFlagBitsEXT value)9338   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBitsEXT value )
9339   {
9340     switch ( value )
9341     {
9342       case ToolPurposeFlagBitsEXT::eValidation : return "Validation";
9343       case ToolPurposeFlagBitsEXT::eProfiling : return "Profiling";
9344       case ToolPurposeFlagBitsEXT::eTracing : return "Tracing";
9345       case ToolPurposeFlagBitsEXT::eAdditionalFeatures : return "AdditionalFeatures";
9346       case ToolPurposeFlagBitsEXT::eModifyingFeatures : return "ModifyingFeatures";
9347       case ToolPurposeFlagBitsEXT::eDebugReporting : return "DebugReporting";
9348       case ToolPurposeFlagBitsEXT::eDebugMarkers : return "DebugMarkers";
9349       default: return "invalid";
9350     }
9351   }
9352 
9353   enum class ValidationCacheHeaderVersionEXT
9354   {
9355     eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
9356   };
9357 
to_string(ValidationCacheHeaderVersionEXT value)9358   VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value )
9359   {
9360     switch ( value )
9361     {
9362       case ValidationCacheHeaderVersionEXT::eOne : return "One";
9363       default: return "invalid";
9364     }
9365   }
9366 
9367   enum class ValidationCheckEXT
9368   {
9369     eAll = VK_VALIDATION_CHECK_ALL_EXT,
9370     eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
9371   };
9372 
to_string(ValidationCheckEXT value)9373   VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value )
9374   {
9375     switch ( value )
9376     {
9377       case ValidationCheckEXT::eAll : return "All";
9378       case ValidationCheckEXT::eShaders : return "Shaders";
9379       default: return "invalid";
9380     }
9381   }
9382 
9383   enum class ValidationFeatureDisableEXT
9384   {
9385     eAll = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
9386     eShaders = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
9387     eThreadSafety = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
9388     eApiParameters = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
9389     eObjectLifetimes = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
9390     eCoreChecks = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
9391     eUniqueHandles = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT
9392   };
9393 
to_string(ValidationFeatureDisableEXT value)9394   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value )
9395   {
9396     switch ( value )
9397     {
9398       case ValidationFeatureDisableEXT::eAll : return "All";
9399       case ValidationFeatureDisableEXT::eShaders : return "Shaders";
9400       case ValidationFeatureDisableEXT::eThreadSafety : return "ThreadSafety";
9401       case ValidationFeatureDisableEXT::eApiParameters : return "ApiParameters";
9402       case ValidationFeatureDisableEXT::eObjectLifetimes : return "ObjectLifetimes";
9403       case ValidationFeatureDisableEXT::eCoreChecks : return "CoreChecks";
9404       case ValidationFeatureDisableEXT::eUniqueHandles : return "UniqueHandles";
9405       default: return "invalid";
9406     }
9407   }
9408 
9409   enum class ValidationFeatureEnableEXT
9410   {
9411     eGpuAssisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
9412     eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
9413     eBestPractices = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
9414     eDebugPrintf = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,
9415     eSynchronizationValidation = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
9416   };
9417 
to_string(ValidationFeatureEnableEXT value)9418   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value )
9419   {
9420     switch ( value )
9421     {
9422       case ValidationFeatureEnableEXT::eGpuAssisted : return "GpuAssisted";
9423       case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot : return "GpuAssistedReserveBindingSlot";
9424       case ValidationFeatureEnableEXT::eBestPractices : return "BestPractices";
9425       case ValidationFeatureEnableEXT::eDebugPrintf : return "DebugPrintf";
9426       case ValidationFeatureEnableEXT::eSynchronizationValidation : return "SynchronizationValidation";
9427       default: return "invalid";
9428     }
9429   }
9430 
9431   enum class VendorId
9432   {
9433     eVIV = VK_VENDOR_ID_VIV,
9434     eVSI = VK_VENDOR_ID_VSI,
9435     eKazan = VK_VENDOR_ID_KAZAN,
9436     eCodeplay = VK_VENDOR_ID_CODEPLAY,
9437     eMESA = VK_VENDOR_ID_MESA
9438   };
9439 
to_string(VendorId value)9440   VULKAN_HPP_INLINE std::string to_string( VendorId value )
9441   {
9442     switch ( value )
9443     {
9444       case VendorId::eVIV : return "VIV";
9445       case VendorId::eVSI : return "VSI";
9446       case VendorId::eKazan : return "Kazan";
9447       case VendorId::eCodeplay : return "Codeplay";
9448       case VendorId::eMESA : return "MESA";
9449       default: return "invalid";
9450     }
9451   }
9452 
9453   enum class VertexInputRate
9454   {
9455     eVertex = VK_VERTEX_INPUT_RATE_VERTEX,
9456     eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
9457   };
9458 
to_string(VertexInputRate value)9459   VULKAN_HPP_INLINE std::string to_string( VertexInputRate value )
9460   {
9461     switch ( value )
9462     {
9463       case VertexInputRate::eVertex : return "Vertex";
9464       case VertexInputRate::eInstance : return "Instance";
9465       default: return "invalid";
9466     }
9467   }
9468 
9469   enum class ViewportCoordinateSwizzleNV
9470   {
9471     ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
9472     eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
9473     ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
9474     eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
9475     ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
9476     eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
9477     ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
9478     eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
9479   };
9480 
to_string(ViewportCoordinateSwizzleNV value)9481   VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value )
9482   {
9483     switch ( value )
9484     {
9485       case ViewportCoordinateSwizzleNV::ePositiveX : return "PositiveX";
9486       case ViewportCoordinateSwizzleNV::eNegativeX : return "NegativeX";
9487       case ViewportCoordinateSwizzleNV::ePositiveY : return "PositiveY";
9488       case ViewportCoordinateSwizzleNV::eNegativeY : return "NegativeY";
9489       case ViewportCoordinateSwizzleNV::ePositiveZ : return "PositiveZ";
9490       case ViewportCoordinateSwizzleNV::eNegativeZ : return "NegativeZ";
9491       case ViewportCoordinateSwizzleNV::ePositiveW : return "PositiveW";
9492       case ViewportCoordinateSwizzleNV::eNegativeW : return "NegativeW";
9493       default: return "invalid";
9494     }
9495   }
9496 
9497   template<typename T>
9498   struct IndexTypeValue
9499   {};
9500 
9501   template <>
9502   struct IndexTypeValue<uint16_t>
9503   {
9504     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16;
9505   };
9506 
9507   template <>
9508   struct CppType<IndexType, IndexType::eUint16>
9509   {
9510     using Type = uint16_t;
9511   };
9512 
9513   template <>
9514   struct IndexTypeValue<uint32_t>
9515   {
9516     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32;
9517   };
9518 
9519   template <>
9520   struct CppType<IndexType, IndexType::eUint32>
9521   {
9522     using Type = uint32_t;
9523   };
9524 
9525   template <>
9526   struct IndexTypeValue<uint8_t>
9527   {
9528     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT;
9529   };
9530 
9531   template <>
9532   struct CppType<IndexType, IndexType::eUint8EXT>
9533   {
9534     using Type = uint8_t;
9535   };
9536 
9537 
9538   using AccessFlags = Flags<AccessFlagBits>;
9539 
9540   template <> struct FlagTraits<AccessFlagBits>
9541   {
9542     enum : VkFlags
9543     {
9544       allFlags = VkFlags(AccessFlagBits::eIndirectCommandRead) | VkFlags(AccessFlagBits::eIndexRead) | VkFlags(AccessFlagBits::eVertexAttributeRead) | VkFlags(AccessFlagBits::eUniformRead) | VkFlags(AccessFlagBits::eInputAttachmentRead) | VkFlags(AccessFlagBits::eShaderRead) | VkFlags(AccessFlagBits::eShaderWrite) | VkFlags(AccessFlagBits::eColorAttachmentRead) | VkFlags(AccessFlagBits::eColorAttachmentWrite) | VkFlags(AccessFlagBits::eDepthStencilAttachmentRead) | VkFlags(AccessFlagBits::eDepthStencilAttachmentWrite) | VkFlags(AccessFlagBits::eTransferRead) | VkFlags(AccessFlagBits::eTransferWrite) | VkFlags(AccessFlagBits::eHostRead) | VkFlags(AccessFlagBits::eHostWrite) | VkFlags(AccessFlagBits::eMemoryRead) | VkFlags(AccessFlagBits::eMemoryWrite) | VkFlags(AccessFlagBits::eTransformFeedbackWriteEXT) | VkFlags(AccessFlagBits::eTransformFeedbackCounterReadEXT) | VkFlags(AccessFlagBits::eTransformFeedbackCounterWriteEXT) | VkFlags(AccessFlagBits::eConditionalRenderingReadEXT) | VkFlags(AccessFlagBits::eColorAttachmentReadNoncoherentEXT) | VkFlags(AccessFlagBits::eAccelerationStructureReadKHR) | VkFlags(AccessFlagBits::eAccelerationStructureWriteKHR) | VkFlags(AccessFlagBits::eShadingRateImageReadNV) | VkFlags(AccessFlagBits::eFragmentDensityMapReadEXT) | VkFlags(AccessFlagBits::eCommandPreprocessReadNV) | VkFlags(AccessFlagBits::eCommandPreprocessWriteNV)
9545     };
9546   };
9547 
operator |(AccessFlagBits bit0,AccessFlagBits bit1)9548   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9549   {
9550     return AccessFlags( bit0 ) | bit1;
9551   }
9552 
operator &(AccessFlagBits bit0,AccessFlagBits bit1)9553   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9554   {
9555     return AccessFlags( bit0 ) & bit1;
9556   }
9557 
operator ^(AccessFlagBits bit0,AccessFlagBits bit1)9558   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9559   {
9560     return AccessFlags( bit0 ) ^ bit1;
9561   }
9562 
operator ~(AccessFlagBits bits)9563   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator~( AccessFlagBits bits ) VULKAN_HPP_NOEXCEPT
9564   {
9565     return ~( AccessFlags( bits ) );
9566   }
9567 
to_string(AccessFlags value)9568   VULKAN_HPP_INLINE std::string to_string( AccessFlags value  )
9569   {
9570 
9571     if ( !value ) return "{}";
9572     std::string result;
9573 
9574     if ( value & AccessFlagBits::eIndirectCommandRead ) result += "IndirectCommandRead | ";
9575     if ( value & AccessFlagBits::eIndexRead ) result += "IndexRead | ";
9576     if ( value & AccessFlagBits::eVertexAttributeRead ) result += "VertexAttributeRead | ";
9577     if ( value & AccessFlagBits::eUniformRead ) result += "UniformRead | ";
9578     if ( value & AccessFlagBits::eInputAttachmentRead ) result += "InputAttachmentRead | ";
9579     if ( value & AccessFlagBits::eShaderRead ) result += "ShaderRead | ";
9580     if ( value & AccessFlagBits::eShaderWrite ) result += "ShaderWrite | ";
9581     if ( value & AccessFlagBits::eColorAttachmentRead ) result += "ColorAttachmentRead | ";
9582     if ( value & AccessFlagBits::eColorAttachmentWrite ) result += "ColorAttachmentWrite | ";
9583     if ( value & AccessFlagBits::eDepthStencilAttachmentRead ) result += "DepthStencilAttachmentRead | ";
9584     if ( value & AccessFlagBits::eDepthStencilAttachmentWrite ) result += "DepthStencilAttachmentWrite | ";
9585     if ( value & AccessFlagBits::eTransferRead ) result += "TransferRead | ";
9586     if ( value & AccessFlagBits::eTransferWrite ) result += "TransferWrite | ";
9587     if ( value & AccessFlagBits::eHostRead ) result += "HostRead | ";
9588     if ( value & AccessFlagBits::eHostWrite ) result += "HostWrite | ";
9589     if ( value & AccessFlagBits::eMemoryRead ) result += "MemoryRead | ";
9590     if ( value & AccessFlagBits::eMemoryWrite ) result += "MemoryWrite | ";
9591     if ( value & AccessFlagBits::eTransformFeedbackWriteEXT ) result += "TransformFeedbackWriteEXT | ";
9592     if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT ) result += "TransformFeedbackCounterReadEXT | ";
9593     if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT ) result += "TransformFeedbackCounterWriteEXT | ";
9594     if ( value & AccessFlagBits::eConditionalRenderingReadEXT ) result += "ConditionalRenderingReadEXT | ";
9595     if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) result += "ColorAttachmentReadNoncoherentEXT | ";
9596     if ( value & AccessFlagBits::eAccelerationStructureReadKHR ) result += "AccelerationStructureReadKHR | ";
9597     if ( value & AccessFlagBits::eAccelerationStructureWriteKHR ) result += "AccelerationStructureWriteKHR | ";
9598     if ( value & AccessFlagBits::eShadingRateImageReadNV ) result += "ShadingRateImageReadNV | ";
9599     if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) result += "FragmentDensityMapReadEXT | ";
9600     if ( value & AccessFlagBits::eCommandPreprocessReadNV ) result += "CommandPreprocessReadNV | ";
9601     if ( value & AccessFlagBits::eCommandPreprocessWriteNV ) result += "CommandPreprocessWriteNV | ";
9602     return "{ " + result.substr(0, result.size() - 3) + " }";
9603   }
9604 
9605 
9606   using AcquireProfilingLockFlagsKHR = Flags<AcquireProfilingLockFlagBitsKHR>;
9607 
to_string(AcquireProfilingLockFlagsKHR)9608   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR  )
9609   {
9610 
9611     return "{}";
9612   }
9613 
9614 #ifdef VK_USE_PLATFORM_ANDROID_KHR
9615   enum class AndroidSurfaceCreateFlagBitsKHR : VkFlags
9616   {};
9617 
to_string(AndroidSurfaceCreateFlagBitsKHR)9618   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR )
9619   {
9620     return "(void)";
9621   }
9622 
9623   using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR>;
9624 
to_string(AndroidSurfaceCreateFlagsKHR)9625   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR  )
9626   {
9627 
9628     return "{}";
9629   }
9630 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
9631 
9632 
9633   using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits>;
9634 
9635   template <> struct FlagTraits<AttachmentDescriptionFlagBits>
9636   {
9637     enum : VkFlags
9638     {
9639       allFlags = VkFlags(AttachmentDescriptionFlagBits::eMayAlias)
9640     };
9641   };
9642 
operator |(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9643   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9644   {
9645     return AttachmentDescriptionFlags( bit0 ) | bit1;
9646   }
9647 
operator &(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9648   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator&( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9649   {
9650     return AttachmentDescriptionFlags( bit0 ) & bit1;
9651   }
9652 
operator ^(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9653   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9654   {
9655     return AttachmentDescriptionFlags( bit0 ) ^ bit1;
9656   }
9657 
operator ~(AttachmentDescriptionFlagBits bits)9658   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT
9659   {
9660     return ~( AttachmentDescriptionFlags( bits ) );
9661   }
9662 
to_string(AttachmentDescriptionFlags value)9663   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value  )
9664   {
9665 
9666     if ( !value ) return "{}";
9667     std::string result;
9668 
9669     if ( value & AttachmentDescriptionFlagBits::eMayAlias ) result += "MayAlias | ";
9670     return "{ " + result.substr(0, result.size() - 3) + " }";
9671   }
9672 
9673 
9674   using BufferCreateFlags = Flags<BufferCreateFlagBits>;
9675 
9676   template <> struct FlagTraits<BufferCreateFlagBits>
9677   {
9678     enum : VkFlags
9679     {
9680       allFlags = VkFlags(BufferCreateFlagBits::eSparseBinding) | VkFlags(BufferCreateFlagBits::eSparseResidency) | VkFlags(BufferCreateFlagBits::eSparseAliased) | VkFlags(BufferCreateFlagBits::eProtected) | VkFlags(BufferCreateFlagBits::eDeviceAddressCaptureReplay)
9681     };
9682   };
9683 
operator |(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9684   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9685   {
9686     return BufferCreateFlags( bit0 ) | bit1;
9687   }
9688 
operator &(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9689   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9690   {
9691     return BufferCreateFlags( bit0 ) & bit1;
9692   }
9693 
operator ^(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9694   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9695   {
9696     return BufferCreateFlags( bit0 ) ^ bit1;
9697   }
9698 
operator ~(BufferCreateFlagBits bits)9699   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator~( BufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9700   {
9701     return ~( BufferCreateFlags( bits ) );
9702   }
9703 
to_string(BufferCreateFlags value)9704   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value  )
9705   {
9706 
9707     if ( !value ) return "{}";
9708     std::string result;
9709 
9710     if ( value & BufferCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
9711     if ( value & BufferCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
9712     if ( value & BufferCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
9713     if ( value & BufferCreateFlagBits::eProtected ) result += "Protected | ";
9714     if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | ";
9715     return "{ " + result.substr(0, result.size() - 3) + " }";
9716   }
9717 
9718 
9719   using BufferUsageFlags = Flags<BufferUsageFlagBits>;
9720 
9721   template <> struct FlagTraits<BufferUsageFlagBits>
9722   {
9723     enum : VkFlags
9724     {
9725       allFlags = VkFlags(BufferUsageFlagBits::eTransferSrc) | VkFlags(BufferUsageFlagBits::eTransferDst) | VkFlags(BufferUsageFlagBits::eUniformTexelBuffer) | VkFlags(BufferUsageFlagBits::eStorageTexelBuffer) | VkFlags(BufferUsageFlagBits::eUniformBuffer) | VkFlags(BufferUsageFlagBits::eStorageBuffer) | VkFlags(BufferUsageFlagBits::eIndexBuffer) | VkFlags(BufferUsageFlagBits::eVertexBuffer) | VkFlags(BufferUsageFlagBits::eIndirectBuffer) | VkFlags(BufferUsageFlagBits::eShaderDeviceAddress) | VkFlags(BufferUsageFlagBits::eTransformFeedbackBufferEXT) | VkFlags(BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT) | VkFlags(BufferUsageFlagBits::eConditionalRenderingEXT) | VkFlags(BufferUsageFlagBits::eRayTracingKHR)
9726     };
9727   };
9728 
operator |(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9729   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9730   {
9731     return BufferUsageFlags( bit0 ) | bit1;
9732   }
9733 
operator &(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9734   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9735   {
9736     return BufferUsageFlags( bit0 ) & bit1;
9737   }
9738 
operator ^(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9739   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9740   {
9741     return BufferUsageFlags( bit0 ) ^ bit1;
9742   }
9743 
operator ~(BufferUsageFlagBits bits)9744   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator~( BufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
9745   {
9746     return ~( BufferUsageFlags( bits ) );
9747   }
9748 
to_string(BufferUsageFlags value)9749   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value  )
9750   {
9751 
9752     if ( !value ) return "{}";
9753     std::string result;
9754 
9755     if ( value & BufferUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
9756     if ( value & BufferUsageFlagBits::eTransferDst ) result += "TransferDst | ";
9757     if ( value & BufferUsageFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
9758     if ( value & BufferUsageFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
9759     if ( value & BufferUsageFlagBits::eUniformBuffer ) result += "UniformBuffer | ";
9760     if ( value & BufferUsageFlagBits::eStorageBuffer ) result += "StorageBuffer | ";
9761     if ( value & BufferUsageFlagBits::eIndexBuffer ) result += "IndexBuffer | ";
9762     if ( value & BufferUsageFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
9763     if ( value & BufferUsageFlagBits::eIndirectBuffer ) result += "IndirectBuffer | ";
9764     if ( value & BufferUsageFlagBits::eShaderDeviceAddress ) result += "ShaderDeviceAddress | ";
9765     if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT ) result += "TransformFeedbackBufferEXT | ";
9766     if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) result += "TransformFeedbackCounterBufferEXT | ";
9767     if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
9768     if ( value & BufferUsageFlagBits::eRayTracingKHR ) result += "RayTracingKHR | ";
9769     return "{ " + result.substr(0, result.size() - 3) + " }";
9770   }
9771 
9772   enum class BufferViewCreateFlagBits : VkFlags
9773   {};
9774 
to_string(BufferViewCreateFlagBits)9775   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
9776   {
9777     return "(void)";
9778   }
9779 
9780   using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits>;
9781 
to_string(BufferViewCreateFlags)9782   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags  )
9783   {
9784 
9785     return "{}";
9786   }
9787 
9788 
9789   using BuildAccelerationStructureFlagsKHR = Flags<BuildAccelerationStructureFlagBitsKHR>;
9790 
9791   template <> struct FlagTraits<BuildAccelerationStructureFlagBitsKHR>
9792   {
9793     enum : VkFlags
9794     {
9795       allFlags = VkFlags(BuildAccelerationStructureFlagBitsKHR::eAllowUpdate) | VkFlags(BuildAccelerationStructureFlagBitsKHR::eAllowCompaction) | VkFlags(BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace) | VkFlags(BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild) | VkFlags(BuildAccelerationStructureFlagBitsKHR::eLowMemory)
9796     };
9797   };
9798 
operator |(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9799   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator|( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9800   {
9801     return BuildAccelerationStructureFlagsKHR( bit0 ) | bit1;
9802   }
9803 
operator &(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9804   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator&( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9805   {
9806     return BuildAccelerationStructureFlagsKHR( bit0 ) & bit1;
9807   }
9808 
operator ^(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9809   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator^( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9810   {
9811     return BuildAccelerationStructureFlagsKHR( bit0 ) ^ bit1;
9812   }
9813 
operator ~(BuildAccelerationStructureFlagBitsKHR bits)9814   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator~( BuildAccelerationStructureFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
9815   {
9816     return ~( BuildAccelerationStructureFlagsKHR( bits ) );
9817   }
9818 
9819   using BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
9820 
to_string(BuildAccelerationStructureFlagsKHR value)9821   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsKHR value  )
9822   {
9823 
9824     if ( !value ) return "{}";
9825     std::string result;
9826 
9827     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) result += "AllowUpdate | ";
9828     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) result += "AllowCompaction | ";
9829     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) result += "PreferFastTrace | ";
9830     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) result += "PreferFastBuild | ";
9831     if ( value & BuildAccelerationStructureFlagBitsKHR::eLowMemory ) result += "LowMemory | ";
9832     return "{ " + result.substr(0, result.size() - 3) + " }";
9833   }
9834 
9835 
9836   using ColorComponentFlags = Flags<ColorComponentFlagBits>;
9837 
9838   template <> struct FlagTraits<ColorComponentFlagBits>
9839   {
9840     enum : VkFlags
9841     {
9842       allFlags = VkFlags(ColorComponentFlagBits::eR) | VkFlags(ColorComponentFlagBits::eG) | VkFlags(ColorComponentFlagBits::eB) | VkFlags(ColorComponentFlagBits::eA)
9843     };
9844   };
9845 
operator |(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9846   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9847   {
9848     return ColorComponentFlags( bit0 ) | bit1;
9849   }
9850 
operator &(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9851   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator&( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9852   {
9853     return ColorComponentFlags( bit0 ) & bit1;
9854   }
9855 
operator ^(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9856   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9857   {
9858     return ColorComponentFlags( bit0 ) ^ bit1;
9859   }
9860 
operator ~(ColorComponentFlagBits bits)9861   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits ) VULKAN_HPP_NOEXCEPT
9862   {
9863     return ~( ColorComponentFlags( bits ) );
9864   }
9865 
to_string(ColorComponentFlags value)9866   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value  )
9867   {
9868 
9869     if ( !value ) return "{}";
9870     std::string result;
9871 
9872     if ( value & ColorComponentFlagBits::eR ) result += "R | ";
9873     if ( value & ColorComponentFlagBits::eG ) result += "G | ";
9874     if ( value & ColorComponentFlagBits::eB ) result += "B | ";
9875     if ( value & ColorComponentFlagBits::eA ) result += "A | ";
9876     return "{ " + result.substr(0, result.size() - 3) + " }";
9877   }
9878 
9879 
9880   using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits>;
9881 
9882   template <> struct FlagTraits<CommandBufferResetFlagBits>
9883   {
9884     enum : VkFlags
9885     {
9886       allFlags = VkFlags(CommandBufferResetFlagBits::eReleaseResources)
9887     };
9888   };
9889 
operator |(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9890   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9891   {
9892     return CommandBufferResetFlags( bit0 ) | bit1;
9893   }
9894 
operator &(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9895   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator&( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9896   {
9897     return CommandBufferResetFlags( bit0 ) & bit1;
9898   }
9899 
operator ^(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9900   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9901   {
9902     return CommandBufferResetFlags( bit0 ) ^ bit1;
9903   }
9904 
operator ~(CommandBufferResetFlagBits bits)9905   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits ) VULKAN_HPP_NOEXCEPT
9906   {
9907     return ~( CommandBufferResetFlags( bits ) );
9908   }
9909 
to_string(CommandBufferResetFlags value)9910   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value  )
9911   {
9912 
9913     if ( !value ) return "{}";
9914     std::string result;
9915 
9916     if ( value & CommandBufferResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
9917     return "{ " + result.substr(0, result.size() - 3) + " }";
9918   }
9919 
9920 
9921   using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits>;
9922 
9923   template <> struct FlagTraits<CommandBufferUsageFlagBits>
9924   {
9925     enum : VkFlags
9926     {
9927       allFlags = VkFlags(CommandBufferUsageFlagBits::eOneTimeSubmit) | VkFlags(CommandBufferUsageFlagBits::eRenderPassContinue) | VkFlags(CommandBufferUsageFlagBits::eSimultaneousUse)
9928     };
9929   };
9930 
operator |(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)9931   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9932   {
9933     return CommandBufferUsageFlags( bit0 ) | bit1;
9934   }
9935 
operator &(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)9936   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator&( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9937   {
9938     return CommandBufferUsageFlags( bit0 ) & bit1;
9939   }
9940 
operator ^(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)9941   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9942   {
9943     return CommandBufferUsageFlags( bit0 ) ^ bit1;
9944   }
9945 
operator ~(CommandBufferUsageFlagBits bits)9946   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
9947   {
9948     return ~( CommandBufferUsageFlags( bits ) );
9949   }
9950 
to_string(CommandBufferUsageFlags value)9951   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value  )
9952   {
9953 
9954     if ( !value ) return "{}";
9955     std::string result;
9956 
9957     if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) result += "OneTimeSubmit | ";
9958     if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) result += "RenderPassContinue | ";
9959     if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) result += "SimultaneousUse | ";
9960     return "{ " + result.substr(0, result.size() - 3) + " }";
9961   }
9962 
9963 
9964   using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits>;
9965 
9966   template <> struct FlagTraits<CommandPoolCreateFlagBits>
9967   {
9968     enum : VkFlags
9969     {
9970       allFlags = VkFlags(CommandPoolCreateFlagBits::eTransient) | VkFlags(CommandPoolCreateFlagBits::eResetCommandBuffer) | VkFlags(CommandPoolCreateFlagBits::eProtected)
9971     };
9972   };
9973 
operator |(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)9974   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9975   {
9976     return CommandPoolCreateFlags( bit0 ) | bit1;
9977   }
9978 
operator &(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)9979   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator&( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9980   {
9981     return CommandPoolCreateFlags( bit0 ) & bit1;
9982   }
9983 
operator ^(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)9984   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9985   {
9986     return CommandPoolCreateFlags( bit0 ) ^ bit1;
9987   }
9988 
operator ~(CommandPoolCreateFlagBits bits)9989   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9990   {
9991     return ~( CommandPoolCreateFlags( bits ) );
9992   }
9993 
to_string(CommandPoolCreateFlags value)9994   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value  )
9995   {
9996 
9997     if ( !value ) return "{}";
9998     std::string result;
9999 
10000     if ( value & CommandPoolCreateFlagBits::eTransient ) result += "Transient | ";
10001     if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) result += "ResetCommandBuffer | ";
10002     if ( value & CommandPoolCreateFlagBits::eProtected ) result += "Protected | ";
10003     return "{ " + result.substr(0, result.size() - 3) + " }";
10004   }
10005 
10006 
10007   using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits>;
10008 
10009   template <> struct FlagTraits<CommandPoolResetFlagBits>
10010   {
10011     enum : VkFlags
10012     {
10013       allFlags = VkFlags(CommandPoolResetFlagBits::eReleaseResources)
10014     };
10015   };
10016 
operator |(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10017   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10018   {
10019     return CommandPoolResetFlags( bit0 ) | bit1;
10020   }
10021 
operator &(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10022   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator&( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10023   {
10024     return CommandPoolResetFlags( bit0 ) & bit1;
10025   }
10026 
operator ^(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10027   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10028   {
10029     return CommandPoolResetFlags( bit0 ) ^ bit1;
10030   }
10031 
operator ~(CommandPoolResetFlagBits bits)10032   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits ) VULKAN_HPP_NOEXCEPT
10033   {
10034     return ~( CommandPoolResetFlags( bits ) );
10035   }
10036 
to_string(CommandPoolResetFlags value)10037   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value  )
10038   {
10039 
10040     if ( !value ) return "{}";
10041     std::string result;
10042 
10043     if ( value & CommandPoolResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
10044     return "{ " + result.substr(0, result.size() - 3) + " }";
10045   }
10046 
10047   enum class CommandPoolTrimFlagBits : VkFlags
10048   {};
10049 
to_string(CommandPoolTrimFlagBits)10050   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
10051   {
10052     return "(void)";
10053   }
10054 
10055   using CommandPoolTrimFlags = Flags<CommandPoolTrimFlagBits>;
10056 
10057   using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
10058 
to_string(CommandPoolTrimFlags)10059   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags  )
10060   {
10061 
10062     return "{}";
10063   }
10064 
10065 
10066   using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR>;
10067 
10068   template <> struct FlagTraits<CompositeAlphaFlagBitsKHR>
10069   {
10070     enum : VkFlags
10071     {
10072       allFlags = VkFlags(CompositeAlphaFlagBitsKHR::eOpaque) | VkFlags(CompositeAlphaFlagBitsKHR::ePreMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::ePostMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::eInherit)
10073     };
10074   };
10075 
operator |(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)10076   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10077   {
10078     return CompositeAlphaFlagsKHR( bit0 ) | bit1;
10079   }
10080 
operator &(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)10081   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator&( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10082   {
10083     return CompositeAlphaFlagsKHR( bit0 ) & bit1;
10084   }
10085 
operator ^(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)10086   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10087   {
10088     return CompositeAlphaFlagsKHR( bit0 ) ^ bit1;
10089   }
10090 
operator ~(CompositeAlphaFlagBitsKHR bits)10091   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10092   {
10093     return ~( CompositeAlphaFlagsKHR( bits ) );
10094   }
10095 
to_string(CompositeAlphaFlagsKHR value)10096   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value  )
10097   {
10098 
10099     if ( !value ) return "{}";
10100     std::string result;
10101 
10102     if ( value & CompositeAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
10103     if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) result += "PreMultiplied | ";
10104     if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) result += "PostMultiplied | ";
10105     if ( value & CompositeAlphaFlagBitsKHR::eInherit ) result += "Inherit | ";
10106     return "{ " + result.substr(0, result.size() - 3) + " }";
10107   }
10108 
10109 
10110   using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT>;
10111 
10112   template <> struct FlagTraits<ConditionalRenderingFlagBitsEXT>
10113   {
10114     enum : VkFlags
10115     {
10116       allFlags = VkFlags(ConditionalRenderingFlagBitsEXT::eInverted)
10117     };
10118   };
10119 
operator |(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10120   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10121   {
10122     return ConditionalRenderingFlagsEXT( bit0 ) | bit1;
10123   }
10124 
operator &(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10125   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator&( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10126   {
10127     return ConditionalRenderingFlagsEXT( bit0 ) & bit1;
10128   }
10129 
operator ^(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10130   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10131   {
10132     return ConditionalRenderingFlagsEXT( bit0 ) ^ bit1;
10133   }
10134 
operator ~(ConditionalRenderingFlagBitsEXT bits)10135   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10136   {
10137     return ~( ConditionalRenderingFlagsEXT( bits ) );
10138   }
10139 
to_string(ConditionalRenderingFlagsEXT value)10140   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value  )
10141   {
10142 
10143     if ( !value ) return "{}";
10144     std::string result;
10145 
10146     if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) result += "Inverted | ";
10147     return "{ " + result.substr(0, result.size() - 3) + " }";
10148   }
10149 
10150 
10151   using CullModeFlags = Flags<CullModeFlagBits>;
10152 
10153   template <> struct FlagTraits<CullModeFlagBits>
10154   {
10155     enum : VkFlags
10156     {
10157       allFlags = VkFlags(CullModeFlagBits::eNone) | VkFlags(CullModeFlagBits::eFront) | VkFlags(CullModeFlagBits::eBack) | VkFlags(CullModeFlagBits::eFrontAndBack)
10158     };
10159   };
10160 
operator |(CullModeFlagBits bit0,CullModeFlagBits bit1)10161   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10162   {
10163     return CullModeFlags( bit0 ) | bit1;
10164   }
10165 
operator &(CullModeFlagBits bit0,CullModeFlagBits bit1)10166   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10167   {
10168     return CullModeFlags( bit0 ) & bit1;
10169   }
10170 
operator ^(CullModeFlagBits bit0,CullModeFlagBits bit1)10171   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10172   {
10173     return CullModeFlags( bit0 ) ^ bit1;
10174   }
10175 
operator ~(CullModeFlagBits bits)10176   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator~( CullModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10177   {
10178     return ~( CullModeFlags( bits ) );
10179   }
10180 
to_string(CullModeFlags value)10181   VULKAN_HPP_INLINE std::string to_string( CullModeFlags value  )
10182   {
10183 
10184     if ( !value ) return "{}";
10185     std::string result;
10186 
10187     if ( value & CullModeFlagBits::eFront ) result += "Front | ";
10188     if ( value & CullModeFlagBits::eBack ) result += "Back | ";
10189     return "{ " + result.substr(0, result.size() - 3) + " }";
10190   }
10191 
10192 
10193   using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT>;
10194 
10195   template <> struct FlagTraits<DebugReportFlagBitsEXT>
10196   {
10197     enum : VkFlags
10198     {
10199       allFlags = VkFlags(DebugReportFlagBitsEXT::eInformation) | VkFlags(DebugReportFlagBitsEXT::eWarning) | VkFlags(DebugReportFlagBitsEXT::ePerformanceWarning) | VkFlags(DebugReportFlagBitsEXT::eError) | VkFlags(DebugReportFlagBitsEXT::eDebug)
10200     };
10201   };
10202 
operator |(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)10203   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10204   {
10205     return DebugReportFlagsEXT( bit0 ) | bit1;
10206   }
10207 
operator &(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)10208   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator&( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10209   {
10210     return DebugReportFlagsEXT( bit0 ) & bit1;
10211   }
10212 
operator ^(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)10213   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10214   {
10215     return DebugReportFlagsEXT( bit0 ) ^ bit1;
10216   }
10217 
operator ~(DebugReportFlagBitsEXT bits)10218   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10219   {
10220     return ~( DebugReportFlagsEXT( bits ) );
10221   }
10222 
to_string(DebugReportFlagsEXT value)10223   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value  )
10224   {
10225 
10226     if ( !value ) return "{}";
10227     std::string result;
10228 
10229     if ( value & DebugReportFlagBitsEXT::eInformation ) result += "Information | ";
10230     if ( value & DebugReportFlagBitsEXT::eWarning ) result += "Warning | ";
10231     if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) result += "PerformanceWarning | ";
10232     if ( value & DebugReportFlagBitsEXT::eError ) result += "Error | ";
10233     if ( value & DebugReportFlagBitsEXT::eDebug ) result += "Debug | ";
10234     return "{ " + result.substr(0, result.size() - 3) + " }";
10235   }
10236 
10237 
10238   using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT>;
10239 
10240   template <> struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
10241   {
10242     enum : VkFlags
10243     {
10244       allFlags = VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eVerbose) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eInfo) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eWarning) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eError)
10245     };
10246   };
10247 
operator |(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)10248   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10249   {
10250     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1;
10251   }
10252 
operator &(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)10253   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator&( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10254   {
10255     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) & bit1;
10256   }
10257 
operator ^(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)10258   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10259   {
10260     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) ^ bit1;
10261   }
10262 
operator ~(DebugUtilsMessageSeverityFlagBitsEXT bits)10263   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10264   {
10265     return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) );
10266   }
10267 
to_string(DebugUtilsMessageSeverityFlagsEXT value)10268   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value  )
10269   {
10270 
10271     if ( !value ) return "{}";
10272     std::string result;
10273 
10274     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) result += "Verbose | ";
10275     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) result += "Info | ";
10276     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) result += "Warning | ";
10277     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) result += "Error | ";
10278     return "{ " + result.substr(0, result.size() - 3) + " }";
10279   }
10280 
10281 
10282   using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT>;
10283 
10284   template <> struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
10285   {
10286     enum : VkFlags
10287     {
10288       allFlags = VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eGeneral) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eValidation) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::ePerformance)
10289     };
10290   };
10291 
operator |(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)10292   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10293   {
10294     return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1;
10295   }
10296 
operator &(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)10297   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator&( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10298   {
10299     return DebugUtilsMessageTypeFlagsEXT( bit0 ) & bit1;
10300   }
10301 
operator ^(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)10302   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10303   {
10304     return DebugUtilsMessageTypeFlagsEXT( bit0 ) ^ bit1;
10305   }
10306 
operator ~(DebugUtilsMessageTypeFlagBitsEXT bits)10307   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10308   {
10309     return ~( DebugUtilsMessageTypeFlagsEXT( bits ) );
10310   }
10311 
to_string(DebugUtilsMessageTypeFlagsEXT value)10312   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value  )
10313   {
10314 
10315     if ( !value ) return "{}";
10316     std::string result;
10317 
10318     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) result += "General | ";
10319     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) result += "Validation | ";
10320     if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) result += "Performance | ";
10321     return "{ " + result.substr(0, result.size() - 3) + " }";
10322   }
10323 
10324   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkFlags
10325   {};
10326 
to_string(DebugUtilsMessengerCallbackDataFlagBitsEXT)10327   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT )
10328   {
10329     return "(void)";
10330   }
10331 
10332   using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT>;
10333 
to_string(DebugUtilsMessengerCallbackDataFlagsEXT)10334   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT  )
10335   {
10336 
10337     return "{}";
10338   }
10339 
10340   enum class DebugUtilsMessengerCreateFlagBitsEXT : VkFlags
10341   {};
10342 
to_string(DebugUtilsMessengerCreateFlagBitsEXT)10343   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT )
10344   {
10345     return "(void)";
10346   }
10347 
10348   using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT>;
10349 
to_string(DebugUtilsMessengerCreateFlagsEXT)10350   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT  )
10351   {
10352 
10353     return "{}";
10354   }
10355 
10356 
10357   using DependencyFlags = Flags<DependencyFlagBits>;
10358 
10359   template <> struct FlagTraits<DependencyFlagBits>
10360   {
10361     enum : VkFlags
10362     {
10363       allFlags = VkFlags(DependencyFlagBits::eByRegion) | VkFlags(DependencyFlagBits::eDeviceGroup) | VkFlags(DependencyFlagBits::eViewLocal)
10364     };
10365   };
10366 
operator |(DependencyFlagBits bit0,DependencyFlagBits bit1)10367   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10368   {
10369     return DependencyFlags( bit0 ) | bit1;
10370   }
10371 
operator &(DependencyFlagBits bit0,DependencyFlagBits bit1)10372   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10373   {
10374     return DependencyFlags( bit0 ) & bit1;
10375   }
10376 
operator ^(DependencyFlagBits bit0,DependencyFlagBits bit1)10377   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10378   {
10379     return DependencyFlags( bit0 ) ^ bit1;
10380   }
10381 
operator ~(DependencyFlagBits bits)10382   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator~( DependencyFlagBits bits ) VULKAN_HPP_NOEXCEPT
10383   {
10384     return ~( DependencyFlags( bits ) );
10385   }
10386 
to_string(DependencyFlags value)10387   VULKAN_HPP_INLINE std::string to_string( DependencyFlags value  )
10388   {
10389 
10390     if ( !value ) return "{}";
10391     std::string result;
10392 
10393     if ( value & DependencyFlagBits::eByRegion ) result += "ByRegion | ";
10394     if ( value & DependencyFlagBits::eDeviceGroup ) result += "DeviceGroup | ";
10395     if ( value & DependencyFlagBits::eViewLocal ) result += "ViewLocal | ";
10396     return "{ " + result.substr(0, result.size() - 3) + " }";
10397   }
10398 
10399 
10400   using DescriptorBindingFlags = Flags<DescriptorBindingFlagBits>;
10401 
10402   template <> struct FlagTraits<DescriptorBindingFlagBits>
10403   {
10404     enum : VkFlags
10405     {
10406       allFlags = VkFlags(DescriptorBindingFlagBits::eUpdateAfterBind) | VkFlags(DescriptorBindingFlagBits::eUpdateUnusedWhilePending) | VkFlags(DescriptorBindingFlagBits::ePartiallyBound) | VkFlags(DescriptorBindingFlagBits::eVariableDescriptorCount)
10407     };
10408   };
10409 
operator |(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)10410   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10411   {
10412     return DescriptorBindingFlags( bit0 ) | bit1;
10413   }
10414 
operator &(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)10415   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator&( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10416   {
10417     return DescriptorBindingFlags( bit0 ) & bit1;
10418   }
10419 
operator ^(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)10420   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10421   {
10422     return DescriptorBindingFlags( bit0 ) ^ bit1;
10423   }
10424 
operator ~(DescriptorBindingFlagBits bits)10425   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits ) VULKAN_HPP_NOEXCEPT
10426   {
10427     return ~( DescriptorBindingFlags( bits ) );
10428   }
10429 
10430   using DescriptorBindingFlagsEXT = DescriptorBindingFlags;
10431 
to_string(DescriptorBindingFlags value)10432   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value  )
10433   {
10434 
10435     if ( !value ) return "{}";
10436     std::string result;
10437 
10438     if ( value & DescriptorBindingFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | ";
10439     if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) result += "UpdateUnusedWhilePending | ";
10440     if ( value & DescriptorBindingFlagBits::ePartiallyBound ) result += "PartiallyBound | ";
10441     if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount ) result += "VariableDescriptorCount | ";
10442     return "{ " + result.substr(0, result.size() - 3) + " }";
10443   }
10444 
10445 
10446   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits>;
10447 
10448   template <> struct FlagTraits<DescriptorPoolCreateFlagBits>
10449   {
10450     enum : VkFlags
10451     {
10452       allFlags = VkFlags(DescriptorPoolCreateFlagBits::eFreeDescriptorSet) | VkFlags(DescriptorPoolCreateFlagBits::eUpdateAfterBind)
10453     };
10454   };
10455 
operator |(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10456   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10457   {
10458     return DescriptorPoolCreateFlags( bit0 ) | bit1;
10459   }
10460 
operator &(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10461   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator&( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10462   {
10463     return DescriptorPoolCreateFlags( bit0 ) & bit1;
10464   }
10465 
operator ^(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10466   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10467   {
10468     return DescriptorPoolCreateFlags( bit0 ) ^ bit1;
10469   }
10470 
operator ~(DescriptorPoolCreateFlagBits bits)10471   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10472   {
10473     return ~( DescriptorPoolCreateFlags( bits ) );
10474   }
10475 
to_string(DescriptorPoolCreateFlags value)10476   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value  )
10477   {
10478 
10479     if ( !value ) return "{}";
10480     std::string result;
10481 
10482     if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) result += "FreeDescriptorSet | ";
10483     if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | ";
10484     return "{ " + result.substr(0, result.size() - 3) + " }";
10485   }
10486 
10487   enum class DescriptorPoolResetFlagBits : VkFlags
10488   {};
10489 
to_string(DescriptorPoolResetFlagBits)10490   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
10491   {
10492     return "(void)";
10493   }
10494 
10495   using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits>;
10496 
to_string(DescriptorPoolResetFlags)10497   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags  )
10498   {
10499 
10500     return "{}";
10501   }
10502 
10503 
10504   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits>;
10505 
10506   template <> struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
10507   {
10508     enum : VkFlags
10509     {
10510       allFlags = VkFlags(DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool) | VkFlags(DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR)
10511     };
10512   };
10513 
operator |(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10514   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10515   {
10516     return DescriptorSetLayoutCreateFlags( bit0 ) | bit1;
10517   }
10518 
operator &(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10519   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator&( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10520   {
10521     return DescriptorSetLayoutCreateFlags( bit0 ) & bit1;
10522   }
10523 
operator ^(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10524   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10525   {
10526     return DescriptorSetLayoutCreateFlags( bit0 ) ^ bit1;
10527   }
10528 
operator ~(DescriptorSetLayoutCreateFlagBits bits)10529   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10530   {
10531     return ~( DescriptorSetLayoutCreateFlags( bits ) );
10532   }
10533 
to_string(DescriptorSetLayoutCreateFlags value)10534   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value  )
10535   {
10536 
10537     if ( !value ) return "{}";
10538     std::string result;
10539 
10540     if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) result += "UpdateAfterBindPool | ";
10541     if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) result += "PushDescriptorKHR | ";
10542     return "{ " + result.substr(0, result.size() - 3) + " }";
10543   }
10544 
10545   enum class DescriptorUpdateTemplateCreateFlagBits : VkFlags
10546   {};
10547 
to_string(DescriptorUpdateTemplateCreateFlagBits)10548   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
10549   {
10550     return "(void)";
10551   }
10552 
10553   using DescriptorUpdateTemplateCreateFlags = Flags<DescriptorUpdateTemplateCreateFlagBits>;
10554 
10555   using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
10556 
to_string(DescriptorUpdateTemplateCreateFlags)10557   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags  )
10558   {
10559 
10560     return "{}";
10561   }
10562 
10563 
10564   using DeviceCreateFlags = Flags<DeviceCreateFlagBits>;
10565 
to_string(DeviceCreateFlags)10566   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags  )
10567   {
10568 
10569     return "{}";
10570   }
10571 
10572 
10573   using DeviceDiagnosticsConfigFlagsNV = Flags<DeviceDiagnosticsConfigFlagBitsNV>;
10574 
10575   template <> struct FlagTraits<DeviceDiagnosticsConfigFlagBitsNV>
10576   {
10577     enum : VkFlags
10578     {
10579       allFlags = VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo) | VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking) | VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints)
10580     };
10581   };
10582 
operator |(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10583   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator|( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10584   {
10585     return DeviceDiagnosticsConfigFlagsNV( bit0 ) | bit1;
10586   }
10587 
operator &(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10588   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator&( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10589   {
10590     return DeviceDiagnosticsConfigFlagsNV( bit0 ) & bit1;
10591   }
10592 
operator ^(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10593   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator^( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10594   {
10595     return DeviceDiagnosticsConfigFlagsNV( bit0 ) ^ bit1;
10596   }
10597 
operator ~(DeviceDiagnosticsConfigFlagBitsNV bits)10598   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator~( DeviceDiagnosticsConfigFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
10599   {
10600     return ~( DeviceDiagnosticsConfigFlagsNV( bits ) );
10601   }
10602 
to_string(DeviceDiagnosticsConfigFlagsNV value)10603   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagsNV value  )
10604   {
10605 
10606     if ( !value ) return "{}";
10607     std::string result;
10608 
10609     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) result += "EnableShaderDebugInfo | ";
10610     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) result += "EnableResourceTracking | ";
10611     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints ) result += "EnableAutomaticCheckpoints | ";
10612     return "{ " + result.substr(0, result.size() - 3) + " }";
10613   }
10614 
10615 
10616   using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR>;
10617 
10618   template <> struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
10619   {
10620     enum : VkFlags
10621     {
10622       allFlags = VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocal) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eRemote) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eSum) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice)
10623     };
10624   };
10625 
operator |(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10626   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10627   {
10628     return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1;
10629   }
10630 
operator &(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10631   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator&( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10632   {
10633     return DeviceGroupPresentModeFlagsKHR( bit0 ) & bit1;
10634   }
10635 
operator ^(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10636   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10637   {
10638     return DeviceGroupPresentModeFlagsKHR( bit0 ) ^ bit1;
10639   }
10640 
operator ~(DeviceGroupPresentModeFlagBitsKHR bits)10641   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10642   {
10643     return ~( DeviceGroupPresentModeFlagsKHR( bits ) );
10644   }
10645 
to_string(DeviceGroupPresentModeFlagsKHR value)10646   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value  )
10647   {
10648 
10649     if ( !value ) return "{}";
10650     std::string result;
10651 
10652     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal ) result += "Local | ";
10653     if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) result += "Remote | ";
10654     if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) result += "Sum | ";
10655     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) result += "LocalMultiDevice | ";
10656     return "{ " + result.substr(0, result.size() - 3) + " }";
10657   }
10658 
10659   enum class DeviceMemoryReportFlagBitsEXT : VkFlags
10660   {};
10661 
to_string(DeviceMemoryReportFlagBitsEXT)10662   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagBitsEXT )
10663   {
10664     return "(void)";
10665   }
10666 
10667   using DeviceMemoryReportFlagsEXT = Flags<DeviceMemoryReportFlagBitsEXT>;
10668 
to_string(DeviceMemoryReportFlagsEXT)10669   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagsEXT  )
10670   {
10671 
10672     return "{}";
10673   }
10674 
10675 
10676   using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
10677 
10678   template <> struct FlagTraits<DeviceQueueCreateFlagBits>
10679   {
10680     enum : VkFlags
10681     {
10682       allFlags = VkFlags(DeviceQueueCreateFlagBits::eProtected)
10683     };
10684   };
10685 
operator |(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10686   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10687   {
10688     return DeviceQueueCreateFlags( bit0 ) | bit1;
10689   }
10690 
operator &(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10691   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator&( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10692   {
10693     return DeviceQueueCreateFlags( bit0 ) & bit1;
10694   }
10695 
operator ^(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10696   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10697   {
10698     return DeviceQueueCreateFlags( bit0 ) ^ bit1;
10699   }
10700 
operator ~(DeviceQueueCreateFlagBits bits)10701   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10702   {
10703     return ~( DeviceQueueCreateFlags( bits ) );
10704   }
10705 
to_string(DeviceQueueCreateFlags value)10706   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value  )
10707   {
10708 
10709     if ( !value ) return "{}";
10710     std::string result;
10711 
10712     if ( value & DeviceQueueCreateFlagBits::eProtected ) result += "Protected | ";
10713     return "{ " + result.substr(0, result.size() - 3) + " }";
10714   }
10715 
10716 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
10717   enum class DirectFBSurfaceCreateFlagBitsEXT : VkFlags
10718   {};
10719 
to_string(DirectFBSurfaceCreateFlagBitsEXT)10720   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagBitsEXT )
10721   {
10722     return "(void)";
10723   }
10724 
10725   using DirectFBSurfaceCreateFlagsEXT = Flags<DirectFBSurfaceCreateFlagBitsEXT>;
10726 
to_string(DirectFBSurfaceCreateFlagsEXT)10727   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagsEXT  )
10728   {
10729 
10730     return "{}";
10731   }
10732 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
10733 
10734   enum class DisplayModeCreateFlagBitsKHR : VkFlags
10735   {};
10736 
to_string(DisplayModeCreateFlagBitsKHR)10737   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR )
10738   {
10739     return "(void)";
10740   }
10741 
10742   using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR>;
10743 
to_string(DisplayModeCreateFlagsKHR)10744   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR  )
10745   {
10746 
10747     return "{}";
10748   }
10749 
10750 
10751   using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR>;
10752 
10753   template <> struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
10754   {
10755     enum : VkFlags
10756     {
10757       allFlags = VkFlags(DisplayPlaneAlphaFlagBitsKHR::eOpaque) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::eGlobal) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixel) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied)
10758     };
10759   };
10760 
operator |(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10761   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10762   {
10763     return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1;
10764   }
10765 
operator &(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10766   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator&( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10767   {
10768     return DisplayPlaneAlphaFlagsKHR( bit0 ) & bit1;
10769   }
10770 
operator ^(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10771   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10772   {
10773     return DisplayPlaneAlphaFlagsKHR( bit0 ) ^ bit1;
10774   }
10775 
operator ~(DisplayPlaneAlphaFlagBitsKHR bits)10776   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10777   {
10778     return ~( DisplayPlaneAlphaFlagsKHR( bits ) );
10779   }
10780 
to_string(DisplayPlaneAlphaFlagsKHR value)10781   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value  )
10782   {
10783 
10784     if ( !value ) return "{}";
10785     std::string result;
10786 
10787     if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
10788     if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) result += "Global | ";
10789     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) result += "PerPixel | ";
10790     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) result += "PerPixelPremultiplied | ";
10791     return "{ " + result.substr(0, result.size() - 3) + " }";
10792   }
10793 
10794   enum class DisplaySurfaceCreateFlagBitsKHR : VkFlags
10795   {};
10796 
to_string(DisplaySurfaceCreateFlagBitsKHR)10797   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR )
10798   {
10799     return "(void)";
10800   }
10801 
10802   using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR>;
10803 
to_string(DisplaySurfaceCreateFlagsKHR)10804   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR  )
10805   {
10806 
10807     return "{}";
10808   }
10809 
10810   enum class EventCreateFlagBits : VkFlags
10811   {};
10812 
to_string(EventCreateFlagBits)10813   VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits )
10814   {
10815     return "(void)";
10816   }
10817 
10818   using EventCreateFlags = Flags<EventCreateFlagBits>;
10819 
to_string(EventCreateFlags)10820   VULKAN_HPP_INLINE std::string to_string( EventCreateFlags  )
10821   {
10822 
10823     return "{}";
10824   }
10825 
10826 
10827   using ExternalFenceFeatureFlags = Flags<ExternalFenceFeatureFlagBits>;
10828 
10829   template <> struct FlagTraits<ExternalFenceFeatureFlagBits>
10830   {
10831     enum : VkFlags
10832     {
10833       allFlags = VkFlags(ExternalFenceFeatureFlagBits::eExportable) | VkFlags(ExternalFenceFeatureFlagBits::eImportable)
10834     };
10835   };
10836 
operator |(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10837   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10838   {
10839     return ExternalFenceFeatureFlags( bit0 ) | bit1;
10840   }
10841 
operator &(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10842   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator&( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10843   {
10844     return ExternalFenceFeatureFlags( bit0 ) & bit1;
10845   }
10846 
operator ^(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10847   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10848   {
10849     return ExternalFenceFeatureFlags( bit0 ) ^ bit1;
10850   }
10851 
operator ~(ExternalFenceFeatureFlagBits bits)10852   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
10853   {
10854     return ~( ExternalFenceFeatureFlags( bits ) );
10855   }
10856 
10857   using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
10858 
to_string(ExternalFenceFeatureFlags value)10859   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value  )
10860   {
10861 
10862     if ( !value ) return "{}";
10863     std::string result;
10864 
10865     if ( value & ExternalFenceFeatureFlagBits::eExportable ) result += "Exportable | ";
10866     if ( value & ExternalFenceFeatureFlagBits::eImportable ) result += "Importable | ";
10867     return "{ " + result.substr(0, result.size() - 3) + " }";
10868   }
10869 
10870 
10871   using ExternalFenceHandleTypeFlags = Flags<ExternalFenceHandleTypeFlagBits>;
10872 
10873   template <> struct FlagTraits<ExternalFenceHandleTypeFlagBits>
10874   {
10875     enum : VkFlags
10876     {
10877       allFlags = VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalFenceHandleTypeFlagBits::eSyncFd)
10878     };
10879   };
10880 
operator |(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10881   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10882   {
10883     return ExternalFenceHandleTypeFlags( bit0 ) | bit1;
10884   }
10885 
operator &(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10886   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator&( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10887   {
10888     return ExternalFenceHandleTypeFlags( bit0 ) & bit1;
10889   }
10890 
operator ^(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10891   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10892   {
10893     return ExternalFenceHandleTypeFlags( bit0 ) ^ bit1;
10894   }
10895 
operator ~(ExternalFenceHandleTypeFlagBits bits)10896   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10897   {
10898     return ~( ExternalFenceHandleTypeFlags( bits ) );
10899   }
10900 
10901   using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
10902 
to_string(ExternalFenceHandleTypeFlags value)10903   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value  )
10904   {
10905 
10906     if ( !value ) return "{}";
10907     std::string result;
10908 
10909     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
10910     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
10911     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
10912     if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
10913     return "{ " + result.substr(0, result.size() - 3) + " }";
10914   }
10915 
10916 
10917   using ExternalMemoryFeatureFlags = Flags<ExternalMemoryFeatureFlagBits>;
10918 
10919   template <> struct FlagTraits<ExternalMemoryFeatureFlagBits>
10920   {
10921     enum : VkFlags
10922     {
10923       allFlags = VkFlags(ExternalMemoryFeatureFlagBits::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBits::eExportable) | VkFlags(ExternalMemoryFeatureFlagBits::eImportable)
10924     };
10925   };
10926 
operator |(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10927   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10928   {
10929     return ExternalMemoryFeatureFlags( bit0 ) | bit1;
10930   }
10931 
operator &(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10932   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator&( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10933   {
10934     return ExternalMemoryFeatureFlags( bit0 ) & bit1;
10935   }
10936 
operator ^(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10937   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10938   {
10939     return ExternalMemoryFeatureFlags( bit0 ) ^ bit1;
10940   }
10941 
operator ~(ExternalMemoryFeatureFlagBits bits)10942   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
10943   {
10944     return ~( ExternalMemoryFeatureFlags( bits ) );
10945   }
10946 
10947   using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
10948 
to_string(ExternalMemoryFeatureFlags value)10949   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value  )
10950   {
10951 
10952     if ( !value ) return "{}";
10953     std::string result;
10954 
10955     if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) result += "DedicatedOnly | ";
10956     if ( value & ExternalMemoryFeatureFlagBits::eExportable ) result += "Exportable | ";
10957     if ( value & ExternalMemoryFeatureFlagBits::eImportable ) result += "Importable | ";
10958     return "{ " + result.substr(0, result.size() - 3) + " }";
10959   }
10960 
10961 
10962   using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV>;
10963 
10964   template <> struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
10965   {
10966     enum : VkFlags
10967     {
10968       allFlags = VkFlags(ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eExportable) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eImportable)
10969     };
10970   };
10971 
operator |(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)10972   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10973   {
10974     return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1;
10975   }
10976 
operator &(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)10977   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator&( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10978   {
10979     return ExternalMemoryFeatureFlagsNV( bit0 ) & bit1;
10980   }
10981 
operator ^(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)10982   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10983   {
10984     return ExternalMemoryFeatureFlagsNV( bit0 ) ^ bit1;
10985   }
10986 
operator ~(ExternalMemoryFeatureFlagBitsNV bits)10987   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
10988   {
10989     return ~( ExternalMemoryFeatureFlagsNV( bits ) );
10990   }
10991 
to_string(ExternalMemoryFeatureFlagsNV value)10992   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value  )
10993   {
10994 
10995     if ( !value ) return "{}";
10996     std::string result;
10997 
10998     if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) result += "DedicatedOnly | ";
10999     if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) result += "Exportable | ";
11000     if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) result += "Importable | ";
11001     return "{ " + result.substr(0, result.size() - 3) + " }";
11002   }
11003 
11004 
11005   using ExternalMemoryHandleTypeFlags = Flags<ExternalMemoryHandleTypeFlagBits>;
11006 
11007   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
11008   {
11009     enum : VkFlags
11010     {
11011       allFlags = VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11Texture) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Heap) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Resource) | VkFlags(ExternalMemoryHandleTypeFlagBits::eDmaBufEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT)
11012     };
11013   };
11014 
operator |(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11015   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11016   {
11017     return ExternalMemoryHandleTypeFlags( bit0 ) | bit1;
11018   }
11019 
operator &(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11020   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator&( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11021   {
11022     return ExternalMemoryHandleTypeFlags( bit0 ) & bit1;
11023   }
11024 
operator ^(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11025   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11026   {
11027     return ExternalMemoryHandleTypeFlags( bit0 ) ^ bit1;
11028   }
11029 
operator ~(ExternalMemoryHandleTypeFlagBits bits)11030   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11031   {
11032     return ~( ExternalMemoryHandleTypeFlags( bits ) );
11033   }
11034 
11035   using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
11036 
to_string(ExternalMemoryHandleTypeFlags value)11037   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value  )
11038   {
11039 
11040     if ( !value ) return "{}";
11041     std::string result;
11042 
11043     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
11044     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
11045     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
11046     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) result += "D3D11Texture | ";
11047     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) result += "D3D11TextureKmt | ";
11048     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) result += "D3D12Heap | ";
11049     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) result += "D3D12Resource | ";
11050     if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) result += "DmaBufEXT | ";
11051     if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) result += "AndroidHardwareBufferANDROID | ";
11052     if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) result += "HostAllocationEXT | ";
11053     if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) result += "HostMappedForeignMemoryEXT | ";
11054     return "{ " + result.substr(0, result.size() - 3) + " }";
11055   }
11056 
11057 
11058   using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV>;
11059 
11060   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
11061   {
11062     enum : VkFlags
11063     {
11064       allFlags = VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt)
11065     };
11066   };
11067 
operator |(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)11068   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11069   {
11070     return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1;
11071   }
11072 
operator &(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)11073   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator&( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11074   {
11075     return ExternalMemoryHandleTypeFlagsNV( bit0 ) & bit1;
11076   }
11077 
operator ^(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)11078   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11079   {
11080     return ExternalMemoryHandleTypeFlagsNV( bit0 ) ^ bit1;
11081   }
11082 
operator ~(ExternalMemoryHandleTypeFlagBitsNV bits)11083   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11084   {
11085     return ~( ExternalMemoryHandleTypeFlagsNV( bits ) );
11086   }
11087 
to_string(ExternalMemoryHandleTypeFlagsNV value)11088   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value  )
11089   {
11090 
11091     if ( !value ) return "{}";
11092     std::string result;
11093 
11094     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) result += "OpaqueWin32 | ";
11095     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
11096     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) result += "D3D11Image | ";
11097     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) result += "D3D11ImageKmt | ";
11098     return "{ " + result.substr(0, result.size() - 3) + " }";
11099   }
11100 
11101 
11102   using ExternalSemaphoreFeatureFlags = Flags<ExternalSemaphoreFeatureFlagBits>;
11103 
11104   template <> struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
11105   {
11106     enum : VkFlags
11107     {
11108       allFlags = VkFlags(ExternalSemaphoreFeatureFlagBits::eExportable) | VkFlags(ExternalSemaphoreFeatureFlagBits::eImportable)
11109     };
11110   };
11111 
operator |(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11112   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11113   {
11114     return ExternalSemaphoreFeatureFlags( bit0 ) | bit1;
11115   }
11116 
operator &(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11117   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator&( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11118   {
11119     return ExternalSemaphoreFeatureFlags( bit0 ) & bit1;
11120   }
11121 
operator ^(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11122   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11123   {
11124     return ExternalSemaphoreFeatureFlags( bit0 ) ^ bit1;
11125   }
11126 
operator ~(ExternalSemaphoreFeatureFlagBits bits)11127   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11128   {
11129     return ~( ExternalSemaphoreFeatureFlags( bits ) );
11130   }
11131 
11132   using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
11133 
to_string(ExternalSemaphoreFeatureFlags value)11134   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value  )
11135   {
11136 
11137     if ( !value ) return "{}";
11138     std::string result;
11139 
11140     if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) result += "Exportable | ";
11141     if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) result += "Importable | ";
11142     return "{ " + result.substr(0, result.size() - 3) + " }";
11143   }
11144 
11145 
11146   using ExternalSemaphoreHandleTypeFlags = Flags<ExternalSemaphoreHandleTypeFlagBits>;
11147 
11148   template <> struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
11149   {
11150     enum : VkFlags
11151     {
11152       allFlags = VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eSyncFd)
11153     };
11154   };
11155 
operator |(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11156   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11157   {
11158     return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1;
11159   }
11160 
operator &(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11161   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator&( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11162   {
11163     return ExternalSemaphoreHandleTypeFlags( bit0 ) & bit1;
11164   }
11165 
operator ^(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11166   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11167   {
11168     return ExternalSemaphoreHandleTypeFlags( bit0 ) ^ bit1;
11169   }
11170 
operator ~(ExternalSemaphoreHandleTypeFlagBits bits)11171   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11172   {
11173     return ~( ExternalSemaphoreHandleTypeFlags( bits ) );
11174   }
11175 
11176   using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
11177 
to_string(ExternalSemaphoreHandleTypeFlags value)11178   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value  )
11179   {
11180 
11181     if ( !value ) return "{}";
11182     std::string result;
11183 
11184     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
11185     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
11186     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
11187     if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) result += "D3D12Fence | ";
11188     if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
11189     return "{ " + result.substr(0, result.size() - 3) + " }";
11190   }
11191 
11192 
11193   using FenceCreateFlags = Flags<FenceCreateFlagBits>;
11194 
11195   template <> struct FlagTraits<FenceCreateFlagBits>
11196   {
11197     enum : VkFlags
11198     {
11199       allFlags = VkFlags(FenceCreateFlagBits::eSignaled)
11200     };
11201   };
11202 
operator |(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)11203   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11204   {
11205     return FenceCreateFlags( bit0 ) | bit1;
11206   }
11207 
operator &(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)11208   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11209   {
11210     return FenceCreateFlags( bit0 ) & bit1;
11211   }
11212 
operator ^(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)11213   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11214   {
11215     return FenceCreateFlags( bit0 ) ^ bit1;
11216   }
11217 
operator ~(FenceCreateFlagBits bits)11218   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator~( FenceCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11219   {
11220     return ~( FenceCreateFlags( bits ) );
11221   }
11222 
to_string(FenceCreateFlags value)11223   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value  )
11224   {
11225 
11226     if ( !value ) return "{}";
11227     std::string result;
11228 
11229     if ( value & FenceCreateFlagBits::eSignaled ) result += "Signaled | ";
11230     return "{ " + result.substr(0, result.size() - 3) + " }";
11231   }
11232 
11233 
11234   using FenceImportFlags = Flags<FenceImportFlagBits>;
11235 
11236   template <> struct FlagTraits<FenceImportFlagBits>
11237   {
11238     enum : VkFlags
11239     {
11240       allFlags = VkFlags(FenceImportFlagBits::eTemporary)
11241     };
11242   };
11243 
operator |(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11244   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11245   {
11246     return FenceImportFlags( bit0 ) | bit1;
11247   }
11248 
operator &(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11249   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11250   {
11251     return FenceImportFlags( bit0 ) & bit1;
11252   }
11253 
operator ^(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11254   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11255   {
11256     return FenceImportFlags( bit0 ) ^ bit1;
11257   }
11258 
operator ~(FenceImportFlagBits bits)11259   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator~( FenceImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
11260   {
11261     return ~( FenceImportFlags( bits ) );
11262   }
11263 
11264   using FenceImportFlagsKHR = FenceImportFlags;
11265 
to_string(FenceImportFlags value)11266   VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value  )
11267   {
11268 
11269     if ( !value ) return "{}";
11270     std::string result;
11271 
11272     if ( value & FenceImportFlagBits::eTemporary ) result += "Temporary | ";
11273     return "{ " + result.substr(0, result.size() - 3) + " }";
11274   }
11275 
11276 
11277   using FormatFeatureFlags = Flags<FormatFeatureFlagBits>;
11278 
11279   template <> struct FlagTraits<FormatFeatureFlagBits>
11280   {
11281     enum : VkFlags
11282     {
11283       allFlags = VkFlags(FormatFeatureFlagBits::eSampledImage) | VkFlags(FormatFeatureFlagBits::eStorageImage) | VkFlags(FormatFeatureFlagBits::eStorageImageAtomic) | VkFlags(FormatFeatureFlagBits::eUniformTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBufferAtomic) | VkFlags(FormatFeatureFlagBits::eVertexBuffer) | VkFlags(FormatFeatureFlagBits::eColorAttachment) | VkFlags(FormatFeatureFlagBits::eColorAttachmentBlend) | VkFlags(FormatFeatureFlagBits::eDepthStencilAttachment) | VkFlags(FormatFeatureFlagBits::eBlitSrc) | VkFlags(FormatFeatureFlagBits::eBlitDst) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterLinear) | VkFlags(FormatFeatureFlagBits::eTransferSrc) | VkFlags(FormatFeatureFlagBits::eTransferDst) | VkFlags(FormatFeatureFlagBits::eMidpointChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable) | VkFlags(FormatFeatureFlagBits::eDisjoint) | VkFlags(FormatFeatureFlagBits::eCositedChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterMinmax) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterCubicIMG) | VkFlags(FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR) | VkFlags(FormatFeatureFlagBits::eFragmentDensityMapEXT) | VkFlags(FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR)
11284     };
11285   };
11286 
operator |(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)11287   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11288   {
11289     return FormatFeatureFlags( bit0 ) | bit1;
11290   }
11291 
operator &(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)11292   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11293   {
11294     return FormatFeatureFlags( bit0 ) & bit1;
11295   }
11296 
operator ^(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)11297   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11298   {
11299     return FormatFeatureFlags( bit0 ) ^ bit1;
11300   }
11301 
operator ~(FormatFeatureFlagBits bits)11302   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator~( FormatFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11303   {
11304     return ~( FormatFeatureFlags( bits ) );
11305   }
11306 
to_string(FormatFeatureFlags value)11307   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value  )
11308   {
11309 
11310     if ( !value ) return "{}";
11311     std::string result;
11312 
11313     if ( value & FormatFeatureFlagBits::eSampledImage ) result += "SampledImage | ";
11314     if ( value & FormatFeatureFlagBits::eStorageImage ) result += "StorageImage | ";
11315     if ( value & FormatFeatureFlagBits::eStorageImageAtomic ) result += "StorageImageAtomic | ";
11316     if ( value & FormatFeatureFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
11317     if ( value & FormatFeatureFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
11318     if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic ) result += "StorageTexelBufferAtomic | ";
11319     if ( value & FormatFeatureFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
11320     if ( value & FormatFeatureFlagBits::eColorAttachment ) result += "ColorAttachment | ";
11321     if ( value & FormatFeatureFlagBits::eColorAttachmentBlend ) result += "ColorAttachmentBlend | ";
11322     if ( value & FormatFeatureFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
11323     if ( value & FormatFeatureFlagBits::eBlitSrc ) result += "BlitSrc | ";
11324     if ( value & FormatFeatureFlagBits::eBlitDst ) result += "BlitDst | ";
11325     if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear ) result += "SampledImageFilterLinear | ";
11326     if ( value & FormatFeatureFlagBits::eTransferSrc ) result += "TransferSrc | ";
11327     if ( value & FormatFeatureFlagBits::eTransferDst ) result += "TransferDst | ";
11328     if ( value & FormatFeatureFlagBits::eMidpointChromaSamples ) result += "MidpointChromaSamples | ";
11329     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) result += "SampledImageYcbcrConversionLinearFilter | ";
11330     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
11331     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
11332     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
11333     if ( value & FormatFeatureFlagBits::eDisjoint ) result += "Disjoint | ";
11334     if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) result += "CositedChromaSamples | ";
11335     if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax ) result += "SampledImageFilterMinmax | ";
11336     if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) result += "SampledImageFilterCubicIMG | ";
11337     if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) result += "AccelerationStructureVertexBufferKHR | ";
11338     if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
11339     if ( value & FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR ) result += "FragmentShadingRateAttachmentKHR | ";
11340     return "{ " + result.substr(0, result.size() - 3) + " }";
11341   }
11342 
11343 
11344   using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits>;
11345 
11346   template <> struct FlagTraits<FramebufferCreateFlagBits>
11347   {
11348     enum : VkFlags
11349     {
11350       allFlags = VkFlags(FramebufferCreateFlagBits::eImageless)
11351     };
11352   };
11353 
operator |(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)11354   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11355   {
11356     return FramebufferCreateFlags( bit0 ) | bit1;
11357   }
11358 
operator &(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)11359   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator&( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11360   {
11361     return FramebufferCreateFlags( bit0 ) & bit1;
11362   }
11363 
operator ^(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)11364   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11365   {
11366     return FramebufferCreateFlags( bit0 ) ^ bit1;
11367   }
11368 
operator ~(FramebufferCreateFlagBits bits)11369   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11370   {
11371     return ~( FramebufferCreateFlags( bits ) );
11372   }
11373 
to_string(FramebufferCreateFlags value)11374   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value  )
11375   {
11376 
11377     if ( !value ) return "{}";
11378     std::string result;
11379 
11380     if ( value & FramebufferCreateFlagBits::eImageless ) result += "Imageless | ";
11381     return "{ " + result.substr(0, result.size() - 3) + " }";
11382   }
11383 
11384 
11385   using GeometryFlagsKHR = Flags<GeometryFlagBitsKHR>;
11386 
11387   template <> struct FlagTraits<GeometryFlagBitsKHR>
11388   {
11389     enum : VkFlags
11390     {
11391       allFlags = VkFlags(GeometryFlagBitsKHR::eOpaque) | VkFlags(GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation)
11392     };
11393   };
11394 
operator |(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)11395   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator|( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11396   {
11397     return GeometryFlagsKHR( bit0 ) | bit1;
11398   }
11399 
operator &(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)11400   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator&( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11401   {
11402     return GeometryFlagsKHR( bit0 ) & bit1;
11403   }
11404 
operator ^(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)11405   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator^( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11406   {
11407     return GeometryFlagsKHR( bit0 ) ^ bit1;
11408   }
11409 
operator ~(GeometryFlagBitsKHR bits)11410   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator~( GeometryFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11411   {
11412     return ~( GeometryFlagsKHR( bits ) );
11413   }
11414 
11415   using GeometryFlagsNV = GeometryFlagsKHR;
11416 
to_string(GeometryFlagsKHR value)11417   VULKAN_HPP_INLINE std::string to_string( GeometryFlagsKHR value  )
11418   {
11419 
11420     if ( !value ) return "{}";
11421     std::string result;
11422 
11423     if ( value & GeometryFlagBitsKHR::eOpaque ) result += "Opaque | ";
11424     if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation ) result += "NoDuplicateAnyHitInvocation | ";
11425     return "{ " + result.substr(0, result.size() - 3) + " }";
11426   }
11427 
11428 
11429   using GeometryInstanceFlagsKHR = Flags<GeometryInstanceFlagBitsKHR>;
11430 
11431   template <> struct FlagTraits<GeometryInstanceFlagBitsKHR>
11432   {
11433     enum : VkFlags
11434     {
11435       allFlags = VkFlags(GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable) | VkFlags(GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise) | VkFlags(GeometryInstanceFlagBitsKHR::eForceOpaque) | VkFlags(GeometryInstanceFlagBitsKHR::eForceNoOpaque)
11436     };
11437   };
11438 
operator |(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)11439   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator|( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11440   {
11441     return GeometryInstanceFlagsKHR( bit0 ) | bit1;
11442   }
11443 
operator &(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)11444   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator&( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11445   {
11446     return GeometryInstanceFlagsKHR( bit0 ) & bit1;
11447   }
11448 
operator ^(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)11449   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator^( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11450   {
11451     return GeometryInstanceFlagsKHR( bit0 ) ^ bit1;
11452   }
11453 
operator ~(GeometryInstanceFlagBitsKHR bits)11454   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator~( GeometryInstanceFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11455   {
11456     return ~( GeometryInstanceFlagsKHR( bits ) );
11457   }
11458 
11459   using GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
11460 
to_string(GeometryInstanceFlagsKHR value)11461   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsKHR value  )
11462   {
11463 
11464     if ( !value ) return "{}";
11465     std::string result;
11466 
11467     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) result += "TriangleFacingCullDisable | ";
11468     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) result += "TriangleFrontCounterclockwise | ";
11469     if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque ) result += "ForceOpaque | ";
11470     if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque ) result += "ForceNoOpaque | ";
11471     return "{ " + result.substr(0, result.size() - 3) + " }";
11472   }
11473 
11474   enum class HeadlessSurfaceCreateFlagBitsEXT : VkFlags
11475   {};
11476 
to_string(HeadlessSurfaceCreateFlagBitsEXT)11477   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT )
11478   {
11479     return "(void)";
11480   }
11481 
11482   using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT>;
11483 
to_string(HeadlessSurfaceCreateFlagsEXT)11484   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT  )
11485   {
11486 
11487     return "{}";
11488   }
11489 
11490 #ifdef VK_USE_PLATFORM_IOS_MVK
11491   enum class IOSSurfaceCreateFlagBitsMVK : VkFlags
11492   {};
11493 
to_string(IOSSurfaceCreateFlagBitsMVK)11494   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK )
11495   {
11496     return "(void)";
11497   }
11498 
11499   using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK>;
11500 
to_string(IOSSurfaceCreateFlagsMVK)11501   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK  )
11502   {
11503 
11504     return "{}";
11505   }
11506 #endif /*VK_USE_PLATFORM_IOS_MVK*/
11507 
11508 
11509   using ImageAspectFlags = Flags<ImageAspectFlagBits>;
11510 
11511   template <> struct FlagTraits<ImageAspectFlagBits>
11512   {
11513     enum : VkFlags
11514     {
11515       allFlags = VkFlags(ImageAspectFlagBits::eColor) | VkFlags(ImageAspectFlagBits::eDepth) | VkFlags(ImageAspectFlagBits::eStencil) | VkFlags(ImageAspectFlagBits::eMetadata) | VkFlags(ImageAspectFlagBits::ePlane0) | VkFlags(ImageAspectFlagBits::ePlane1) | VkFlags(ImageAspectFlagBits::ePlane2) | VkFlags(ImageAspectFlagBits::eMemoryPlane0EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane1EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane2EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane3EXT)
11516     };
11517   };
11518 
operator |(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)11519   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11520   {
11521     return ImageAspectFlags( bit0 ) | bit1;
11522   }
11523 
operator &(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)11524   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11525   {
11526     return ImageAspectFlags( bit0 ) & bit1;
11527   }
11528 
operator ^(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)11529   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11530   {
11531     return ImageAspectFlags( bit0 ) ^ bit1;
11532   }
11533 
operator ~(ImageAspectFlagBits bits)11534   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator~( ImageAspectFlagBits bits ) VULKAN_HPP_NOEXCEPT
11535   {
11536     return ~( ImageAspectFlags( bits ) );
11537   }
11538 
to_string(ImageAspectFlags value)11539   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value  )
11540   {
11541 
11542     if ( !value ) return "{}";
11543     std::string result;
11544 
11545     if ( value & ImageAspectFlagBits::eColor ) result += "Color | ";
11546     if ( value & ImageAspectFlagBits::eDepth ) result += "Depth | ";
11547     if ( value & ImageAspectFlagBits::eStencil ) result += "Stencil | ";
11548     if ( value & ImageAspectFlagBits::eMetadata ) result += "Metadata | ";
11549     if ( value & ImageAspectFlagBits::ePlane0 ) result += "Plane0 | ";
11550     if ( value & ImageAspectFlagBits::ePlane1 ) result += "Plane1 | ";
11551     if ( value & ImageAspectFlagBits::ePlane2 ) result += "Plane2 | ";
11552     if ( value & ImageAspectFlagBits::eMemoryPlane0EXT ) result += "MemoryPlane0EXT | ";
11553     if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) result += "MemoryPlane1EXT | ";
11554     if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) result += "MemoryPlane2EXT | ";
11555     if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) result += "MemoryPlane3EXT | ";
11556     return "{ " + result.substr(0, result.size() - 3) + " }";
11557   }
11558 
11559 
11560   using ImageCreateFlags = Flags<ImageCreateFlagBits>;
11561 
11562   template <> struct FlagTraits<ImageCreateFlagBits>
11563   {
11564     enum : VkFlags
11565     {
11566       allFlags = VkFlags(ImageCreateFlagBits::eSparseBinding) | VkFlags(ImageCreateFlagBits::eSparseResidency) | VkFlags(ImageCreateFlagBits::eSparseAliased) | VkFlags(ImageCreateFlagBits::eMutableFormat) | VkFlags(ImageCreateFlagBits::eCubeCompatible) | VkFlags(ImageCreateFlagBits::eAlias) | VkFlags(ImageCreateFlagBits::eSplitInstanceBindRegions) | VkFlags(ImageCreateFlagBits::e2DArrayCompatible) | VkFlags(ImageCreateFlagBits::eBlockTexelViewCompatible) | VkFlags(ImageCreateFlagBits::eExtendedUsage) | VkFlags(ImageCreateFlagBits::eProtected) | VkFlags(ImageCreateFlagBits::eDisjoint) | VkFlags(ImageCreateFlagBits::eCornerSampledNV) | VkFlags(ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT) | VkFlags(ImageCreateFlagBits::eSubsampledEXT)
11567     };
11568   };
11569 
operator |(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)11570   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11571   {
11572     return ImageCreateFlags( bit0 ) | bit1;
11573   }
11574 
operator &(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)11575   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11576   {
11577     return ImageCreateFlags( bit0 ) & bit1;
11578   }
11579 
operator ^(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)11580   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11581   {
11582     return ImageCreateFlags( bit0 ) ^ bit1;
11583   }
11584 
operator ~(ImageCreateFlagBits bits)11585   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator~( ImageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11586   {
11587     return ~( ImageCreateFlags( bits ) );
11588   }
11589 
to_string(ImageCreateFlags value)11590   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value  )
11591   {
11592 
11593     if ( !value ) return "{}";
11594     std::string result;
11595 
11596     if ( value & ImageCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
11597     if ( value & ImageCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
11598     if ( value & ImageCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
11599     if ( value & ImageCreateFlagBits::eMutableFormat ) result += "MutableFormat | ";
11600     if ( value & ImageCreateFlagBits::eCubeCompatible ) result += "CubeCompatible | ";
11601     if ( value & ImageCreateFlagBits::eAlias ) result += "Alias | ";
11602     if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
11603     if ( value & ImageCreateFlagBits::e2DArrayCompatible ) result += "2DArrayCompatible | ";
11604     if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible ) result += "BlockTexelViewCompatible | ";
11605     if ( value & ImageCreateFlagBits::eExtendedUsage ) result += "ExtendedUsage | ";
11606     if ( value & ImageCreateFlagBits::eProtected ) result += "Protected | ";
11607     if ( value & ImageCreateFlagBits::eDisjoint ) result += "Disjoint | ";
11608     if ( value & ImageCreateFlagBits::eCornerSampledNV ) result += "CornerSampledNV | ";
11609     if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) result += "SampleLocationsCompatibleDepthEXT | ";
11610     if ( value & ImageCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
11611     return "{ " + result.substr(0, result.size() - 3) + " }";
11612   }
11613 
11614 #ifdef VK_USE_PLATFORM_FUCHSIA
11615   enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkFlags
11616   {};
11617 
to_string(ImagePipeSurfaceCreateFlagBitsFUCHSIA)11618   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA )
11619   {
11620     return "(void)";
11621   }
11622 
11623   using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA>;
11624 
to_string(ImagePipeSurfaceCreateFlagsFUCHSIA)11625   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA  )
11626   {
11627 
11628     return "{}";
11629   }
11630 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11631 
11632 
11633   using ImageUsageFlags = Flags<ImageUsageFlagBits>;
11634 
11635   template <> struct FlagTraits<ImageUsageFlagBits>
11636   {
11637     enum : VkFlags
11638     {
11639       allFlags = VkFlags(ImageUsageFlagBits::eTransferSrc) | VkFlags(ImageUsageFlagBits::eTransferDst) | VkFlags(ImageUsageFlagBits::eSampled) | VkFlags(ImageUsageFlagBits::eStorage) | VkFlags(ImageUsageFlagBits::eColorAttachment) | VkFlags(ImageUsageFlagBits::eDepthStencilAttachment) | VkFlags(ImageUsageFlagBits::eTransientAttachment) | VkFlags(ImageUsageFlagBits::eInputAttachment) | VkFlags(ImageUsageFlagBits::eShadingRateImageNV) | VkFlags(ImageUsageFlagBits::eFragmentDensityMapEXT)
11640     };
11641   };
11642 
operator |(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11643   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11644   {
11645     return ImageUsageFlags( bit0 ) | bit1;
11646   }
11647 
operator &(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11648   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11649   {
11650     return ImageUsageFlags( bit0 ) & bit1;
11651   }
11652 
operator ^(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11653   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11654   {
11655     return ImageUsageFlags( bit0 ) ^ bit1;
11656   }
11657 
operator ~(ImageUsageFlagBits bits)11658   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator~( ImageUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
11659   {
11660     return ~( ImageUsageFlags( bits ) );
11661   }
11662 
to_string(ImageUsageFlags value)11663   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value  )
11664   {
11665 
11666     if ( !value ) return "{}";
11667     std::string result;
11668 
11669     if ( value & ImageUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
11670     if ( value & ImageUsageFlagBits::eTransferDst ) result += "TransferDst | ";
11671     if ( value & ImageUsageFlagBits::eSampled ) result += "Sampled | ";
11672     if ( value & ImageUsageFlagBits::eStorage ) result += "Storage | ";
11673     if ( value & ImageUsageFlagBits::eColorAttachment ) result += "ColorAttachment | ";
11674     if ( value & ImageUsageFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
11675     if ( value & ImageUsageFlagBits::eTransientAttachment ) result += "TransientAttachment | ";
11676     if ( value & ImageUsageFlagBits::eInputAttachment ) result += "InputAttachment | ";
11677     if ( value & ImageUsageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
11678     if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
11679     return "{ " + result.substr(0, result.size() - 3) + " }";
11680   }
11681 
11682 
11683   using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits>;
11684 
11685   template <> struct FlagTraits<ImageViewCreateFlagBits>
11686   {
11687     enum : VkFlags
11688     {
11689       allFlags = VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT) | VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT)
11690     };
11691   };
11692 
operator |(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11693   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11694   {
11695     return ImageViewCreateFlags( bit0 ) | bit1;
11696   }
11697 
operator &(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11698   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator&( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11699   {
11700     return ImageViewCreateFlags( bit0 ) & bit1;
11701   }
11702 
operator ^(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11703   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11704   {
11705     return ImageViewCreateFlags( bit0 ) ^ bit1;
11706   }
11707 
operator ~(ImageViewCreateFlagBits bits)11708   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11709   {
11710     return ~( ImageViewCreateFlags( bits ) );
11711   }
11712 
to_string(ImageViewCreateFlags value)11713   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value  )
11714   {
11715 
11716     if ( !value ) return "{}";
11717     std::string result;
11718 
11719     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) result += "FragmentDensityMapDynamicEXT | ";
11720     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT ) result += "FragmentDensityMapDeferredEXT | ";
11721     return "{ " + result.substr(0, result.size() - 3) + " }";
11722   }
11723 
11724 
11725   using IndirectCommandsLayoutUsageFlagsNV = Flags<IndirectCommandsLayoutUsageFlagBitsNV>;
11726 
11727   template <> struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNV>
11728   {
11729     enum : VkFlags
11730     {
11731       allFlags = VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences)
11732     };
11733   };
11734 
operator |(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11735   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator|( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11736   {
11737     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) | bit1;
11738   }
11739 
operator &(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11740   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator&( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11741   {
11742     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) & bit1;
11743   }
11744 
operator ^(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11745   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator^( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11746   {
11747     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) ^ bit1;
11748   }
11749 
operator ~(IndirectCommandsLayoutUsageFlagBitsNV bits)11750   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator~( IndirectCommandsLayoutUsageFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11751   {
11752     return ~( IndirectCommandsLayoutUsageFlagsNV( bits ) );
11753   }
11754 
to_string(IndirectCommandsLayoutUsageFlagsNV value)11755   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNV value  )
11756   {
11757 
11758     if ( !value ) return "{}";
11759     std::string result;
11760 
11761     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) result += "ExplicitPreprocess | ";
11762     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) result += "IndexedSequences | ";
11763     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences ) result += "UnorderedSequences | ";
11764     return "{ " + result.substr(0, result.size() - 3) + " }";
11765   }
11766 
11767 
11768   using IndirectStateFlagsNV = Flags<IndirectStateFlagBitsNV>;
11769 
11770   template <> struct FlagTraits<IndirectStateFlagBitsNV>
11771   {
11772     enum : VkFlags
11773     {
11774       allFlags = VkFlags(IndirectStateFlagBitsNV::eFlagFrontface)
11775     };
11776   };
11777 
operator |(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11778   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator|( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11779   {
11780     return IndirectStateFlagsNV( bit0 ) | bit1;
11781   }
11782 
operator &(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11783   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator&( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11784   {
11785     return IndirectStateFlagsNV( bit0 ) & bit1;
11786   }
11787 
operator ^(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11788   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator^( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11789   {
11790     return IndirectStateFlagsNV( bit0 ) ^ bit1;
11791   }
11792 
operator ~(IndirectStateFlagBitsNV bits)11793   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator~( IndirectStateFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11794   {
11795     return ~( IndirectStateFlagsNV( bits ) );
11796   }
11797 
to_string(IndirectStateFlagsNV value)11798   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagsNV value  )
11799   {
11800 
11801     if ( !value ) return "{}";
11802     std::string result;
11803 
11804     if ( value & IndirectStateFlagBitsNV::eFlagFrontface ) result += "FlagFrontface | ";
11805     return "{ " + result.substr(0, result.size() - 3) + " }";
11806   }
11807 
11808 
11809   using InstanceCreateFlags = Flags<InstanceCreateFlagBits>;
11810 
to_string(InstanceCreateFlags)11811   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags  )
11812   {
11813 
11814     return "{}";
11815   }
11816 
11817 #ifdef VK_USE_PLATFORM_MACOS_MVK
11818   enum class MacOSSurfaceCreateFlagBitsMVK : VkFlags
11819   {};
11820 
to_string(MacOSSurfaceCreateFlagBitsMVK)11821   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK )
11822   {
11823     return "(void)";
11824   }
11825 
11826   using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK>;
11827 
to_string(MacOSSurfaceCreateFlagsMVK)11828   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK  )
11829   {
11830 
11831     return "{}";
11832   }
11833 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
11834 
11835 
11836   using MemoryAllocateFlags = Flags<MemoryAllocateFlagBits>;
11837 
11838   template <> struct FlagTraits<MemoryAllocateFlagBits>
11839   {
11840     enum : VkFlags
11841     {
11842       allFlags = VkFlags(MemoryAllocateFlagBits::eDeviceMask) | VkFlags(MemoryAllocateFlagBits::eDeviceAddress) | VkFlags(MemoryAllocateFlagBits::eDeviceAddressCaptureReplay)
11843     };
11844   };
11845 
operator |(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11846   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11847   {
11848     return MemoryAllocateFlags( bit0 ) | bit1;
11849   }
11850 
operator &(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11851   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator&( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11852   {
11853     return MemoryAllocateFlags( bit0 ) & bit1;
11854   }
11855 
operator ^(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11856   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11857   {
11858     return MemoryAllocateFlags( bit0 ) ^ bit1;
11859   }
11860 
operator ~(MemoryAllocateFlagBits bits)11861   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11862   {
11863     return ~( MemoryAllocateFlags( bits ) );
11864   }
11865 
11866   using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
11867 
to_string(MemoryAllocateFlags value)11868   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value  )
11869   {
11870 
11871     if ( !value ) return "{}";
11872     std::string result;
11873 
11874     if ( value & MemoryAllocateFlagBits::eDeviceMask ) result += "DeviceMask | ";
11875     if ( value & MemoryAllocateFlagBits::eDeviceAddress ) result += "DeviceAddress | ";
11876     if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | ";
11877     return "{ " + result.substr(0, result.size() - 3) + " }";
11878   }
11879 
11880 
11881   using MemoryHeapFlags = Flags<MemoryHeapFlagBits>;
11882 
11883   template <> struct FlagTraits<MemoryHeapFlagBits>
11884   {
11885     enum : VkFlags
11886     {
11887       allFlags = VkFlags(MemoryHeapFlagBits::eDeviceLocal) | VkFlags(MemoryHeapFlagBits::eMultiInstance)
11888     };
11889   };
11890 
operator |(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11891   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11892   {
11893     return MemoryHeapFlags( bit0 ) | bit1;
11894   }
11895 
operator &(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11896   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11897   {
11898     return MemoryHeapFlags( bit0 ) & bit1;
11899   }
11900 
operator ^(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11901   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11902   {
11903     return MemoryHeapFlags( bit0 ) ^ bit1;
11904   }
11905 
operator ~(MemoryHeapFlagBits bits)11906   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator~( MemoryHeapFlagBits bits ) VULKAN_HPP_NOEXCEPT
11907   {
11908     return ~( MemoryHeapFlags( bits ) );
11909   }
11910 
to_string(MemoryHeapFlags value)11911   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value  )
11912   {
11913 
11914     if ( !value ) return "{}";
11915     std::string result;
11916 
11917     if ( value & MemoryHeapFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
11918     if ( value & MemoryHeapFlagBits::eMultiInstance ) result += "MultiInstance | ";
11919     return "{ " + result.substr(0, result.size() - 3) + " }";
11920   }
11921 
11922   enum class MemoryMapFlagBits : VkFlags
11923   {};
11924 
to_string(MemoryMapFlagBits)11925   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
11926   {
11927     return "(void)";
11928   }
11929 
11930   using MemoryMapFlags = Flags<MemoryMapFlagBits>;
11931 
to_string(MemoryMapFlags)11932   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags  )
11933   {
11934 
11935     return "{}";
11936   }
11937 
11938 
11939   using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits>;
11940 
11941   template <> struct FlagTraits<MemoryPropertyFlagBits>
11942   {
11943     enum : VkFlags
11944     {
11945       allFlags = VkFlags(MemoryPropertyFlagBits::eDeviceLocal) | VkFlags(MemoryPropertyFlagBits::eHostVisible) | VkFlags(MemoryPropertyFlagBits::eHostCoherent) | VkFlags(MemoryPropertyFlagBits::eHostCached) | VkFlags(MemoryPropertyFlagBits::eLazilyAllocated) | VkFlags(MemoryPropertyFlagBits::eProtected) | VkFlags(MemoryPropertyFlagBits::eDeviceCoherentAMD) | VkFlags(MemoryPropertyFlagBits::eDeviceUncachedAMD)
11946     };
11947   };
11948 
operator |(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)11949   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11950   {
11951     return MemoryPropertyFlags( bit0 ) | bit1;
11952   }
11953 
operator &(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)11954   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator&( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11955   {
11956     return MemoryPropertyFlags( bit0 ) & bit1;
11957   }
11958 
operator ^(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)11959   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11960   {
11961     return MemoryPropertyFlags( bit0 ) ^ bit1;
11962   }
11963 
operator ~(MemoryPropertyFlagBits bits)11964   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits ) VULKAN_HPP_NOEXCEPT
11965   {
11966     return ~( MemoryPropertyFlags( bits ) );
11967   }
11968 
to_string(MemoryPropertyFlags value)11969   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value  )
11970   {
11971 
11972     if ( !value ) return "{}";
11973     std::string result;
11974 
11975     if ( value & MemoryPropertyFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
11976     if ( value & MemoryPropertyFlagBits::eHostVisible ) result += "HostVisible | ";
11977     if ( value & MemoryPropertyFlagBits::eHostCoherent ) result += "HostCoherent | ";
11978     if ( value & MemoryPropertyFlagBits::eHostCached ) result += "HostCached | ";
11979     if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) result += "LazilyAllocated | ";
11980     if ( value & MemoryPropertyFlagBits::eProtected ) result += "Protected | ";
11981     if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD ) result += "DeviceCoherentAMD | ";
11982     if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD ) result += "DeviceUncachedAMD | ";
11983     return "{ " + result.substr(0, result.size() - 3) + " }";
11984   }
11985 
11986 #ifdef VK_USE_PLATFORM_METAL_EXT
11987   enum class MetalSurfaceCreateFlagBitsEXT : VkFlags
11988   {};
11989 
to_string(MetalSurfaceCreateFlagBitsEXT)11990   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT )
11991   {
11992     return "(void)";
11993   }
11994 
11995   using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT>;
11996 
to_string(MetalSurfaceCreateFlagsEXT)11997   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT  )
11998   {
11999 
12000     return "{}";
12001   }
12002 #endif /*VK_USE_PLATFORM_METAL_EXT*/
12003 
12004 
12005   using PeerMemoryFeatureFlags = Flags<PeerMemoryFeatureFlagBits>;
12006 
12007   template <> struct FlagTraits<PeerMemoryFeatureFlagBits>
12008   {
12009     enum : VkFlags
12010     {
12011       allFlags = VkFlags(PeerMemoryFeatureFlagBits::eCopySrc) | VkFlags(PeerMemoryFeatureFlagBits::eCopyDst) | VkFlags(PeerMemoryFeatureFlagBits::eGenericSrc) | VkFlags(PeerMemoryFeatureFlagBits::eGenericDst)
12012     };
12013   };
12014 
operator |(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)12015   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12016   {
12017     return PeerMemoryFeatureFlags( bit0 ) | bit1;
12018   }
12019 
operator &(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)12020   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator&( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12021   {
12022     return PeerMemoryFeatureFlags( bit0 ) & bit1;
12023   }
12024 
operator ^(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)12025   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12026   {
12027     return PeerMemoryFeatureFlags( bit0 ) ^ bit1;
12028   }
12029 
operator ~(PeerMemoryFeatureFlagBits bits)12030   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
12031   {
12032     return ~( PeerMemoryFeatureFlags( bits ) );
12033   }
12034 
12035   using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
12036 
to_string(PeerMemoryFeatureFlags value)12037   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value  )
12038   {
12039 
12040     if ( !value ) return "{}";
12041     std::string result;
12042 
12043     if ( value & PeerMemoryFeatureFlagBits::eCopySrc ) result += "CopySrc | ";
12044     if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) result += "CopyDst | ";
12045     if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) result += "GenericSrc | ";
12046     if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) result += "GenericDst | ";
12047     return "{ " + result.substr(0, result.size() - 3) + " }";
12048   }
12049 
12050 
12051   using PerformanceCounterDescriptionFlagsKHR = Flags<PerformanceCounterDescriptionFlagBitsKHR>;
12052 
12053   template <> struct FlagTraits<PerformanceCounterDescriptionFlagBitsKHR>
12054   {
12055     enum : VkFlags
12056     {
12057       allFlags = VkFlags(PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting) | VkFlags(PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted)
12058     };
12059   };
12060 
operator |(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)12061   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12062   {
12063     return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1;
12064   }
12065 
operator &(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)12066   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12067   {
12068     return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1;
12069   }
12070 
operator ^(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)12071   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12072   {
12073     return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1;
12074   }
12075 
operator ~(PerformanceCounterDescriptionFlagBitsKHR bits)12076   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12077   {
12078     return ~( PerformanceCounterDescriptionFlagsKHR( bits ) );
12079   }
12080 
to_string(PerformanceCounterDescriptionFlagsKHR value)12081   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value  )
12082   {
12083 
12084     if ( !value ) return "{}";
12085     std::string result;
12086 
12087     if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) result += "PerformanceImpacting | ";
12088     if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted ) result += "ConcurrentlyImpacted | ";
12089     return "{ " + result.substr(0, result.size() - 3) + " }";
12090   }
12091 
12092 
12093   using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
12094 
12095   template <> struct FlagTraits<PipelineCacheCreateFlagBits>
12096   {
12097     enum : VkFlags
12098     {
12099       allFlags = VkFlags(PipelineCacheCreateFlagBits::eExternallySynchronizedEXT)
12100     };
12101   };
12102 
operator |(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)12103   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator|( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12104   {
12105     return PipelineCacheCreateFlags( bit0 ) | bit1;
12106   }
12107 
operator &(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)12108   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator&( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12109   {
12110     return PipelineCacheCreateFlags( bit0 ) & bit1;
12111   }
12112 
operator ^(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)12113   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator^( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12114   {
12115     return PipelineCacheCreateFlags( bit0 ) ^ bit1;
12116   }
12117 
operator ~(PipelineCacheCreateFlagBits bits)12118   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator~( PipelineCacheCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12119   {
12120     return ~( PipelineCacheCreateFlags( bits ) );
12121   }
12122 
to_string(PipelineCacheCreateFlags value)12123   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags value  )
12124   {
12125 
12126     if ( !value ) return "{}";
12127     std::string result;
12128 
12129     if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT ) result += "ExternallySynchronizedEXT | ";
12130     return "{ " + result.substr(0, result.size() - 3) + " }";
12131   }
12132 
12133   enum class PipelineColorBlendStateCreateFlagBits : VkFlags
12134   {};
12135 
to_string(PipelineColorBlendStateCreateFlagBits)12136   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
12137   {
12138     return "(void)";
12139   }
12140 
12141   using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
12142 
to_string(PipelineColorBlendStateCreateFlags)12143   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags  )
12144   {
12145 
12146     return "{}";
12147   }
12148 
12149 
12150   using PipelineCompilerControlFlagsAMD = Flags<PipelineCompilerControlFlagBitsAMD>;
12151 
to_string(PipelineCompilerControlFlagsAMD)12152   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD  )
12153   {
12154 
12155     return "{}";
12156   }
12157 
12158   enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkFlags
12159   {};
12160 
to_string(PipelineCoverageModulationStateCreateFlagBitsNV)12161   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV )
12162   {
12163     return "(void)";
12164   }
12165 
12166   using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV>;
12167 
to_string(PipelineCoverageModulationStateCreateFlagsNV)12168   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV  )
12169   {
12170 
12171     return "{}";
12172   }
12173 
12174   enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkFlags
12175   {};
12176 
to_string(PipelineCoverageReductionStateCreateFlagBitsNV)12177   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV )
12178   {
12179     return "(void)";
12180   }
12181 
12182   using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV>;
12183 
to_string(PipelineCoverageReductionStateCreateFlagsNV)12184   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV  )
12185   {
12186 
12187     return "{}";
12188   }
12189 
12190   enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkFlags
12191   {};
12192 
to_string(PipelineCoverageToColorStateCreateFlagBitsNV)12193   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV )
12194   {
12195     return "(void)";
12196   }
12197 
12198   using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV>;
12199 
to_string(PipelineCoverageToColorStateCreateFlagsNV)12200   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV  )
12201   {
12202 
12203     return "{}";
12204   }
12205 
12206 
12207   using PipelineCreateFlags = Flags<PipelineCreateFlagBits>;
12208 
12209   template <> struct FlagTraits<PipelineCreateFlagBits>
12210   {
12211     enum : VkFlags
12212     {
12213       allFlags = VkFlags(PipelineCreateFlagBits::eDisableOptimization) | VkFlags(PipelineCreateFlagBits::eAllowDerivatives) | VkFlags(PipelineCreateFlagBits::eDerivative) | VkFlags(PipelineCreateFlagBits::eViewIndexFromDeviceIndex) | VkFlags(PipelineCreateFlagBits::eDispatchBase) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingSkipAabbsKHR) | VkFlags(PipelineCreateFlagBits::eDeferCompileNV) | VkFlags(PipelineCreateFlagBits::eCaptureStatisticsKHR) | VkFlags(PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR) | VkFlags(PipelineCreateFlagBits::eIndirectBindableNV) | VkFlags(PipelineCreateFlagBits::eLibraryKHR) | VkFlags(PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT) | VkFlags(PipelineCreateFlagBits::eEarlyReturnOnFailureEXT)
12214     };
12215   };
12216 
operator |(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)12217   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12218   {
12219     return PipelineCreateFlags( bit0 ) | bit1;
12220   }
12221 
operator &(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)12222   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator&( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12223   {
12224     return PipelineCreateFlags( bit0 ) & bit1;
12225   }
12226 
operator ^(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)12227   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12228   {
12229     return PipelineCreateFlags( bit0 ) ^ bit1;
12230   }
12231 
operator ~(PipelineCreateFlagBits bits)12232   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12233   {
12234     return ~( PipelineCreateFlags( bits ) );
12235   }
12236 
to_string(PipelineCreateFlags value)12237   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value  )
12238   {
12239 
12240     if ( !value ) return "{}";
12241     std::string result;
12242 
12243     if ( value & PipelineCreateFlagBits::eDisableOptimization ) result += "DisableOptimization | ";
12244     if ( value & PipelineCreateFlagBits::eAllowDerivatives ) result += "AllowDerivatives | ";
12245     if ( value & PipelineCreateFlagBits::eDerivative ) result += "Derivative | ";
12246     if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) result += "ViewIndexFromDeviceIndex | ";
12247     if ( value & PipelineCreateFlagBits::eDispatchBase ) result += "DispatchBase | ";
12248     if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) result += "RayTracingNoNullAnyHitShadersKHR | ";
12249     if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) result += "RayTracingNoNullClosestHitShadersKHR | ";
12250     if ( value & PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) result += "RayTracingNoNullMissShadersKHR | ";
12251     if ( value & PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) result += "RayTracingNoNullIntersectionShadersKHR | ";
12252     if ( value & PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) result += "RayTracingSkipTrianglesKHR | ";
12253     if ( value & PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) result += "RayTracingSkipAabbsKHR | ";
12254     if ( value & PipelineCreateFlagBits::eDeferCompileNV ) result += "DeferCompileNV | ";
12255     if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR ) result += "CaptureStatisticsKHR | ";
12256     if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) result += "CaptureInternalRepresentationsKHR | ";
12257     if ( value & PipelineCreateFlagBits::eIndirectBindableNV ) result += "IndirectBindableNV | ";
12258     if ( value & PipelineCreateFlagBits::eLibraryKHR ) result += "LibraryKHR | ";
12259     if ( value & PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) result += "FailOnPipelineCompileRequiredEXT | ";
12260     if ( value & PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) result += "EarlyReturnOnFailureEXT | ";
12261     return "{ " + result.substr(0, result.size() - 3) + " }";
12262   }
12263 
12264 
12265   using PipelineCreationFeedbackFlagsEXT = Flags<PipelineCreationFeedbackFlagBitsEXT>;
12266 
12267   template <> struct FlagTraits<PipelineCreationFeedbackFlagBitsEXT>
12268   {
12269     enum : VkFlags
12270     {
12271       allFlags = VkFlags(PipelineCreationFeedbackFlagBitsEXT::eValid) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration)
12272     };
12273   };
12274 
operator |(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)12275   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12276   {
12277     return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1;
12278   }
12279 
operator &(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)12280   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator&( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12281   {
12282     return PipelineCreationFeedbackFlagsEXT( bit0 ) & bit1;
12283   }
12284 
operator ^(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)12285   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12286   {
12287     return PipelineCreationFeedbackFlagsEXT( bit0 ) ^ bit1;
12288   }
12289 
operator ~(PipelineCreationFeedbackFlagBitsEXT bits)12290   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12291   {
12292     return ~( PipelineCreationFeedbackFlagsEXT( bits ) );
12293   }
12294 
to_string(PipelineCreationFeedbackFlagsEXT value)12295   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value  )
12296   {
12297 
12298     if ( !value ) return "{}";
12299     std::string result;
12300 
12301     if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid ) result += "Valid | ";
12302     if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) result += "ApplicationPipelineCacheHit | ";
12303     if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) result += "BasePipelineAcceleration | ";
12304     return "{ " + result.substr(0, result.size() - 3) + " }";
12305   }
12306 
12307   enum class PipelineDepthStencilStateCreateFlagBits : VkFlags
12308   {};
12309 
to_string(PipelineDepthStencilStateCreateFlagBits)12310   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
12311   {
12312     return "(void)";
12313   }
12314 
12315   using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
12316 
to_string(PipelineDepthStencilStateCreateFlags)12317   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags  )
12318   {
12319 
12320     return "{}";
12321   }
12322 
12323   enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkFlags
12324   {};
12325 
to_string(PipelineDiscardRectangleStateCreateFlagBitsEXT)12326   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT )
12327   {
12328     return "(void)";
12329   }
12330 
12331   using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT>;
12332 
to_string(PipelineDiscardRectangleStateCreateFlagsEXT)12333   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT  )
12334   {
12335 
12336     return "{}";
12337   }
12338 
12339   enum class PipelineDynamicStateCreateFlagBits : VkFlags
12340   {};
12341 
to_string(PipelineDynamicStateCreateFlagBits)12342   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
12343   {
12344     return "(void)";
12345   }
12346 
12347   using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits>;
12348 
to_string(PipelineDynamicStateCreateFlags)12349   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags  )
12350   {
12351 
12352     return "{}";
12353   }
12354 
12355   enum class PipelineInputAssemblyStateCreateFlagBits : VkFlags
12356   {};
12357 
to_string(PipelineInputAssemblyStateCreateFlagBits)12358   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
12359   {
12360     return "(void)";
12361   }
12362 
12363   using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits>;
12364 
to_string(PipelineInputAssemblyStateCreateFlags)12365   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags  )
12366   {
12367 
12368     return "{}";
12369   }
12370 
12371   enum class PipelineLayoutCreateFlagBits : VkFlags
12372   {};
12373 
to_string(PipelineLayoutCreateFlagBits)12374   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
12375   {
12376     return "(void)";
12377   }
12378 
12379   using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
12380 
to_string(PipelineLayoutCreateFlags)12381   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags  )
12382   {
12383 
12384     return "{}";
12385   }
12386 
12387   enum class PipelineMultisampleStateCreateFlagBits : VkFlags
12388   {};
12389 
to_string(PipelineMultisampleStateCreateFlagBits)12390   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
12391   {
12392     return "(void)";
12393   }
12394 
12395   using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits>;
12396 
to_string(PipelineMultisampleStateCreateFlags)12397   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags  )
12398   {
12399 
12400     return "{}";
12401   }
12402 
12403   enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkFlags
12404   {};
12405 
to_string(PipelineRasterizationConservativeStateCreateFlagBitsEXT)12406   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT )
12407   {
12408     return "(void)";
12409   }
12410 
12411   using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT>;
12412 
to_string(PipelineRasterizationConservativeStateCreateFlagsEXT)12413   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT  )
12414   {
12415 
12416     return "{}";
12417   }
12418 
12419   enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkFlags
12420   {};
12421 
to_string(PipelineRasterizationDepthClipStateCreateFlagBitsEXT)12422   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT )
12423   {
12424     return "(void)";
12425   }
12426 
12427   using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>;
12428 
to_string(PipelineRasterizationDepthClipStateCreateFlagsEXT)12429   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT  )
12430   {
12431 
12432     return "{}";
12433   }
12434 
12435   enum class PipelineRasterizationStateCreateFlagBits : VkFlags
12436   {};
12437 
to_string(PipelineRasterizationStateCreateFlagBits)12438   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
12439   {
12440     return "(void)";
12441   }
12442 
12443   using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits>;
12444 
to_string(PipelineRasterizationStateCreateFlags)12445   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags  )
12446   {
12447 
12448     return "{}";
12449   }
12450 
12451   enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkFlags
12452   {};
12453 
to_string(PipelineRasterizationStateStreamCreateFlagBitsEXT)12454   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT )
12455   {
12456     return "(void)";
12457   }
12458 
12459   using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT>;
12460 
to_string(PipelineRasterizationStateStreamCreateFlagsEXT)12461   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT  )
12462   {
12463 
12464     return "{}";
12465   }
12466 
12467 
12468   using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits>;
12469 
12470   template <> struct FlagTraits<PipelineShaderStageCreateFlagBits>
12471   {
12472     enum : VkFlags
12473     {
12474       allFlags = VkFlags(PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT) | VkFlags(PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT)
12475     };
12476   };
12477 
operator |(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)12478   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12479   {
12480     return PipelineShaderStageCreateFlags( bit0 ) | bit1;
12481   }
12482 
operator &(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)12483   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator&( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12484   {
12485     return PipelineShaderStageCreateFlags( bit0 ) & bit1;
12486   }
12487 
operator ^(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)12488   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12489   {
12490     return PipelineShaderStageCreateFlags( bit0 ) ^ bit1;
12491   }
12492 
operator ~(PipelineShaderStageCreateFlagBits bits)12493   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12494   {
12495     return ~( PipelineShaderStageCreateFlags( bits ) );
12496   }
12497 
to_string(PipelineShaderStageCreateFlags value)12498   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value  )
12499   {
12500 
12501     if ( !value ) return "{}";
12502     std::string result;
12503 
12504     if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) result += "AllowVaryingSubgroupSizeEXT | ";
12505     if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) result += "RequireFullSubgroupsEXT | ";
12506     return "{ " + result.substr(0, result.size() - 3) + " }";
12507   }
12508 
12509 
12510   using PipelineStageFlags = Flags<PipelineStageFlagBits>;
12511 
12512   template <> struct FlagTraits<PipelineStageFlagBits>
12513   {
12514     enum : VkFlags
12515     {
12516       allFlags = VkFlags(PipelineStageFlagBits::eTopOfPipe) | VkFlags(PipelineStageFlagBits::eDrawIndirect) | VkFlags(PipelineStageFlagBits::eVertexInput) | VkFlags(PipelineStageFlagBits::eVertexShader) | VkFlags(PipelineStageFlagBits::eTessellationControlShader) | VkFlags(PipelineStageFlagBits::eTessellationEvaluationShader) | VkFlags(PipelineStageFlagBits::eGeometryShader) | VkFlags(PipelineStageFlagBits::eFragmentShader) | VkFlags(PipelineStageFlagBits::eEarlyFragmentTests) | VkFlags(PipelineStageFlagBits::eLateFragmentTests) | VkFlags(PipelineStageFlagBits::eColorAttachmentOutput) | VkFlags(PipelineStageFlagBits::eComputeShader) | VkFlags(PipelineStageFlagBits::eTransfer) | VkFlags(PipelineStageFlagBits::eBottomOfPipe) | VkFlags(PipelineStageFlagBits::eHost) | VkFlags(PipelineStageFlagBits::eAllGraphics) | VkFlags(PipelineStageFlagBits::eAllCommands) | VkFlags(PipelineStageFlagBits::eTransformFeedbackEXT) | VkFlags(PipelineStageFlagBits::eConditionalRenderingEXT) | VkFlags(PipelineStageFlagBits::eRayTracingShaderKHR) | VkFlags(PipelineStageFlagBits::eAccelerationStructureBuildKHR) | VkFlags(PipelineStageFlagBits::eShadingRateImageNV) | VkFlags(PipelineStageFlagBits::eTaskShaderNV) | VkFlags(PipelineStageFlagBits::eMeshShaderNV) | VkFlags(PipelineStageFlagBits::eFragmentDensityProcessEXT) | VkFlags(PipelineStageFlagBits::eCommandPreprocessNV)
12517     };
12518   };
12519 
operator |(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)12520   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12521   {
12522     return PipelineStageFlags( bit0 ) | bit1;
12523   }
12524 
operator &(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)12525   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12526   {
12527     return PipelineStageFlags( bit0 ) & bit1;
12528   }
12529 
operator ^(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)12530   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12531   {
12532     return PipelineStageFlags( bit0 ) ^ bit1;
12533   }
12534 
operator ~(PipelineStageFlagBits bits)12535   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator~( PipelineStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
12536   {
12537     return ~( PipelineStageFlags( bits ) );
12538   }
12539 
to_string(PipelineStageFlags value)12540   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value  )
12541   {
12542 
12543     if ( !value ) return "{}";
12544     std::string result;
12545 
12546     if ( value & PipelineStageFlagBits::eTopOfPipe ) result += "TopOfPipe | ";
12547     if ( value & PipelineStageFlagBits::eDrawIndirect ) result += "DrawIndirect | ";
12548     if ( value & PipelineStageFlagBits::eVertexInput ) result += "VertexInput | ";
12549     if ( value & PipelineStageFlagBits::eVertexShader ) result += "VertexShader | ";
12550     if ( value & PipelineStageFlagBits::eTessellationControlShader ) result += "TessellationControlShader | ";
12551     if ( value & PipelineStageFlagBits::eTessellationEvaluationShader ) result += "TessellationEvaluationShader | ";
12552     if ( value & PipelineStageFlagBits::eGeometryShader ) result += "GeometryShader | ";
12553     if ( value & PipelineStageFlagBits::eFragmentShader ) result += "FragmentShader | ";
12554     if ( value & PipelineStageFlagBits::eEarlyFragmentTests ) result += "EarlyFragmentTests | ";
12555     if ( value & PipelineStageFlagBits::eLateFragmentTests ) result += "LateFragmentTests | ";
12556     if ( value & PipelineStageFlagBits::eColorAttachmentOutput ) result += "ColorAttachmentOutput | ";
12557     if ( value & PipelineStageFlagBits::eComputeShader ) result += "ComputeShader | ";
12558     if ( value & PipelineStageFlagBits::eTransfer ) result += "Transfer | ";
12559     if ( value & PipelineStageFlagBits::eBottomOfPipe ) result += "BottomOfPipe | ";
12560     if ( value & PipelineStageFlagBits::eHost ) result += "Host | ";
12561     if ( value & PipelineStageFlagBits::eAllGraphics ) result += "AllGraphics | ";
12562     if ( value & PipelineStageFlagBits::eAllCommands ) result += "AllCommands | ";
12563     if ( value & PipelineStageFlagBits::eTransformFeedbackEXT ) result += "TransformFeedbackEXT | ";
12564     if ( value & PipelineStageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
12565     if ( value & PipelineStageFlagBits::eRayTracingShaderKHR ) result += "RayTracingShaderKHR | ";
12566     if ( value & PipelineStageFlagBits::eAccelerationStructureBuildKHR ) result += "AccelerationStructureBuildKHR | ";
12567     if ( value & PipelineStageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
12568     if ( value & PipelineStageFlagBits::eTaskShaderNV ) result += "TaskShaderNV | ";
12569     if ( value & PipelineStageFlagBits::eMeshShaderNV ) result += "MeshShaderNV | ";
12570     if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) result += "FragmentDensityProcessEXT | ";
12571     if ( value & PipelineStageFlagBits::eCommandPreprocessNV ) result += "CommandPreprocessNV | ";
12572     return "{ " + result.substr(0, result.size() - 3) + " }";
12573   }
12574 
12575   enum class PipelineTessellationStateCreateFlagBits : VkFlags
12576   {};
12577 
to_string(PipelineTessellationStateCreateFlagBits)12578   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
12579   {
12580     return "(void)";
12581   }
12582 
12583   using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits>;
12584 
to_string(PipelineTessellationStateCreateFlags)12585   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags  )
12586   {
12587 
12588     return "{}";
12589   }
12590 
12591   enum class PipelineVertexInputStateCreateFlagBits : VkFlags
12592   {};
12593 
to_string(PipelineVertexInputStateCreateFlagBits)12594   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
12595   {
12596     return "(void)";
12597   }
12598 
12599   using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits>;
12600 
to_string(PipelineVertexInputStateCreateFlags)12601   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags  )
12602   {
12603 
12604     return "{}";
12605   }
12606 
12607   enum class PipelineViewportStateCreateFlagBits : VkFlags
12608   {};
12609 
to_string(PipelineViewportStateCreateFlagBits)12610   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
12611   {
12612     return "(void)";
12613   }
12614 
12615   using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits>;
12616 
to_string(PipelineViewportStateCreateFlags)12617   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags  )
12618   {
12619 
12620     return "{}";
12621   }
12622 
12623   enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkFlags
12624   {};
12625 
to_string(PipelineViewportSwizzleStateCreateFlagBitsNV)12626   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV )
12627   {
12628     return "(void)";
12629   }
12630 
12631   using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV>;
12632 
to_string(PipelineViewportSwizzleStateCreateFlagsNV)12633   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV  )
12634   {
12635 
12636     return "{}";
12637   }
12638 
12639 
12640   using PrivateDataSlotCreateFlagsEXT = Flags<PrivateDataSlotCreateFlagBitsEXT>;
12641 
to_string(PrivateDataSlotCreateFlagsEXT)12642   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagsEXT  )
12643   {
12644 
12645     return "{}";
12646   }
12647 
12648 
12649   using QueryControlFlags = Flags<QueryControlFlagBits>;
12650 
12651   template <> struct FlagTraits<QueryControlFlagBits>
12652   {
12653     enum : VkFlags
12654     {
12655       allFlags = VkFlags(QueryControlFlagBits::ePrecise)
12656     };
12657   };
12658 
operator |(QueryControlFlagBits bit0,QueryControlFlagBits bit1)12659   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12660   {
12661     return QueryControlFlags( bit0 ) | bit1;
12662   }
12663 
operator &(QueryControlFlagBits bit0,QueryControlFlagBits bit1)12664   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12665   {
12666     return QueryControlFlags( bit0 ) & bit1;
12667   }
12668 
operator ^(QueryControlFlagBits bit0,QueryControlFlagBits bit1)12669   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12670   {
12671     return QueryControlFlags( bit0 ) ^ bit1;
12672   }
12673 
operator ~(QueryControlFlagBits bits)12674   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator~( QueryControlFlagBits bits ) VULKAN_HPP_NOEXCEPT
12675   {
12676     return ~( QueryControlFlags( bits ) );
12677   }
12678 
to_string(QueryControlFlags value)12679   VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value  )
12680   {
12681 
12682     if ( !value ) return "{}";
12683     std::string result;
12684 
12685     if ( value & QueryControlFlagBits::ePrecise ) result += "Precise | ";
12686     return "{ " + result.substr(0, result.size() - 3) + " }";
12687   }
12688 
12689 
12690   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits>;
12691 
12692   template <> struct FlagTraits<QueryPipelineStatisticFlagBits>
12693   {
12694     enum : VkFlags
12695     {
12696       allFlags = VkFlags(QueryPipelineStatisticFlagBits::eInputAssemblyVertices) | VkFlags(QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eVertexShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eGeometryShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eClippingInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eClippingPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eFragmentShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches) | VkFlags(QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eComputeShaderInvocations)
12697     };
12698   };
12699 
operator |(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12700   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12701   {
12702     return QueryPipelineStatisticFlags( bit0 ) | bit1;
12703   }
12704 
operator &(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12705   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator&( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12706   {
12707     return QueryPipelineStatisticFlags( bit0 ) & bit1;
12708   }
12709 
operator ^(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12710   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12711   {
12712     return QueryPipelineStatisticFlags( bit0 ) ^ bit1;
12713   }
12714 
operator ~(QueryPipelineStatisticFlagBits bits)12715   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits ) VULKAN_HPP_NOEXCEPT
12716   {
12717     return ~( QueryPipelineStatisticFlags( bits ) );
12718   }
12719 
to_string(QueryPipelineStatisticFlags value)12720   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value  )
12721   {
12722 
12723     if ( !value ) return "{}";
12724     std::string result;
12725 
12726     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) result += "InputAssemblyVertices | ";
12727     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) result += "InputAssemblyPrimitives | ";
12728     if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) result += "VertexShaderInvocations | ";
12729     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) result += "GeometryShaderInvocations | ";
12730     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) result += "GeometryShaderPrimitives | ";
12731     if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations ) result += "ClippingInvocations | ";
12732     if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives ) result += "ClippingPrimitives | ";
12733     if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) result += "FragmentShaderInvocations | ";
12734     if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) result += "TessellationControlShaderPatches | ";
12735     if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) result += "TessellationEvaluationShaderInvocations | ";
12736     if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) result += "ComputeShaderInvocations | ";
12737     return "{ " + result.substr(0, result.size() - 3) + " }";
12738   }
12739 
12740 
12741   using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits>;
12742 
to_string(QueryPoolCreateFlags)12743   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags  )
12744   {
12745 
12746     return "{}";
12747   }
12748 
12749 
12750   using QueryResultFlags = Flags<QueryResultFlagBits>;
12751 
12752   template <> struct FlagTraits<QueryResultFlagBits>
12753   {
12754     enum : VkFlags
12755     {
12756       allFlags = VkFlags(QueryResultFlagBits::e64) | VkFlags(QueryResultFlagBits::eWait) | VkFlags(QueryResultFlagBits::eWithAvailability) | VkFlags(QueryResultFlagBits::ePartial)
12757     };
12758   };
12759 
operator |(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12760   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12761   {
12762     return QueryResultFlags( bit0 ) | bit1;
12763   }
12764 
operator &(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12765   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12766   {
12767     return QueryResultFlags( bit0 ) & bit1;
12768   }
12769 
operator ^(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12770   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12771   {
12772     return QueryResultFlags( bit0 ) ^ bit1;
12773   }
12774 
operator ~(QueryResultFlagBits bits)12775   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator~( QueryResultFlagBits bits ) VULKAN_HPP_NOEXCEPT
12776   {
12777     return ~( QueryResultFlags( bits ) );
12778   }
12779 
to_string(QueryResultFlags value)12780   VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value  )
12781   {
12782 
12783     if ( !value ) return "{}";
12784     std::string result;
12785 
12786     if ( value & QueryResultFlagBits::e64 ) result += "64 | ";
12787     if ( value & QueryResultFlagBits::eWait ) result += "Wait | ";
12788     if ( value & QueryResultFlagBits::eWithAvailability ) result += "WithAvailability | ";
12789     if ( value & QueryResultFlagBits::ePartial ) result += "Partial | ";
12790     return "{ " + result.substr(0, result.size() - 3) + " }";
12791   }
12792 
12793 
12794   using QueueFlags = Flags<QueueFlagBits>;
12795 
12796   template <> struct FlagTraits<QueueFlagBits>
12797   {
12798     enum : VkFlags
12799     {
12800       allFlags = VkFlags(QueueFlagBits::eGraphics) | VkFlags(QueueFlagBits::eCompute) | VkFlags(QueueFlagBits::eTransfer) | VkFlags(QueueFlagBits::eSparseBinding) | VkFlags(QueueFlagBits::eProtected)
12801     };
12802   };
12803 
operator |(QueueFlagBits bit0,QueueFlagBits bit1)12804   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12805   {
12806     return QueueFlags( bit0 ) | bit1;
12807   }
12808 
operator &(QueueFlagBits bit0,QueueFlagBits bit1)12809   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12810   {
12811     return QueueFlags( bit0 ) & bit1;
12812   }
12813 
operator ^(QueueFlagBits bit0,QueueFlagBits bit1)12814   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12815   {
12816     return QueueFlags( bit0 ) ^ bit1;
12817   }
12818 
operator ~(QueueFlagBits bits)12819   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator~( QueueFlagBits bits ) VULKAN_HPP_NOEXCEPT
12820   {
12821     return ~( QueueFlags( bits ) );
12822   }
12823 
to_string(QueueFlags value)12824   VULKAN_HPP_INLINE std::string to_string( QueueFlags value  )
12825   {
12826 
12827     if ( !value ) return "{}";
12828     std::string result;
12829 
12830     if ( value & QueueFlagBits::eGraphics ) result += "Graphics | ";
12831     if ( value & QueueFlagBits::eCompute ) result += "Compute | ";
12832     if ( value & QueueFlagBits::eTransfer ) result += "Transfer | ";
12833     if ( value & QueueFlagBits::eSparseBinding ) result += "SparseBinding | ";
12834     if ( value & QueueFlagBits::eProtected ) result += "Protected | ";
12835     return "{ " + result.substr(0, result.size() - 3) + " }";
12836   }
12837 
12838 
12839   using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits>;
12840 
12841   template <> struct FlagTraits<RenderPassCreateFlagBits>
12842   {
12843     enum : VkFlags
12844     {
12845       allFlags = VkFlags(RenderPassCreateFlagBits::eTransformQCOM)
12846     };
12847   };
12848 
operator |(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12849   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator|( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12850   {
12851     return RenderPassCreateFlags( bit0 ) | bit1;
12852   }
12853 
operator &(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12854   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator&( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12855   {
12856     return RenderPassCreateFlags( bit0 ) & bit1;
12857   }
12858 
operator ^(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12859   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator^( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12860   {
12861     return RenderPassCreateFlags( bit0 ) ^ bit1;
12862   }
12863 
operator ~(RenderPassCreateFlagBits bits)12864   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator~( RenderPassCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12865   {
12866     return ~( RenderPassCreateFlags( bits ) );
12867   }
12868 
to_string(RenderPassCreateFlags value)12869   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags value  )
12870   {
12871 
12872     if ( !value ) return "{}";
12873     std::string result;
12874 
12875     if ( value & RenderPassCreateFlagBits::eTransformQCOM ) result += "TransformQCOM | ";
12876     return "{ " + result.substr(0, result.size() - 3) + " }";
12877   }
12878 
12879 
12880   using ResolveModeFlags = Flags<ResolveModeFlagBits>;
12881 
12882   template <> struct FlagTraits<ResolveModeFlagBits>
12883   {
12884     enum : VkFlags
12885     {
12886       allFlags = VkFlags(ResolveModeFlagBits::eNone) | VkFlags(ResolveModeFlagBits::eSampleZero) | VkFlags(ResolveModeFlagBits::eAverage) | VkFlags(ResolveModeFlagBits::eMin) | VkFlags(ResolveModeFlagBits::eMax)
12887     };
12888   };
12889 
operator |(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12890   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12891   {
12892     return ResolveModeFlags( bit0 ) | bit1;
12893   }
12894 
operator &(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12895   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12896   {
12897     return ResolveModeFlags( bit0 ) & bit1;
12898   }
12899 
operator ^(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12900   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12901   {
12902     return ResolveModeFlags( bit0 ) ^ bit1;
12903   }
12904 
operator ~(ResolveModeFlagBits bits)12905   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator~( ResolveModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
12906   {
12907     return ~( ResolveModeFlags( bits ) );
12908   }
12909 
12910   using ResolveModeFlagsKHR = ResolveModeFlags;
12911 
to_string(ResolveModeFlags value)12912   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value  )
12913   {
12914 
12915     if ( !value ) return "{}";
12916     std::string result;
12917 
12918     if ( value & ResolveModeFlagBits::eSampleZero ) result += "SampleZero | ";
12919     if ( value & ResolveModeFlagBits::eAverage ) result += "Average | ";
12920     if ( value & ResolveModeFlagBits::eMin ) result += "Min | ";
12921     if ( value & ResolveModeFlagBits::eMax ) result += "Max | ";
12922     return "{ " + result.substr(0, result.size() - 3) + " }";
12923   }
12924 
12925 
12926   using SampleCountFlags = Flags<SampleCountFlagBits>;
12927 
12928   template <> struct FlagTraits<SampleCountFlagBits>
12929   {
12930     enum : VkFlags
12931     {
12932       allFlags = VkFlags(SampleCountFlagBits::e1) | VkFlags(SampleCountFlagBits::e2) | VkFlags(SampleCountFlagBits::e4) | VkFlags(SampleCountFlagBits::e8) | VkFlags(SampleCountFlagBits::e16) | VkFlags(SampleCountFlagBits::e32) | VkFlags(SampleCountFlagBits::e64)
12933     };
12934   };
12935 
operator |(SampleCountFlagBits bit0,SampleCountFlagBits bit1)12936   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12937   {
12938     return SampleCountFlags( bit0 ) | bit1;
12939   }
12940 
operator &(SampleCountFlagBits bit0,SampleCountFlagBits bit1)12941   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12942   {
12943     return SampleCountFlags( bit0 ) & bit1;
12944   }
12945 
operator ^(SampleCountFlagBits bit0,SampleCountFlagBits bit1)12946   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12947   {
12948     return SampleCountFlags( bit0 ) ^ bit1;
12949   }
12950 
operator ~(SampleCountFlagBits bits)12951   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator~( SampleCountFlagBits bits ) VULKAN_HPP_NOEXCEPT
12952   {
12953     return ~( SampleCountFlags( bits ) );
12954   }
12955 
to_string(SampleCountFlags value)12956   VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value  )
12957   {
12958 
12959     if ( !value ) return "{}";
12960     std::string result;
12961 
12962     if ( value & SampleCountFlagBits::e1 ) result += "1 | ";
12963     if ( value & SampleCountFlagBits::e2 ) result += "2 | ";
12964     if ( value & SampleCountFlagBits::e4 ) result += "4 | ";
12965     if ( value & SampleCountFlagBits::e8 ) result += "8 | ";
12966     if ( value & SampleCountFlagBits::e16 ) result += "16 | ";
12967     if ( value & SampleCountFlagBits::e32 ) result += "32 | ";
12968     if ( value & SampleCountFlagBits::e64 ) result += "64 | ";
12969     return "{ " + result.substr(0, result.size() - 3) + " }";
12970   }
12971 
12972 
12973   using SamplerCreateFlags = Flags<SamplerCreateFlagBits>;
12974 
12975   template <> struct FlagTraits<SamplerCreateFlagBits>
12976   {
12977     enum : VkFlags
12978     {
12979       allFlags = VkFlags(SamplerCreateFlagBits::eSubsampledEXT) | VkFlags(SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT)
12980     };
12981   };
12982 
operator |(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)12983   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12984   {
12985     return SamplerCreateFlags( bit0 ) | bit1;
12986   }
12987 
operator &(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)12988   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12989   {
12990     return SamplerCreateFlags( bit0 ) & bit1;
12991   }
12992 
operator ^(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)12993   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12994   {
12995     return SamplerCreateFlags( bit0 ) ^ bit1;
12996   }
12997 
operator ~(SamplerCreateFlagBits bits)12998   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator~( SamplerCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12999   {
13000     return ~( SamplerCreateFlags( bits ) );
13001   }
13002 
to_string(SamplerCreateFlags value)13003   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value  )
13004   {
13005 
13006     if ( !value ) return "{}";
13007     std::string result;
13008 
13009     if ( value & SamplerCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
13010     if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) result += "SubsampledCoarseReconstructionEXT | ";
13011     return "{ " + result.substr(0, result.size() - 3) + " }";
13012   }
13013 
13014 
13015   using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits>;
13016 
to_string(SemaphoreCreateFlags)13017   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags  )
13018   {
13019 
13020     return "{}";
13021   }
13022 
13023 
13024   using SemaphoreImportFlags = Flags<SemaphoreImportFlagBits>;
13025 
13026   template <> struct FlagTraits<SemaphoreImportFlagBits>
13027   {
13028     enum : VkFlags
13029     {
13030       allFlags = VkFlags(SemaphoreImportFlagBits::eTemporary)
13031     };
13032   };
13033 
operator |(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)13034   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13035   {
13036     return SemaphoreImportFlags( bit0 ) | bit1;
13037   }
13038 
operator &(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)13039   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator&( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13040   {
13041     return SemaphoreImportFlags( bit0 ) & bit1;
13042   }
13043 
operator ^(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)13044   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13045   {
13046     return SemaphoreImportFlags( bit0 ) ^ bit1;
13047   }
13048 
operator ~(SemaphoreImportFlagBits bits)13049   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
13050   {
13051     return ~( SemaphoreImportFlags( bits ) );
13052   }
13053 
13054   using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
13055 
to_string(SemaphoreImportFlags value)13056   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value  )
13057   {
13058 
13059     if ( !value ) return "{}";
13060     std::string result;
13061 
13062     if ( value & SemaphoreImportFlagBits::eTemporary ) result += "Temporary | ";
13063     return "{ " + result.substr(0, result.size() - 3) + " }";
13064   }
13065 
13066 
13067   using SemaphoreWaitFlags = Flags<SemaphoreWaitFlagBits>;
13068 
13069   template <> struct FlagTraits<SemaphoreWaitFlagBits>
13070   {
13071     enum : VkFlags
13072     {
13073       allFlags = VkFlags(SemaphoreWaitFlagBits::eAny)
13074     };
13075   };
13076 
operator |(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)13077   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13078   {
13079     return SemaphoreWaitFlags( bit0 ) | bit1;
13080   }
13081 
operator &(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)13082   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13083   {
13084     return SemaphoreWaitFlags( bit0 ) & bit1;
13085   }
13086 
operator ^(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)13087   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13088   {
13089     return SemaphoreWaitFlags( bit0 ) ^ bit1;
13090   }
13091 
operator ~(SemaphoreWaitFlagBits bits)13092   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator~( SemaphoreWaitFlagBits bits ) VULKAN_HPP_NOEXCEPT
13093   {
13094     return ~( SemaphoreWaitFlags( bits ) );
13095   }
13096 
13097   using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
13098 
to_string(SemaphoreWaitFlags value)13099   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value  )
13100   {
13101 
13102     if ( !value ) return "{}";
13103     std::string result;
13104 
13105     if ( value & SemaphoreWaitFlagBits::eAny ) result += "Any | ";
13106     return "{ " + result.substr(0, result.size() - 3) + " }";
13107   }
13108 
13109 
13110   using ShaderCorePropertiesFlagsAMD = Flags<ShaderCorePropertiesFlagBitsAMD>;
13111 
to_string(ShaderCorePropertiesFlagsAMD)13112   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD  )
13113   {
13114 
13115     return "{}";
13116   }
13117 
13118 
13119   using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits>;
13120 
to_string(ShaderModuleCreateFlags)13121   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags  )
13122   {
13123 
13124     return "{}";
13125   }
13126 
13127 
13128   using ShaderStageFlags = Flags<ShaderStageFlagBits>;
13129 
13130   template <> struct FlagTraits<ShaderStageFlagBits>
13131   {
13132     enum : VkFlags
13133     {
13134       allFlags = VkFlags(ShaderStageFlagBits::eVertex) | VkFlags(ShaderStageFlagBits::eTessellationControl) | VkFlags(ShaderStageFlagBits::eTessellationEvaluation) | VkFlags(ShaderStageFlagBits::eGeometry) | VkFlags(ShaderStageFlagBits::eFragment) | VkFlags(ShaderStageFlagBits::eCompute) | VkFlags(ShaderStageFlagBits::eAllGraphics) | VkFlags(ShaderStageFlagBits::eAll) | VkFlags(ShaderStageFlagBits::eRaygenKHR) | VkFlags(ShaderStageFlagBits::eAnyHitKHR) | VkFlags(ShaderStageFlagBits::eClosestHitKHR) | VkFlags(ShaderStageFlagBits::eMissKHR) | VkFlags(ShaderStageFlagBits::eIntersectionKHR) | VkFlags(ShaderStageFlagBits::eCallableKHR) | VkFlags(ShaderStageFlagBits::eTaskNV) | VkFlags(ShaderStageFlagBits::eMeshNV)
13135     };
13136   };
13137 
operator |(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)13138   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13139   {
13140     return ShaderStageFlags( bit0 ) | bit1;
13141   }
13142 
operator &(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)13143   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13144   {
13145     return ShaderStageFlags( bit0 ) & bit1;
13146   }
13147 
operator ^(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)13148   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13149   {
13150     return ShaderStageFlags( bit0 ) ^ bit1;
13151   }
13152 
operator ~(ShaderStageFlagBits bits)13153   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator~( ShaderStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
13154   {
13155     return ~( ShaderStageFlags( bits ) );
13156   }
13157 
to_string(ShaderStageFlags value)13158   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value  )
13159   {
13160 
13161     if ( !value ) return "{}";
13162     std::string result;
13163 
13164     if ( value & ShaderStageFlagBits::eVertex ) result += "Vertex | ";
13165     if ( value & ShaderStageFlagBits::eTessellationControl ) result += "TessellationControl | ";
13166     if ( value & ShaderStageFlagBits::eTessellationEvaluation ) result += "TessellationEvaluation | ";
13167     if ( value & ShaderStageFlagBits::eGeometry ) result += "Geometry | ";
13168     if ( value & ShaderStageFlagBits::eFragment ) result += "Fragment | ";
13169     if ( value & ShaderStageFlagBits::eCompute ) result += "Compute | ";
13170     if ( value & ShaderStageFlagBits::eRaygenKHR ) result += "RaygenKHR | ";
13171     if ( value & ShaderStageFlagBits::eAnyHitKHR ) result += "AnyHitKHR | ";
13172     if ( value & ShaderStageFlagBits::eClosestHitKHR ) result += "ClosestHitKHR | ";
13173     if ( value & ShaderStageFlagBits::eMissKHR ) result += "MissKHR | ";
13174     if ( value & ShaderStageFlagBits::eIntersectionKHR ) result += "IntersectionKHR | ";
13175     if ( value & ShaderStageFlagBits::eCallableKHR ) result += "CallableKHR | ";
13176     if ( value & ShaderStageFlagBits::eTaskNV ) result += "TaskNV | ";
13177     if ( value & ShaderStageFlagBits::eMeshNV ) result += "MeshNV | ";
13178     return "{ " + result.substr(0, result.size() - 3) + " }";
13179   }
13180 
13181 
13182   using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits>;
13183 
13184   template <> struct FlagTraits<SparseImageFormatFlagBits>
13185   {
13186     enum : VkFlags
13187     {
13188       allFlags = VkFlags(SparseImageFormatFlagBits::eSingleMiptail) | VkFlags(SparseImageFormatFlagBits::eAlignedMipSize) | VkFlags(SparseImageFormatFlagBits::eNonstandardBlockSize)
13189     };
13190   };
13191 
operator |(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)13192   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13193   {
13194     return SparseImageFormatFlags( bit0 ) | bit1;
13195   }
13196 
operator &(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)13197   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator&( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13198   {
13199     return SparseImageFormatFlags( bit0 ) & bit1;
13200   }
13201 
operator ^(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)13202   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13203   {
13204     return SparseImageFormatFlags( bit0 ) ^ bit1;
13205   }
13206 
operator ~(SparseImageFormatFlagBits bits)13207   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits ) VULKAN_HPP_NOEXCEPT
13208   {
13209     return ~( SparseImageFormatFlags( bits ) );
13210   }
13211 
to_string(SparseImageFormatFlags value)13212   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value  )
13213   {
13214 
13215     if ( !value ) return "{}";
13216     std::string result;
13217 
13218     if ( value & SparseImageFormatFlagBits::eSingleMiptail ) result += "SingleMiptail | ";
13219     if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) result += "AlignedMipSize | ";
13220     if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) result += "NonstandardBlockSize | ";
13221     return "{ " + result.substr(0, result.size() - 3) + " }";
13222   }
13223 
13224 
13225   using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits>;
13226 
13227   template <> struct FlagTraits<SparseMemoryBindFlagBits>
13228   {
13229     enum : VkFlags
13230     {
13231       allFlags = VkFlags(SparseMemoryBindFlagBits::eMetadata)
13232     };
13233   };
13234 
operator |(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)13235   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13236   {
13237     return SparseMemoryBindFlags( bit0 ) | bit1;
13238   }
13239 
operator &(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)13240   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator&( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13241   {
13242     return SparseMemoryBindFlags( bit0 ) & bit1;
13243   }
13244 
operator ^(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)13245   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13246   {
13247     return SparseMemoryBindFlags( bit0 ) ^ bit1;
13248   }
13249 
operator ~(SparseMemoryBindFlagBits bits)13250   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits ) VULKAN_HPP_NOEXCEPT
13251   {
13252     return ~( SparseMemoryBindFlags( bits ) );
13253   }
13254 
to_string(SparseMemoryBindFlags value)13255   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value  )
13256   {
13257 
13258     if ( !value ) return "{}";
13259     std::string result;
13260 
13261     if ( value & SparseMemoryBindFlagBits::eMetadata ) result += "Metadata | ";
13262     return "{ " + result.substr(0, result.size() - 3) + " }";
13263   }
13264 
13265 
13266   using StencilFaceFlags = Flags<StencilFaceFlagBits>;
13267 
13268   template <> struct FlagTraits<StencilFaceFlagBits>
13269   {
13270     enum : VkFlags
13271     {
13272       allFlags = VkFlags(StencilFaceFlagBits::eFront) | VkFlags(StencilFaceFlagBits::eBack) | VkFlags(StencilFaceFlagBits::eFrontAndBack)
13273     };
13274   };
13275 
operator |(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)13276   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13277   {
13278     return StencilFaceFlags( bit0 ) | bit1;
13279   }
13280 
operator &(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)13281   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13282   {
13283     return StencilFaceFlags( bit0 ) & bit1;
13284   }
13285 
operator ^(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)13286   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13287   {
13288     return StencilFaceFlags( bit0 ) ^ bit1;
13289   }
13290 
operator ~(StencilFaceFlagBits bits)13291   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator~( StencilFaceFlagBits bits ) VULKAN_HPP_NOEXCEPT
13292   {
13293     return ~( StencilFaceFlags( bits ) );
13294   }
13295 
to_string(StencilFaceFlags value)13296   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value  )
13297   {
13298 
13299     if ( !value ) return "{}";
13300     std::string result;
13301 
13302     if ( value & StencilFaceFlagBits::eFront ) result += "Front | ";
13303     if ( value & StencilFaceFlagBits::eBack ) result += "Back | ";
13304     return "{ " + result.substr(0, result.size() - 3) + " }";
13305   }
13306 
13307 #ifdef VK_USE_PLATFORM_GGP
13308   enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkFlags
13309   {};
13310 
to_string(StreamDescriptorSurfaceCreateFlagBitsGGP)13311   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP )
13312   {
13313     return "(void)";
13314   }
13315 
13316   using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP>;
13317 
to_string(StreamDescriptorSurfaceCreateFlagsGGP)13318   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP  )
13319   {
13320 
13321     return "{}";
13322   }
13323 #endif /*VK_USE_PLATFORM_GGP*/
13324 
13325 
13326   using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits>;
13327 
13328   template <> struct FlagTraits<SubgroupFeatureFlagBits>
13329   {
13330     enum : VkFlags
13331     {
13332       allFlags = VkFlags(SubgroupFeatureFlagBits::eBasic) | VkFlags(SubgroupFeatureFlagBits::eVote) | VkFlags(SubgroupFeatureFlagBits::eArithmetic) | VkFlags(SubgroupFeatureFlagBits::eBallot) | VkFlags(SubgroupFeatureFlagBits::eShuffle) | VkFlags(SubgroupFeatureFlagBits::eShuffleRelative) | VkFlags(SubgroupFeatureFlagBits::eClustered) | VkFlags(SubgroupFeatureFlagBits::eQuad) | VkFlags(SubgroupFeatureFlagBits::ePartitionedNV)
13333     };
13334   };
13335 
operator |(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)13336   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13337   {
13338     return SubgroupFeatureFlags( bit0 ) | bit1;
13339   }
13340 
operator &(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)13341   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator&( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13342   {
13343     return SubgroupFeatureFlags( bit0 ) & bit1;
13344   }
13345 
operator ^(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)13346   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13347   {
13348     return SubgroupFeatureFlags( bit0 ) ^ bit1;
13349   }
13350 
operator ~(SubgroupFeatureFlagBits bits)13351   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
13352   {
13353     return ~( SubgroupFeatureFlags( bits ) );
13354   }
13355 
to_string(SubgroupFeatureFlags value)13356   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value  )
13357   {
13358 
13359     if ( !value ) return "{}";
13360     std::string result;
13361 
13362     if ( value & SubgroupFeatureFlagBits::eBasic ) result += "Basic | ";
13363     if ( value & SubgroupFeatureFlagBits::eVote ) result += "Vote | ";
13364     if ( value & SubgroupFeatureFlagBits::eArithmetic ) result += "Arithmetic | ";
13365     if ( value & SubgroupFeatureFlagBits::eBallot ) result += "Ballot | ";
13366     if ( value & SubgroupFeatureFlagBits::eShuffle ) result += "Shuffle | ";
13367     if ( value & SubgroupFeatureFlagBits::eShuffleRelative ) result += "ShuffleRelative | ";
13368     if ( value & SubgroupFeatureFlagBits::eClustered ) result += "Clustered | ";
13369     if ( value & SubgroupFeatureFlagBits::eQuad ) result += "Quad | ";
13370     if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) result += "PartitionedNV | ";
13371     return "{ " + result.substr(0, result.size() - 3) + " }";
13372   }
13373 
13374 
13375   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits>;
13376 
13377   template <> struct FlagTraits<SubpassDescriptionFlagBits>
13378   {
13379     enum : VkFlags
13380     {
13381       allFlags = VkFlags(SubpassDescriptionFlagBits::ePerViewAttributesNVX) | VkFlags(SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX) | VkFlags(SubpassDescriptionFlagBits::eFragmentRegionQCOM) | VkFlags(SubpassDescriptionFlagBits::eShaderResolveQCOM)
13382     };
13383   };
13384 
operator |(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)13385   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13386   {
13387     return SubpassDescriptionFlags( bit0 ) | bit1;
13388   }
13389 
operator &(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)13390   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator&( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13391   {
13392     return SubpassDescriptionFlags( bit0 ) & bit1;
13393   }
13394 
operator ^(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)13395   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13396   {
13397     return SubpassDescriptionFlags( bit0 ) ^ bit1;
13398   }
13399 
operator ~(SubpassDescriptionFlagBits bits)13400   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT
13401   {
13402     return ~( SubpassDescriptionFlags( bits ) );
13403   }
13404 
to_string(SubpassDescriptionFlags value)13405   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value  )
13406   {
13407 
13408     if ( !value ) return "{}";
13409     std::string result;
13410 
13411     if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) result += "PerViewAttributesNVX | ";
13412     if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) result += "PerViewPositionXOnlyNVX | ";
13413     if ( value & SubpassDescriptionFlagBits::eFragmentRegionQCOM ) result += "FragmentRegionQCOM | ";
13414     if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM ) result += "ShaderResolveQCOM | ";
13415     return "{ " + result.substr(0, result.size() - 3) + " }";
13416   }
13417 
13418 
13419   using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT>;
13420 
13421   template <> struct FlagTraits<SurfaceCounterFlagBitsEXT>
13422   {
13423     enum : VkFlags
13424     {
13425       allFlags = VkFlags(SurfaceCounterFlagBitsEXT::eVblank)
13426     };
13427   };
13428 
operator |(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13429   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13430   {
13431     return SurfaceCounterFlagsEXT( bit0 ) | bit1;
13432   }
13433 
operator &(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13434   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator&( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13435   {
13436     return SurfaceCounterFlagsEXT( bit0 ) & bit1;
13437   }
13438 
operator ^(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13439   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13440   {
13441     return SurfaceCounterFlagsEXT( bit0 ) ^ bit1;
13442   }
13443 
operator ~(SurfaceCounterFlagBitsEXT bits)13444   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13445   {
13446     return ~( SurfaceCounterFlagsEXT( bits ) );
13447   }
13448 
to_string(SurfaceCounterFlagsEXT value)13449   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value  )
13450   {
13451 
13452     if ( !value ) return "{}";
13453     std::string result;
13454 
13455     if ( value & SurfaceCounterFlagBitsEXT::eVblank ) result += "Vblank | ";
13456     return "{ " + result.substr(0, result.size() - 3) + " }";
13457   }
13458 
13459 
13460   using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR>;
13461 
13462   template <> struct FlagTraits<SurfaceTransformFlagBitsKHR>
13463   {
13464     enum : VkFlags
13465     {
13466       allFlags = VkFlags(SurfaceTransformFlagBitsKHR::eIdentity) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate90) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate180) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate270) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirror) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270) | VkFlags(SurfaceTransformFlagBitsKHR::eInherit)
13467     };
13468   };
13469 
operator |(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)13470   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13471   {
13472     return SurfaceTransformFlagsKHR( bit0 ) | bit1;
13473   }
13474 
operator &(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)13475   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator&( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13476   {
13477     return SurfaceTransformFlagsKHR( bit0 ) & bit1;
13478   }
13479 
operator ^(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)13480   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13481   {
13482     return SurfaceTransformFlagsKHR( bit0 ) ^ bit1;
13483   }
13484 
operator ~(SurfaceTransformFlagBitsKHR bits)13485   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13486   {
13487     return ~( SurfaceTransformFlagsKHR( bits ) );
13488   }
13489 
to_string(SurfaceTransformFlagsKHR value)13490   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value  )
13491   {
13492 
13493     if ( !value ) return "{}";
13494     std::string result;
13495 
13496     if ( value & SurfaceTransformFlagBitsKHR::eIdentity ) result += "Identity | ";
13497     if ( value & SurfaceTransformFlagBitsKHR::eRotate90 ) result += "Rotate90 | ";
13498     if ( value & SurfaceTransformFlagBitsKHR::eRotate180 ) result += "Rotate180 | ";
13499     if ( value & SurfaceTransformFlagBitsKHR::eRotate270 ) result += "Rotate270 | ";
13500     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror ) result += "HorizontalMirror | ";
13501     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) result += "HorizontalMirrorRotate90 | ";
13502     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) result += "HorizontalMirrorRotate180 | ";
13503     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) result += "HorizontalMirrorRotate270 | ";
13504     if ( value & SurfaceTransformFlagBitsKHR::eInherit ) result += "Inherit | ";
13505     return "{ " + result.substr(0, result.size() - 3) + " }";
13506   }
13507 
13508 
13509   using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR>;
13510 
13511   template <> struct FlagTraits<SwapchainCreateFlagBitsKHR>
13512   {
13513     enum : VkFlags
13514     {
13515       allFlags = VkFlags(SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions) | VkFlags(SwapchainCreateFlagBitsKHR::eProtected) | VkFlags(SwapchainCreateFlagBitsKHR::eMutableFormat)
13516     };
13517   };
13518 
operator |(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)13519   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13520   {
13521     return SwapchainCreateFlagsKHR( bit0 ) | bit1;
13522   }
13523 
operator &(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)13524   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator&( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13525   {
13526     return SwapchainCreateFlagsKHR( bit0 ) & bit1;
13527   }
13528 
operator ^(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)13529   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13530   {
13531     return SwapchainCreateFlagsKHR( bit0 ) ^ bit1;
13532   }
13533 
operator ~(SwapchainCreateFlagBitsKHR bits)13534   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13535   {
13536     return ~( SwapchainCreateFlagsKHR( bits ) );
13537   }
13538 
to_string(SwapchainCreateFlagsKHR value)13539   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value  )
13540   {
13541 
13542     if ( !value ) return "{}";
13543     std::string result;
13544 
13545     if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
13546     if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += "Protected | ";
13547     if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += "MutableFormat | ";
13548     return "{ " + result.substr(0, result.size() - 3) + " }";
13549   }
13550 
13551 
13552   using ToolPurposeFlagsEXT = Flags<ToolPurposeFlagBitsEXT>;
13553 
13554   template <> struct FlagTraits<ToolPurposeFlagBitsEXT>
13555   {
13556     enum : VkFlags
13557     {
13558       allFlags = VkFlags(ToolPurposeFlagBitsEXT::eValidation) | VkFlags(ToolPurposeFlagBitsEXT::eProfiling) | VkFlags(ToolPurposeFlagBitsEXT::eTracing) | VkFlags(ToolPurposeFlagBitsEXT::eAdditionalFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eModifyingFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eDebugReporting) | VkFlags(ToolPurposeFlagBitsEXT::eDebugMarkers)
13559     };
13560   };
13561 
operator |(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13562   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13563   {
13564     return ToolPurposeFlagsEXT( bit0 ) | bit1;
13565   }
13566 
operator &(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13567   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator&( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13568   {
13569     return ToolPurposeFlagsEXT( bit0 ) & bit1;
13570   }
13571 
operator ^(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13572   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13573   {
13574     return ToolPurposeFlagsEXT( bit0 ) ^ bit1;
13575   }
13576 
operator ~(ToolPurposeFlagBitsEXT bits)13577   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13578   {
13579     return ~( ToolPurposeFlagsEXT( bits ) );
13580   }
13581 
to_string(ToolPurposeFlagsEXT value)13582   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value  )
13583   {
13584 
13585     if ( !value ) return "{}";
13586     std::string result;
13587 
13588     if ( value & ToolPurposeFlagBitsEXT::eValidation ) result += "Validation | ";
13589     if ( value & ToolPurposeFlagBitsEXT::eProfiling ) result += "Profiling | ";
13590     if ( value & ToolPurposeFlagBitsEXT::eTracing ) result += "Tracing | ";
13591     if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures ) result += "AdditionalFeatures | ";
13592     if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures ) result += "ModifyingFeatures | ";
13593     if ( value & ToolPurposeFlagBitsEXT::eDebugReporting ) result += "DebugReporting | ";
13594     if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers ) result += "DebugMarkers | ";
13595     return "{ " + result.substr(0, result.size() - 3) + " }";
13596   }
13597 
13598   enum class ValidationCacheCreateFlagBitsEXT : VkFlags
13599   {};
13600 
to_string(ValidationCacheCreateFlagBitsEXT)13601   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT )
13602   {
13603     return "(void)";
13604   }
13605 
13606   using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT>;
13607 
to_string(ValidationCacheCreateFlagsEXT)13608   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT  )
13609   {
13610 
13611     return "{}";
13612   }
13613 
13614 #ifdef VK_USE_PLATFORM_VI_NN
13615   enum class ViSurfaceCreateFlagBitsNN : VkFlags
13616   {};
13617 
to_string(ViSurfaceCreateFlagBitsNN)13618   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN )
13619   {
13620     return "(void)";
13621   }
13622 
13623   using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN>;
13624 
to_string(ViSurfaceCreateFlagsNN)13625   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN  )
13626   {
13627 
13628     return "{}";
13629   }
13630 #endif /*VK_USE_PLATFORM_VI_NN*/
13631 
13632 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
13633   enum class WaylandSurfaceCreateFlagBitsKHR : VkFlags
13634   {};
13635 
to_string(WaylandSurfaceCreateFlagBitsKHR)13636   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR )
13637   {
13638     return "(void)";
13639   }
13640 
13641   using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR>;
13642 
to_string(WaylandSurfaceCreateFlagsKHR)13643   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR  )
13644   {
13645 
13646     return "{}";
13647   }
13648 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
13649 
13650 #ifdef VK_USE_PLATFORM_WIN32_KHR
13651   enum class Win32SurfaceCreateFlagBitsKHR : VkFlags
13652   {};
13653 
to_string(Win32SurfaceCreateFlagBitsKHR)13654   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR )
13655   {
13656     return "(void)";
13657   }
13658 
13659   using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
13660 
to_string(Win32SurfaceCreateFlagsKHR)13661   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR  )
13662   {
13663 
13664     return "{}";
13665   }
13666 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13667 
13668 #ifdef VK_USE_PLATFORM_XCB_KHR
13669   enum class XcbSurfaceCreateFlagBitsKHR : VkFlags
13670   {};
13671 
to_string(XcbSurfaceCreateFlagBitsKHR)13672   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR )
13673   {
13674     return "(void)";
13675   }
13676 
13677   using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR>;
13678 
to_string(XcbSurfaceCreateFlagsKHR)13679   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR  )
13680   {
13681 
13682     return "{}";
13683   }
13684 #endif /*VK_USE_PLATFORM_XCB_KHR*/
13685 
13686 #ifdef VK_USE_PLATFORM_XLIB_KHR
13687   enum class XlibSurfaceCreateFlagBitsKHR : VkFlags
13688   {};
13689 
to_string(XlibSurfaceCreateFlagBitsKHR)13690   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR )
13691   {
13692     return "(void)";
13693   }
13694 
13695   using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR>;
13696 
to_string(XlibSurfaceCreateFlagsKHR)13697   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR  )
13698   {
13699 
13700     return "{}";
13701   }
13702 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
13703 } // namespace VULKAN_HPP_NAMESPACE
13704 
13705 #ifndef VULKAN_HPP_NO_EXCEPTIONS
13706 namespace std
13707 {
13708   template <>
13709   struct is_error_code_enum<VULKAN_HPP_NAMESPACE::Result> : public true_type
13710   {};
13711 }
13712 #endif
13713 
13714 namespace VULKAN_HPP_NAMESPACE
13715 {
13716 #ifndef VULKAN_HPP_NO_EXCEPTIONS
13717   class ErrorCategoryImpl : public std::error_category
13718   {
13719     public:
name() const13720     virtual const char* name() const VULKAN_HPP_NOEXCEPT override { return VULKAN_HPP_NAMESPACE_STRING"::Result"; }
message(int ev) const13721     virtual std::string message(int ev) const override { return to_string(static_cast<Result>(ev)); }
13722   };
13723 
13724   class Error
13725   {
13726     public:
13727     Error() VULKAN_HPP_NOEXCEPT = default;
13728     Error(const Error&) VULKAN_HPP_NOEXCEPT = default;
13729     virtual ~Error() VULKAN_HPP_NOEXCEPT = default;
13730 
13731     virtual const char* what() const VULKAN_HPP_NOEXCEPT = 0;
13732   };
13733 
13734   class LogicError : public Error, public std::logic_error
13735   {
13736     public:
LogicError(const std::string & what)13737     explicit LogicError( const std::string& what )
13738       : Error(), std::logic_error(what) {}
LogicError(char const * what)13739     explicit LogicError( char const * what )
13740       : Error(), std::logic_error(what) {}
13741 
what() const13742     virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::logic_error::what(); }
13743   };
13744 
13745   class SystemError : public Error, public std::system_error
13746   {
13747     public:
SystemError(std::error_code ec)13748     SystemError( std::error_code ec )
13749       : Error(), std::system_error(ec) {}
SystemError(std::error_code ec,std::string const & what)13750     SystemError( std::error_code ec, std::string const& what )
13751       : Error(), std::system_error(ec, what) {}
SystemError(std::error_code ec,char const * what)13752     SystemError( std::error_code ec, char const * what )
13753       : Error(), std::system_error(ec, what) {}
SystemError(int ev,std::error_category const & ecat)13754     SystemError( int ev, std::error_category const& ecat )
13755       : Error(), std::system_error(ev, ecat) {}
SystemError(int ev,std::error_category const & ecat,std::string const & what)13756     SystemError( int ev, std::error_category const& ecat, std::string const& what)
13757       : Error(), std::system_error(ev, ecat, what) {}
SystemError(int ev,std::error_category const & ecat,char const * what)13758     SystemError( int ev, std::error_category const& ecat, char const * what)
13759       : Error(), std::system_error(ev, ecat, what) {}
13760 
what() const13761     virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::system_error::what(); }
13762   };
13763 
errorCategory()13764   VULKAN_HPP_INLINE const std::error_category& errorCategory() VULKAN_HPP_NOEXCEPT
13765   {
13766     static ErrorCategoryImpl instance;
13767     return instance;
13768   }
13769 
make_error_code(Result e)13770   VULKAN_HPP_INLINE std::error_code make_error_code(Result e) VULKAN_HPP_NOEXCEPT
13771   {
13772     return std::error_code(static_cast<int>(e), errorCategory());
13773   }
13774 
make_error_condition(Result e)13775   VULKAN_HPP_INLINE std::error_condition make_error_condition(Result e) VULKAN_HPP_NOEXCEPT
13776   {
13777     return std::error_condition(static_cast<int>(e), errorCategory());
13778   }
13779 
13780   class OutOfHostMemoryError : public SystemError
13781   {
13782   public:
OutOfHostMemoryError(std::string const & message)13783     OutOfHostMemoryError( std::string const& message )
13784       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
OutOfHostMemoryError(char const * message)13785     OutOfHostMemoryError( char const * message )
13786       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
13787   };
13788 
13789   class OutOfDeviceMemoryError : public SystemError
13790   {
13791   public:
OutOfDeviceMemoryError(std::string const & message)13792     OutOfDeviceMemoryError( std::string const& message )
13793       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
OutOfDeviceMemoryError(char const * message)13794     OutOfDeviceMemoryError( char const * message )
13795       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
13796   };
13797 
13798   class InitializationFailedError : public SystemError
13799   {
13800   public:
InitializationFailedError(std::string const & message)13801     InitializationFailedError( std::string const& message )
13802       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
InitializationFailedError(char const * message)13803     InitializationFailedError( char const * message )
13804       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
13805   };
13806 
13807   class DeviceLostError : public SystemError
13808   {
13809   public:
DeviceLostError(std::string const & message)13810     DeviceLostError( std::string const& message )
13811       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
DeviceLostError(char const * message)13812     DeviceLostError( char const * message )
13813       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
13814   };
13815 
13816   class MemoryMapFailedError : public SystemError
13817   {
13818   public:
MemoryMapFailedError(std::string const & message)13819     MemoryMapFailedError( std::string const& message )
13820       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
MemoryMapFailedError(char const * message)13821     MemoryMapFailedError( char const * message )
13822       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
13823   };
13824 
13825   class LayerNotPresentError : public SystemError
13826   {
13827   public:
LayerNotPresentError(std::string const & message)13828     LayerNotPresentError( std::string const& message )
13829       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
LayerNotPresentError(char const * message)13830     LayerNotPresentError( char const * message )
13831       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
13832   };
13833 
13834   class ExtensionNotPresentError : public SystemError
13835   {
13836   public:
ExtensionNotPresentError(std::string const & message)13837     ExtensionNotPresentError( std::string const& message )
13838       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
ExtensionNotPresentError(char const * message)13839     ExtensionNotPresentError( char const * message )
13840       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
13841   };
13842 
13843   class FeatureNotPresentError : public SystemError
13844   {
13845   public:
FeatureNotPresentError(std::string const & message)13846     FeatureNotPresentError( std::string const& message )
13847       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
FeatureNotPresentError(char const * message)13848     FeatureNotPresentError( char const * message )
13849       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
13850   };
13851 
13852   class IncompatibleDriverError : public SystemError
13853   {
13854   public:
IncompatibleDriverError(std::string const & message)13855     IncompatibleDriverError( std::string const& message )
13856       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
IncompatibleDriverError(char const * message)13857     IncompatibleDriverError( char const * message )
13858       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
13859   };
13860 
13861   class TooManyObjectsError : public SystemError
13862   {
13863   public:
TooManyObjectsError(std::string const & message)13864     TooManyObjectsError( std::string const& message )
13865       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
TooManyObjectsError(char const * message)13866     TooManyObjectsError( char const * message )
13867       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
13868   };
13869 
13870   class FormatNotSupportedError : public SystemError
13871   {
13872   public:
FormatNotSupportedError(std::string const & message)13873     FormatNotSupportedError( std::string const& message )
13874       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
FormatNotSupportedError(char const * message)13875     FormatNotSupportedError( char const * message )
13876       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
13877   };
13878 
13879   class FragmentedPoolError : public SystemError
13880   {
13881   public:
FragmentedPoolError(std::string const & message)13882     FragmentedPoolError( std::string const& message )
13883       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
FragmentedPoolError(char const * message)13884     FragmentedPoolError( char const * message )
13885       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
13886   };
13887 
13888   class UnknownError : public SystemError
13889   {
13890   public:
UnknownError(std::string const & message)13891     UnknownError( std::string const& message )
13892       : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
UnknownError(char const * message)13893     UnknownError( char const * message )
13894       : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
13895   };
13896 
13897   class OutOfPoolMemoryError : public SystemError
13898   {
13899   public:
OutOfPoolMemoryError(std::string const & message)13900     OutOfPoolMemoryError( std::string const& message )
13901       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
OutOfPoolMemoryError(char const * message)13902     OutOfPoolMemoryError( char const * message )
13903       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
13904   };
13905 
13906   class InvalidExternalHandleError : public SystemError
13907   {
13908   public:
InvalidExternalHandleError(std::string const & message)13909     InvalidExternalHandleError( std::string const& message )
13910       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
InvalidExternalHandleError(char const * message)13911     InvalidExternalHandleError( char const * message )
13912       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
13913   };
13914 
13915   class FragmentationError : public SystemError
13916   {
13917   public:
FragmentationError(std::string const & message)13918     FragmentationError( std::string const& message )
13919       : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
FragmentationError(char const * message)13920     FragmentationError( char const * message )
13921       : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
13922   };
13923 
13924   class InvalidOpaqueCaptureAddressError : public SystemError
13925   {
13926   public:
InvalidOpaqueCaptureAddressError(std::string const & message)13927     InvalidOpaqueCaptureAddressError( std::string const& message )
13928       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
InvalidOpaqueCaptureAddressError(char const * message)13929     InvalidOpaqueCaptureAddressError( char const * message )
13930       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
13931   };
13932 
13933   class SurfaceLostKHRError : public SystemError
13934   {
13935   public:
SurfaceLostKHRError(std::string const & message)13936     SurfaceLostKHRError( std::string const& message )
13937       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
SurfaceLostKHRError(char const * message)13938     SurfaceLostKHRError( char const * message )
13939       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
13940   };
13941 
13942   class NativeWindowInUseKHRError : public SystemError
13943   {
13944   public:
NativeWindowInUseKHRError(std::string const & message)13945     NativeWindowInUseKHRError( std::string const& message )
13946       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
NativeWindowInUseKHRError(char const * message)13947     NativeWindowInUseKHRError( char const * message )
13948       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
13949   };
13950 
13951   class OutOfDateKHRError : public SystemError
13952   {
13953   public:
OutOfDateKHRError(std::string const & message)13954     OutOfDateKHRError( std::string const& message )
13955       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
OutOfDateKHRError(char const * message)13956     OutOfDateKHRError( char const * message )
13957       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
13958   };
13959 
13960   class IncompatibleDisplayKHRError : public SystemError
13961   {
13962   public:
IncompatibleDisplayKHRError(std::string const & message)13963     IncompatibleDisplayKHRError( std::string const& message )
13964       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
IncompatibleDisplayKHRError(char const * message)13965     IncompatibleDisplayKHRError( char const * message )
13966       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
13967   };
13968 
13969   class ValidationFailedEXTError : public SystemError
13970   {
13971   public:
ValidationFailedEXTError(std::string const & message)13972     ValidationFailedEXTError( std::string const& message )
13973       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
ValidationFailedEXTError(char const * message)13974     ValidationFailedEXTError( char const * message )
13975       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
13976   };
13977 
13978   class InvalidShaderNVError : public SystemError
13979   {
13980   public:
InvalidShaderNVError(std::string const & message)13981     InvalidShaderNVError( std::string const& message )
13982       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
InvalidShaderNVError(char const * message)13983     InvalidShaderNVError( char const * message )
13984       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
13985   };
13986 
13987   class IncompatibleVersionKHRError : public SystemError
13988   {
13989   public:
IncompatibleVersionKHRError(std::string const & message)13990     IncompatibleVersionKHRError( std::string const& message )
13991       : SystemError( make_error_code( Result::eErrorIncompatibleVersionKHR ), message ) {}
IncompatibleVersionKHRError(char const * message)13992     IncompatibleVersionKHRError( char const * message )
13993       : SystemError( make_error_code( Result::eErrorIncompatibleVersionKHR ), message ) {}
13994   };
13995 
13996   class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
13997   {
13998   public:
InvalidDrmFormatModifierPlaneLayoutEXTError(std::string const & message)13999     InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const& message )
14000       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
InvalidDrmFormatModifierPlaneLayoutEXTError(char const * message)14001     InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
14002       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
14003   };
14004 
14005   class NotPermittedEXTError : public SystemError
14006   {
14007   public:
NotPermittedEXTError(std::string const & message)14008     NotPermittedEXTError( std::string const& message )
14009       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
NotPermittedEXTError(char const * message)14010     NotPermittedEXTError( char const * message )
14011       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
14012   };
14013 
14014   class FullScreenExclusiveModeLostEXTError : public SystemError
14015   {
14016   public:
FullScreenExclusiveModeLostEXTError(std::string const & message)14017     FullScreenExclusiveModeLostEXTError( std::string const& message )
14018       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
FullScreenExclusiveModeLostEXTError(char const * message)14019     FullScreenExclusiveModeLostEXTError( char const * message )
14020       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
14021   };
14022 
14023 
throwResultException(Result result,char const * message)14024   [[noreturn]] static void throwResultException( Result result, char const * message )
14025   {
14026     switch ( result )
14027     {
14028       case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
14029       case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
14030       case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
14031       case Result::eErrorDeviceLost: throw DeviceLostError( message );
14032       case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
14033       case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
14034       case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
14035       case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
14036       case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
14037       case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
14038       case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
14039       case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
14040       case Result::eErrorUnknown: throw UnknownError( message );
14041       case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
14042       case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
14043       case Result::eErrorFragmentation: throw FragmentationError( message );
14044       case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message );
14045       case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
14046       case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
14047       case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
14048       case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
14049       case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
14050       case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
14051       case Result::eErrorIncompatibleVersionKHR: throw IncompatibleVersionKHRError( message );
14052       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
14053       case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message );
14054       case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
14055       default: throw SystemError( make_error_code( result ) );
14056     }
14057   }
14058 #endif
14059 
ignore(T const &)14060   template <typename T> void ignore(T const&) VULKAN_HPP_NOEXCEPT {}
14061 
14062   template <typename T>
14063   struct ResultValue
14064   {
14065 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue14066     ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(v)))
14067 #else
14068     ResultValue( Result r, T & v )
14069 #endif
14070       : result( r )
14071       , value( v )
14072     {}
14073 
14074 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue14075     ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(std::move(v))))
14076 #else
14077     ResultValue( Result r, T && v )
14078 #endif
14079       : result( r )
14080       , value( std::move( v ) )
14081     {}
14082 
14083     Result  result;
14084     T       value;
14085 
operator std::tuple<Result&,T&>VULKAN_HPP_NAMESPACE::ResultValue14086     operator std::tuple<Result&, T&>() VULKAN_HPP_NOEXCEPT { return std::tuple<Result&, T&>(result, value); }
14087 
14088 #if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST)
14089     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::ResultValue14090     operator T const& () const & VULKAN_HPP_NOEXCEPT
14091     {
14092       return value;
14093     }
14094 
14095     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator T&VULKAN_HPP_NAMESPACE::ResultValue14096     operator T& () & VULKAN_HPP_NOEXCEPT
14097     {
14098       return value;
14099     }
14100 
14101     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::ResultValue14102     operator T const&& () const && VULKAN_HPP_NOEXCEPT
14103     {
14104       return std::move( value );
14105     }
14106 
14107     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator T&&VULKAN_HPP_NAMESPACE::ResultValue14108     operator T&& () && VULKAN_HPP_NOEXCEPT
14109     {
14110       return std::move( value );
14111     }
14112 #endif
14113   };
14114 
14115 #if !defined(VULKAN_HPP_NO_SMART_HANDLE)
14116   template <typename Type, typename Dispatch>
14117   struct ResultValue<UniqueHandle<Type,Dispatch>>
14118   {
14119 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue14120     ResultValue(Result r, UniqueHandle<Type, Dispatch> && v) VULKAN_HPP_NOEXCEPT
14121 #else
14122     ResultValue(Result r, UniqueHandle<Type, Dispatch> && v)
14123 #endif
14124       : result(r)
14125       , value(std::move(v))
14126     {}
14127 
asTupleVULKAN_HPP_NAMESPACE::ResultValue14128     std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple()
14129     {
14130       return std::make_tuple( result, std::move( value ) );
14131     }
14132 
14133 #  if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST)
14134     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::ResultValue14135     operator UniqueHandle<Type, Dispatch>& () & VULKAN_HPP_NOEXCEPT
14136     {
14137       return value;
14138     }
14139 
14140     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::ResultValue14141     operator UniqueHandle<Type, Dispatch>() VULKAN_HPP_NOEXCEPT
14142     {
14143       return std::move(value);
14144     }
14145 #  endif
14146 
14147     Result                        result;
14148     UniqueHandle<Type, Dispatch>  value;
14149   };
14150 
14151   template <typename Type, typename Dispatch>
14152   struct ResultValue<std::vector<UniqueHandle<Type, Dispatch>>>
14153   {
14154 #  ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue14155     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v ) VULKAN_HPP_NOEXCEPT
14156 #  else
14157     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v )
14158 #  endif
14159       : result( r )
14160       , value( std::move( v ) )
14161     {}
14162 
14163     Result                                    result;
14164     std::vector<UniqueHandle<Type, Dispatch>> value;
14165 
operator std::tuple<Result&,std::vector<UniqueHandle<Type,Dispatch>>&>VULKAN_HPP_NAMESPACE::ResultValue14166     operator std::tuple<Result &, std::vector<UniqueHandle<Type, Dispatch>> &>() VULKAN_HPP_NOEXCEPT
14167     {
14168       return std::tuple<Result &, std::vector<UniqueHandle<Type, Dispatch>> &>( result, value );
14169     }
14170   };
14171 #endif
14172 
14173   template <typename T>
14174   struct ResultValueType
14175   {
14176 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14177     typedef ResultValue<T>  type;
14178 #else
14179     typedef T               type;
14180 #endif
14181   };
14182 
14183   template <>
14184   struct ResultValueType<void>
14185   {
14186 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14187     typedef Result type;
14188 #else
14189     typedef void   type;
14190 #endif
14191   };
14192 
createResultValue(Result result,char const * message)14193   VULKAN_HPP_INLINE ResultValueType<void>::type createResultValue( Result result, char const * message )
14194   {
14195 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14196     ignore(message);
14197     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14198     return result;
14199 #else
14200     if ( result != Result::eSuccess )
14201     {
14202       throwResultException( result, message );
14203     }
14204 #endif
14205   }
14206 
14207   template <typename T>
createResultValue(Result result,T & data,char const * message)14208   VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValue( Result result, T & data, char const * message )
14209   {
14210 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14211     ignore(message);
14212     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14213     return ResultValue<T>( result, std::move( data ) );
14214 #else
14215     if ( result != Result::eSuccess )
14216     {
14217       throwResultException( result, message );
14218     }
14219     return std::move( data );
14220 #endif
14221   }
14222 
createResultValue(Result result,char const * message,std::initializer_list<Result> successCodes)14223   VULKAN_HPP_INLINE Result createResultValue( Result result, char const * message, std::initializer_list<Result> successCodes )
14224   {
14225 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14226     ignore(message);
14227     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14228 #else
14229     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14230     {
14231       throwResultException( result, message );
14232     }
14233 #endif
14234     return result;
14235   }
14236 
14237   template <typename T>
createResultValue(Result result,T & data,char const * message,std::initializer_list<Result> successCodes)14238   VULKAN_HPP_INLINE ResultValue<T> createResultValue( Result result, T & data, char const * message, std::initializer_list<Result> successCodes )
14239   {
14240 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14241     ignore(message);
14242     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14243 #else
14244     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14245     {
14246       throwResultException( result, message );
14247     }
14248 #endif
14249     return ResultValue<T>( result, data );
14250   }
14251 
14252 #ifndef VULKAN_HPP_NO_SMART_HANDLE
14253   template <typename T, typename D>
createResultValue(Result result,T & data,char const * message,typename UniqueHandleTraits<T,D>::deleter const & deleter)14254   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<T,D>>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits<T,D>::deleter const& deleter )
14255   {
14256 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14257     ignore(message);
14258     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14259     return ResultValue<UniqueHandle<T,D>>( result, UniqueHandle<T,D>(data, deleter) );
14260 #else
14261     if ( result != Result::eSuccess )
14262     {
14263       throwResultException( result, message );
14264     }
14265     return UniqueHandle<T,D>(data, deleter);
14266 #endif
14267   }
14268 
14269   template <typename T, typename D>
14270   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)14271                     createResultValue( Result                                             result,
14272                                        T &                                                data,
14273                                        char const *                                       message,
14274                                        std::initializer_list<Result>                      successCodes,
14275                                        typename UniqueHandleTraits<T, D>::deleter const & deleter )
14276   {
14277 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
14278     ignore( message );
14279     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14280 #  else
14281     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14282     {
14283       throwResultException( result, message );
14284     }
14285 #  endif
14286     return ResultValue<UniqueHandle<T, D>>( result, UniqueHandle<T, D>( data, deleter ) );
14287   }
14288 
14289   template <typename T, typename D>
14290   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<T, D>>>::type
createResultValue(Result result,std::vector<UniqueHandle<T,D>> && data,char const * message)14291     createResultValue( Result result, std::vector<UniqueHandle<T, D>> && data, char const * message )
14292   {
14293 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
14294     ignore( message );
14295     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14296     return ResultValue<std::vector<UniqueHandle<T, D>>>( result, std::move( data ) );
14297 #  else
14298     if ( result != Result::eSuccess )
14299     {
14300       throwResultException( result, message );
14301     }
14302     return std::move( data );
14303 #  endif
14304   }
14305 
14306   template <typename T, typename D>
14307   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)14308                     createResultValue( Result                             result,
14309                                        std::vector<UniqueHandle<T, D>> && data,
14310                                        char const *                       message,
14311                                        std::initializer_list<Result>      successCodes )
14312   {
14313 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
14314     ignore( message );
14315     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14316 #  else
14317     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14318     {
14319       throwResultException( result, message );
14320     }
14321 #  endif
14322     return ResultValue<std::vector<UniqueHandle<T, D>>>( result, std::move( data ) );
14323   }
14324 #endif
14325 
14326   struct AabbPositionsKHR
14327   {
14328 
14329 
14330 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR14331     VULKAN_HPP_CONSTEXPR AabbPositionsKHR(float minX_ = {}, float minY_ = {}, float minZ_ = {}, float maxX_ = {}, float maxY_ = {}, float maxZ_ = {}) VULKAN_HPP_NOEXCEPT
14332     : minX( minX_ ), minY( minY_ ), minZ( minZ_ ), maxX( maxX_ ), maxY( maxY_ ), maxZ( maxZ_ )
14333     {}
14334 
14335     VULKAN_HPP_CONSTEXPR AabbPositionsKHR( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14336 
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR14337     AabbPositionsKHR( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14338     {
14339       *this = rhs;
14340     }
14341 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14342 
operator =VULKAN_HPP_NAMESPACE::AabbPositionsKHR14343     AabbPositionsKHR & operator=( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14344     {
14345       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AabbPositionsKHR const *>( &rhs );
14346       return *this;
14347     }
14348 
operator =VULKAN_HPP_NAMESPACE::AabbPositionsKHR14349     AabbPositionsKHR & operator=( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14350     {
14351       memcpy( static_cast<void *>( this ), &rhs, sizeof( AabbPositionsKHR ) );
14352       return *this;
14353     }
14354 
setMinXVULKAN_HPP_NAMESPACE::AabbPositionsKHR14355     AabbPositionsKHR & setMinX( float minX_ ) VULKAN_HPP_NOEXCEPT
14356     {
14357       minX = minX_;
14358       return *this;
14359     }
14360 
setMinYVULKAN_HPP_NAMESPACE::AabbPositionsKHR14361     AabbPositionsKHR & setMinY( float minY_ ) VULKAN_HPP_NOEXCEPT
14362     {
14363       minY = minY_;
14364       return *this;
14365     }
14366 
setMinZVULKAN_HPP_NAMESPACE::AabbPositionsKHR14367     AabbPositionsKHR & setMinZ( float minZ_ ) VULKAN_HPP_NOEXCEPT
14368     {
14369       minZ = minZ_;
14370       return *this;
14371     }
14372 
setMaxXVULKAN_HPP_NAMESPACE::AabbPositionsKHR14373     AabbPositionsKHR & setMaxX( float maxX_ ) VULKAN_HPP_NOEXCEPT
14374     {
14375       maxX = maxX_;
14376       return *this;
14377     }
14378 
setMaxYVULKAN_HPP_NAMESPACE::AabbPositionsKHR14379     AabbPositionsKHR & setMaxY( float maxY_ ) VULKAN_HPP_NOEXCEPT
14380     {
14381       maxY = maxY_;
14382       return *this;
14383     }
14384 
setMaxZVULKAN_HPP_NAMESPACE::AabbPositionsKHR14385     AabbPositionsKHR & setMaxZ( float maxZ_ ) VULKAN_HPP_NOEXCEPT
14386     {
14387       maxZ = maxZ_;
14388       return *this;
14389     }
14390 
14391 
operator VkAabbPositionsKHR const&VULKAN_HPP_NAMESPACE::AabbPositionsKHR14392     operator VkAabbPositionsKHR const&() const VULKAN_HPP_NOEXCEPT
14393     {
14394       return *reinterpret_cast<const VkAabbPositionsKHR*>( this );
14395     }
14396 
operator VkAabbPositionsKHR&VULKAN_HPP_NAMESPACE::AabbPositionsKHR14397     operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT
14398     {
14399       return *reinterpret_cast<VkAabbPositionsKHR*>( this );
14400     }
14401 
14402 
14403 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14404     auto operator<=>( AabbPositionsKHR const& ) const = default;
14405 #else
operator ==VULKAN_HPP_NAMESPACE::AabbPositionsKHR14406     bool operator==( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
14407     {
14408       return ( minX == rhs.minX )
14409           && ( minY == rhs.minY )
14410           && ( minZ == rhs.minZ )
14411           && ( maxX == rhs.maxX )
14412           && ( maxY == rhs.maxY )
14413           && ( maxZ == rhs.maxZ );
14414     }
14415 
operator !=VULKAN_HPP_NAMESPACE::AabbPositionsKHR14416     bool operator!=( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
14417     {
14418       return !operator==( rhs );
14419     }
14420 #endif
14421 
14422 
14423 
14424   public:
14425     float minX = {};
14426     float minY = {};
14427     float minZ = {};
14428     float maxX = {};
14429     float maxY = {};
14430     float maxZ = {};
14431 
14432   };
14433   static_assert( sizeof( AabbPositionsKHR ) == sizeof( VkAabbPositionsKHR ), "struct and wrapper have different size!" );
14434   static_assert( std::is_standard_layout<AabbPositionsKHR>::value, "struct wrapper is not a standard layout!" );
14435   using AabbPositionsNV = AabbPositionsKHR;
14436 
14437   class AccelerationStructureKHR
14438   {
14439   public:
14440     using CType = VkAccelerationStructureKHR;
14441 
14442     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR;
14443     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR;
14444 
14445   public:
AccelerationStructureKHR()14446     VULKAN_HPP_CONSTEXPR AccelerationStructureKHR() VULKAN_HPP_NOEXCEPT
14447       : m_accelerationStructureKHR(VK_NULL_HANDLE)
14448     {}
14449 
AccelerationStructureKHR(std::nullptr_t)14450     VULKAN_HPP_CONSTEXPR AccelerationStructureKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14451       : m_accelerationStructureKHR(VK_NULL_HANDLE)
14452     {}
14453 
AccelerationStructureKHR(VkAccelerationStructureKHR accelerationStructureKHR)14454     VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureKHR( VkAccelerationStructureKHR accelerationStructureKHR ) VULKAN_HPP_NOEXCEPT
14455       : m_accelerationStructureKHR( accelerationStructureKHR )
14456     {}
14457 
14458 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkAccelerationStructureKHR accelerationStructureKHR)14459     AccelerationStructureKHR & operator=(VkAccelerationStructureKHR accelerationStructureKHR) VULKAN_HPP_NOEXCEPT
14460     {
14461       m_accelerationStructureKHR = accelerationStructureKHR;
14462       return *this;
14463     }
14464 #endif
14465 
operator =(std::nullptr_t)14466     AccelerationStructureKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14467     {
14468       m_accelerationStructureKHR = VK_NULL_HANDLE;
14469       return *this;
14470     }
14471 
14472 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14473     auto operator<=>( AccelerationStructureKHR const& ) const = default;
14474 #else
operator ==(AccelerationStructureKHR const & rhs) const14475     bool operator==( AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14476     {
14477       return m_accelerationStructureKHR == rhs.m_accelerationStructureKHR;
14478     }
14479 
operator !=(AccelerationStructureKHR const & rhs) const14480     bool operator!=(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14481     {
14482       return m_accelerationStructureKHR != rhs.m_accelerationStructureKHR;
14483     }
14484 
operator <(AccelerationStructureKHR const & rhs) const14485     bool operator<(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14486     {
14487       return m_accelerationStructureKHR < rhs.m_accelerationStructureKHR;
14488     }
14489 #endif
14490 
operator VkAccelerationStructureKHR() const14491     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureKHR() const VULKAN_HPP_NOEXCEPT
14492     {
14493       return m_accelerationStructureKHR;
14494     }
14495 
operator bool() const14496     explicit operator bool() const VULKAN_HPP_NOEXCEPT
14497     {
14498       return m_accelerationStructureKHR != VK_NULL_HANDLE;
14499     }
14500 
operator !() const14501     bool operator!() const VULKAN_HPP_NOEXCEPT
14502     {
14503       return m_accelerationStructureKHR == VK_NULL_HANDLE;
14504     }
14505 
14506   private:
14507     VkAccelerationStructureKHR m_accelerationStructureKHR;
14508   };
14509   static_assert( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR ) == sizeof( VkAccelerationStructureKHR ), "handle and wrapper have different size!" );
14510 
14511   template <>
14512   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eAccelerationStructureKHR>
14513   {
14514     using type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
14515   };
14516 
14517   template <>
14518   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR>
14519   {
14520     using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
14521   };
14522 
14523 
14524   template <>
14525   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR>
14526   {
14527     using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
14528   };
14529 
14530 
14531   template <>
14532   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
14533   {
14534     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
14535   };
14536   using AccelerationStructureNV = AccelerationStructureKHR;
14537 
14538 #ifdef VK_ENABLE_BETA_EXTENSIONS
14539   union DeviceOrHostAddressConstKHR
14540   {
DeviceOrHostAddressConstKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs)14541     DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const& rhs ) VULKAN_HPP_NOEXCEPT
14542     {
14543       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) );
14544     }
14545 
DeviceOrHostAddressConstKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )14546     DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
14547       : deviceAddress( deviceAddress_ )
14548     {}
14549 
DeviceOrHostAddressConstKHR(const void * hostAddress_)14550     DeviceOrHostAddressConstKHR( const void* hostAddress_ )
14551       : hostAddress( hostAddress_ )
14552     {}
14553 
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)14554     DeviceOrHostAddressConstKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
14555     {
14556       deviceAddress = deviceAddress_;
14557       return *this;
14558     }
14559 
setHostAddress(const void * hostAddress_)14560     DeviceOrHostAddressConstKHR & setHostAddress( const void* hostAddress_ ) VULKAN_HPP_NOEXCEPT
14561     {
14562       hostAddress = hostAddress_;
14563       return *this;
14564     }
14565 
operator =(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs)14566     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14567     {
14568       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) );
14569       return *this;
14570     }
14571 
operator VkDeviceOrHostAddressConstKHR const&() const14572     operator VkDeviceOrHostAddressConstKHR const&() const
14573     {
14574       return *reinterpret_cast<const VkDeviceOrHostAddressConstKHR*>(this);
14575     }
14576 
operator VkDeviceOrHostAddressConstKHR&()14577     operator VkDeviceOrHostAddressConstKHR &()
14578     {
14579       return *reinterpret_cast<VkDeviceOrHostAddressConstKHR*>(this);
14580     }
14581 
14582 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
14583     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
14584     const void* hostAddress;
14585 #else
14586     VkDeviceAddress deviceAddress;
14587     const void* hostAddress;
14588 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
14589   };
14590 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14591 
14592 #ifdef VK_ENABLE_BETA_EXTENSIONS
14593   struct AccelerationStructureGeometryTrianglesDataKHR
14594   {
14595     static const bool allowDuplicate = false;
14596     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
14597 
14598 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14599     AccelerationStructureGeometryTrianglesDataKHR(VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData_ = {}) VULKAN_HPP_NOEXCEPT
14600     : vertexFormat( vertexFormat_ ), vertexData( vertexData_ ), vertexStride( vertexStride_ ), indexType( indexType_ ), indexData( indexData_ ), transformData( transformData_ )
14601     {}
14602 
14603     AccelerationStructureGeometryTrianglesDataKHR( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14604 
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14605     AccelerationStructureGeometryTrianglesDataKHR( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14606     {
14607       *this = rhs;
14608     }
14609 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14610 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14611     AccelerationStructureGeometryTrianglesDataKHR & operator=( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14612     {
14613       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const *>( &rhs );
14614       return *this;
14615     }
14616 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14617     AccelerationStructureGeometryTrianglesDataKHR & operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14618     {
14619       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryTrianglesDataKHR ) );
14620       return *this;
14621     }
14622 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14623     AccelerationStructureGeometryTrianglesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
14624     {
14625       pNext = pNext_;
14626       return *this;
14627     }
14628 
setVertexFormatVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14629     AccelerationStructureGeometryTrianglesDataKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
14630     {
14631       vertexFormat = vertexFormat_;
14632       return *this;
14633     }
14634 
setVertexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14635     AccelerationStructureGeometryTrianglesDataKHR & setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
14636     {
14637       vertexData = vertexData_;
14638       return *this;
14639     }
14640 
setVertexStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14641     AccelerationStructureGeometryTrianglesDataKHR & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
14642     {
14643       vertexStride = vertexStride_;
14644       return *this;
14645     }
14646 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14647     AccelerationStructureGeometryTrianglesDataKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
14648     {
14649       indexType = indexType_;
14650       return *this;
14651     }
14652 
setIndexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14653     AccelerationStructureGeometryTrianglesDataKHR & setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT
14654     {
14655       indexData = indexData_;
14656       return *this;
14657     }
14658 
setTransformDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14659     AccelerationStructureGeometryTrianglesDataKHR & setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT
14660     {
14661       transformData = transformData_;
14662       return *this;
14663     }
14664 
14665 
operator VkAccelerationStructureGeometryTrianglesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14666     operator VkAccelerationStructureGeometryTrianglesDataKHR const&() const VULKAN_HPP_NOEXCEPT
14667     {
14668       return *reinterpret_cast<const VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
14669     }
14670 
operator VkAccelerationStructureGeometryTrianglesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14671     operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT
14672     {
14673       return *reinterpret_cast<VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
14674     }
14675 
14676 
14677 
14678 
14679   public:
14680     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
14681     const void* pNext = {};
14682     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
14683     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {};
14684     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
14685     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
14686     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData = {};
14687     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData = {};
14688 
14689   };
14690   static_assert( sizeof( AccelerationStructureGeometryTrianglesDataKHR ) == sizeof( VkAccelerationStructureGeometryTrianglesDataKHR ), "struct and wrapper have different size!" );
14691   static_assert( std::is_standard_layout<AccelerationStructureGeometryTrianglesDataKHR>::value, "struct wrapper is not a standard layout!" );
14692 
14693   template <>
14694   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryTrianglesDataKHR>
14695   {
14696     using Type = AccelerationStructureGeometryTrianglesDataKHR;
14697   };
14698 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14699 
14700 #ifdef VK_ENABLE_BETA_EXTENSIONS
14701   struct AccelerationStructureGeometryAabbsDataKHR
14702   {
14703     static const bool allowDuplicate = false;
14704     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
14705 
14706 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14707     AccelerationStructureGeometryAabbsDataKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}) VULKAN_HPP_NOEXCEPT
14708     : data( data_ ), stride( stride_ )
14709     {}
14710 
14711     AccelerationStructureGeometryAabbsDataKHR( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14712 
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14713     AccelerationStructureGeometryAabbsDataKHR( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14714     {
14715       *this = rhs;
14716     }
14717 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14718 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14719     AccelerationStructureGeometryAabbsDataKHR & operator=( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14720     {
14721       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const *>( &rhs );
14722       return *this;
14723     }
14724 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14725     AccelerationStructureGeometryAabbsDataKHR & operator=( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14726     {
14727       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryAabbsDataKHR ) );
14728       return *this;
14729     }
14730 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14731     AccelerationStructureGeometryAabbsDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
14732     {
14733       pNext = pNext_;
14734       return *this;
14735     }
14736 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14737     AccelerationStructureGeometryAabbsDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
14738     {
14739       data = data_;
14740       return *this;
14741     }
14742 
setStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14743     AccelerationStructureGeometryAabbsDataKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
14744     {
14745       stride = stride_;
14746       return *this;
14747     }
14748 
14749 
operator VkAccelerationStructureGeometryAabbsDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14750     operator VkAccelerationStructureGeometryAabbsDataKHR const&() const VULKAN_HPP_NOEXCEPT
14751     {
14752       return *reinterpret_cast<const VkAccelerationStructureGeometryAabbsDataKHR*>( this );
14753     }
14754 
operator VkAccelerationStructureGeometryAabbsDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14755     operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT
14756     {
14757       return *reinterpret_cast<VkAccelerationStructureGeometryAabbsDataKHR*>( this );
14758     }
14759 
14760 
14761 
14762 
14763   public:
14764     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
14765     const void* pNext = {};
14766     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
14767     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
14768 
14769   };
14770   static_assert( sizeof( AccelerationStructureGeometryAabbsDataKHR ) == sizeof( VkAccelerationStructureGeometryAabbsDataKHR ), "struct and wrapper have different size!" );
14771   static_assert( std::is_standard_layout<AccelerationStructureGeometryAabbsDataKHR>::value, "struct wrapper is not a standard layout!" );
14772 
14773   template <>
14774   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryAabbsDataKHR>
14775   {
14776     using Type = AccelerationStructureGeometryAabbsDataKHR;
14777   };
14778 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14779 
14780 #ifdef VK_ENABLE_BETA_EXTENSIONS
14781   struct AccelerationStructureGeometryInstancesDataKHR
14782   {
14783     static const bool allowDuplicate = false;
14784     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
14785 
14786 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14787     AccelerationStructureGeometryInstancesDataKHR(VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}) VULKAN_HPP_NOEXCEPT
14788     : arrayOfPointers( arrayOfPointers_ ), data( data_ )
14789     {}
14790 
14791     AccelerationStructureGeometryInstancesDataKHR( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14792 
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14793     AccelerationStructureGeometryInstancesDataKHR( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14794     {
14795       *this = rhs;
14796     }
14797 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14798 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14799     AccelerationStructureGeometryInstancesDataKHR & operator=( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14800     {
14801       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const *>( &rhs );
14802       return *this;
14803     }
14804 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14805     AccelerationStructureGeometryInstancesDataKHR & operator=( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14806     {
14807       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryInstancesDataKHR ) );
14808       return *this;
14809     }
14810 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14811     AccelerationStructureGeometryInstancesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
14812     {
14813       pNext = pNext_;
14814       return *this;
14815     }
14816 
setArrayOfPointersVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14817     AccelerationStructureGeometryInstancesDataKHR & setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
14818     {
14819       arrayOfPointers = arrayOfPointers_;
14820       return *this;
14821     }
14822 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14823     AccelerationStructureGeometryInstancesDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
14824     {
14825       data = data_;
14826       return *this;
14827     }
14828 
14829 
operator VkAccelerationStructureGeometryInstancesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14830     operator VkAccelerationStructureGeometryInstancesDataKHR const&() const VULKAN_HPP_NOEXCEPT
14831     {
14832       return *reinterpret_cast<const VkAccelerationStructureGeometryInstancesDataKHR*>( this );
14833     }
14834 
operator VkAccelerationStructureGeometryInstancesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14835     operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT
14836     {
14837       return *reinterpret_cast<VkAccelerationStructureGeometryInstancesDataKHR*>( this );
14838     }
14839 
14840 
14841 
14842 
14843   public:
14844     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
14845     const void* pNext = {};
14846     VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers = {};
14847     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
14848 
14849   };
14850   static_assert( sizeof( AccelerationStructureGeometryInstancesDataKHR ) == sizeof( VkAccelerationStructureGeometryInstancesDataKHR ), "struct and wrapper have different size!" );
14851   static_assert( std::is_standard_layout<AccelerationStructureGeometryInstancesDataKHR>::value, "struct wrapper is not a standard layout!" );
14852 
14853   template <>
14854   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryInstancesDataKHR>
14855   {
14856     using Type = AccelerationStructureGeometryInstancesDataKHR;
14857   };
14858 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14859 
14860 #ifdef VK_ENABLE_BETA_EXTENSIONS
14861   union AccelerationStructureGeometryDataKHR
14862   {
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs)14863     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const& rhs ) VULKAN_HPP_NOEXCEPT
14864     {
14865       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) );
14866     }
14867 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_={} )14868     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_ = {} )
14869       : triangles( triangles_ )
14870     {}
14871 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_)14872     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_ )
14873       : aabbs( aabbs_ )
14874     {}
14875 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_)14876     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_ )
14877       : instances( instances_ )
14878     {}
14879 
setTriangles(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_)14880     AccelerationStructureGeometryDataKHR & setTriangles( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT
14881     {
14882       triangles = triangles_;
14883       return *this;
14884     }
14885 
setAabbs(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_)14886     AccelerationStructureGeometryDataKHR & setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT
14887     {
14888       aabbs = aabbs_;
14889       return *this;
14890     }
14891 
setInstances(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_)14892     AccelerationStructureGeometryDataKHR & setInstances( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT
14893     {
14894       instances = instances_;
14895       return *this;
14896     }
14897 
operator =(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs)14898     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR & operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14899     {
14900       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) );
14901       return *this;
14902     }
14903 
operator VkAccelerationStructureGeometryDataKHR const&() const14904     operator VkAccelerationStructureGeometryDataKHR const&() const
14905     {
14906       return *reinterpret_cast<const VkAccelerationStructureGeometryDataKHR*>(this);
14907     }
14908 
operator VkAccelerationStructureGeometryDataKHR&()14909     operator VkAccelerationStructureGeometryDataKHR &()
14910     {
14911       return *reinterpret_cast<VkAccelerationStructureGeometryDataKHR*>(this);
14912     }
14913 
14914 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
14915     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles;
14916     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs;
14917     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances;
14918 #else
14919     VkAccelerationStructureGeometryTrianglesDataKHR triangles;
14920     VkAccelerationStructureGeometryAabbsDataKHR aabbs;
14921     VkAccelerationStructureGeometryInstancesDataKHR instances;
14922 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
14923   };
14924 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14925 
14926 #ifdef VK_ENABLE_BETA_EXTENSIONS
14927   struct AccelerationStructureGeometryKHR
14928   {
14929     static const bool allowDuplicate = false;
14930     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryKHR;
14931 
14932 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14933     AccelerationStructureGeometryKHR(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry_ = {}, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {}) VULKAN_HPP_NOEXCEPT
14934     : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ )
14935     {}
14936 
14937     AccelerationStructureGeometryKHR( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14938 
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14939     AccelerationStructureGeometryKHR( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14940     {
14941       *this = rhs;
14942     }
14943 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14944 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14945     AccelerationStructureGeometryKHR & operator=( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14946     {
14947       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR const *>( &rhs );
14948       return *this;
14949     }
14950 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14951     AccelerationStructureGeometryKHR & operator=( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14952     {
14953       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryKHR ) );
14954       return *this;
14955     }
14956 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14957     AccelerationStructureGeometryKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
14958     {
14959       pNext = pNext_;
14960       return *this;
14961     }
14962 
setGeometryTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14963     AccelerationStructureGeometryKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
14964     {
14965       geometryType = geometryType_;
14966       return *this;
14967     }
14968 
setGeometryVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14969     AccelerationStructureGeometryKHR & setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT
14970     {
14971       geometry = geometry_;
14972       return *this;
14973     }
14974 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14975     AccelerationStructureGeometryKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
14976     {
14977       flags = flags_;
14978       return *this;
14979     }
14980 
14981 
operator VkAccelerationStructureGeometryKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14982     operator VkAccelerationStructureGeometryKHR const&() const VULKAN_HPP_NOEXCEPT
14983     {
14984       return *reinterpret_cast<const VkAccelerationStructureGeometryKHR*>( this );
14985     }
14986 
operator VkAccelerationStructureGeometryKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14987     operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT
14988     {
14989       return *reinterpret_cast<VkAccelerationStructureGeometryKHR*>( this );
14990     }
14991 
14992 
14993 
14994 
14995   public:
14996     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryKHR;
14997     const void* pNext = {};
14998     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
14999     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry = {};
15000     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
15001 
15002   };
15003   static_assert( sizeof( AccelerationStructureGeometryKHR ) == sizeof( VkAccelerationStructureGeometryKHR ), "struct and wrapper have different size!" );
15004   static_assert( std::is_standard_layout<AccelerationStructureGeometryKHR>::value, "struct wrapper is not a standard layout!" );
15005 
15006   template <>
15007   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryKHR>
15008   {
15009     using Type = AccelerationStructureGeometryKHR;
15010   };
15011 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15012 
15013 #ifdef VK_ENABLE_BETA_EXTENSIONS
15014   union DeviceOrHostAddressKHR
15015   {
DeviceOrHostAddressKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs)15016     DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const& rhs ) VULKAN_HPP_NOEXCEPT
15017     {
15018       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) );
15019     }
15020 
DeviceOrHostAddressKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )15021     DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
15022       : deviceAddress( deviceAddress_ )
15023     {}
15024 
DeviceOrHostAddressKHR(void * hostAddress_)15025     DeviceOrHostAddressKHR( void* hostAddress_ )
15026       : hostAddress( hostAddress_ )
15027     {}
15028 
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)15029     DeviceOrHostAddressKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
15030     {
15031       deviceAddress = deviceAddress_;
15032       return *this;
15033     }
15034 
setHostAddress(void * hostAddress_)15035     DeviceOrHostAddressKHR & setHostAddress( void* hostAddress_ ) VULKAN_HPP_NOEXCEPT
15036     {
15037       hostAddress = hostAddress_;
15038       return *this;
15039     }
15040 
operator =(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs)15041     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15042     {
15043       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) );
15044       return *this;
15045     }
15046 
operator VkDeviceOrHostAddressKHR const&() const15047     operator VkDeviceOrHostAddressKHR const&() const
15048     {
15049       return *reinterpret_cast<const VkDeviceOrHostAddressKHR*>(this);
15050     }
15051 
operator VkDeviceOrHostAddressKHR&()15052     operator VkDeviceOrHostAddressKHR &()
15053     {
15054       return *reinterpret_cast<VkDeviceOrHostAddressKHR*>(this);
15055     }
15056 
15057 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
15058     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
15059     void* hostAddress;
15060 #else
15061     VkDeviceAddress deviceAddress;
15062     void* hostAddress;
15063 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
15064   };
15065 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15066 
15067 #ifdef VK_ENABLE_BETA_EXTENSIONS
15068   struct AccelerationStructureBuildGeometryInfoKHR
15069   {
15070     static const bool allowDuplicate = false;
15071     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
15072 
15073 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15074     AccelerationStructureBuildGeometryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 update_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryArrayOfPointers_ = {}, uint32_t geometryCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {}) VULKAN_HPP_NOEXCEPT
15075     : type( type_ ), flags( flags_ ), update( update_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryArrayOfPointers( geometryArrayOfPointers_ ), geometryCount( geometryCount_ ), ppGeometries( ppGeometries_ ), scratchData( scratchData_ )
15076     {}
15077 
15078     AccelerationStructureBuildGeometryInfoKHR( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15079 
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15080     AccelerationStructureBuildGeometryInfoKHR( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15081     {
15082       *this = rhs;
15083     }
15084 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15085 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15086     AccelerationStructureBuildGeometryInfoKHR & operator=( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15087     {
15088       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR const *>( &rhs );
15089       return *this;
15090     }
15091 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15092     AccelerationStructureBuildGeometryInfoKHR & operator=( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15093     {
15094       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureBuildGeometryInfoKHR ) );
15095       return *this;
15096     }
15097 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15098     AccelerationStructureBuildGeometryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15099     {
15100       pNext = pNext_;
15101       return *this;
15102     }
15103 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15104     AccelerationStructureBuildGeometryInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
15105     {
15106       type = type_;
15107       return *this;
15108     }
15109 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15110     AccelerationStructureBuildGeometryInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
15111     {
15112       flags = flags_;
15113       return *this;
15114     }
15115 
setUpdateVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15116     AccelerationStructureBuildGeometryInfoKHR & setUpdate( VULKAN_HPP_NAMESPACE::Bool32 update_ ) VULKAN_HPP_NOEXCEPT
15117     {
15118       update = update_;
15119       return *this;
15120     }
15121 
setSrcAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15122     AccelerationStructureBuildGeometryInfoKHR & setSrcAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
15123     {
15124       srcAccelerationStructure = srcAccelerationStructure_;
15125       return *this;
15126     }
15127 
setDstAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15128     AccelerationStructureBuildGeometryInfoKHR & setDstAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
15129     {
15130       dstAccelerationStructure = dstAccelerationStructure_;
15131       return *this;
15132     }
15133 
setGeometryArrayOfPointersVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15134     AccelerationStructureBuildGeometryInfoKHR & setGeometryArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 geometryArrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
15135     {
15136       geometryArrayOfPointers = geometryArrayOfPointers_;
15137       return *this;
15138     }
15139 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15140     AccelerationStructureBuildGeometryInfoKHR & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
15141     {
15142       geometryCount = geometryCount_;
15143       return *this;
15144     }
15145 
setPpGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15146     AccelerationStructureBuildGeometryInfoKHR & setPpGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT
15147     {
15148       ppGeometries = ppGeometries_;
15149       return *this;
15150     }
15151 
setScratchDataVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15152     AccelerationStructureBuildGeometryInfoKHR & setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
15153     {
15154       scratchData = scratchData_;
15155       return *this;
15156     }
15157 
15158 
operator VkAccelerationStructureBuildGeometryInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15159     operator VkAccelerationStructureBuildGeometryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15160     {
15161       return *reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( this );
15162     }
15163 
operator VkAccelerationStructureBuildGeometryInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15164     operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT
15165     {
15166       return *reinterpret_cast<VkAccelerationStructureBuildGeometryInfoKHR*>( this );
15167     }
15168 
15169 
15170 
15171 
15172   public:
15173     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
15174     const void* pNext = {};
15175     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
15176     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {};
15177     VULKAN_HPP_NAMESPACE::Bool32 update = {};
15178     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure = {};
15179     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure = {};
15180     VULKAN_HPP_NAMESPACE::Bool32 geometryArrayOfPointers = {};
15181     uint32_t geometryCount = {};
15182     const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries = {};
15183     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {};
15184 
15185   };
15186   static_assert( sizeof( AccelerationStructureBuildGeometryInfoKHR ) == sizeof( VkAccelerationStructureBuildGeometryInfoKHR ), "struct and wrapper have different size!" );
15187   static_assert( std::is_standard_layout<AccelerationStructureBuildGeometryInfoKHR>::value, "struct wrapper is not a standard layout!" );
15188 
15189   template <>
15190   struct CppType<StructureType, StructureType::eAccelerationStructureBuildGeometryInfoKHR>
15191   {
15192     using Type = AccelerationStructureBuildGeometryInfoKHR;
15193   };
15194 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15195 
15196 #ifdef VK_ENABLE_BETA_EXTENSIONS
15197   struct AccelerationStructureBuildOffsetInfoKHR
15198   {
15199 
15200 
15201 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildOffsetInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15202     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildOffsetInfoKHR(uint32_t primitiveCount_ = {}, uint32_t primitiveOffset_ = {}, uint32_t firstVertex_ = {}, uint32_t transformOffset_ = {}) VULKAN_HPP_NOEXCEPT
15203     : primitiveCount( primitiveCount_ ), primitiveOffset( primitiveOffset_ ), firstVertex( firstVertex_ ), transformOffset( transformOffset_ )
15204     {}
15205 
15206     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildOffsetInfoKHR( AccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15207 
AccelerationStructureBuildOffsetInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15208     AccelerationStructureBuildOffsetInfoKHR( VkAccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15209     {
15210       *this = rhs;
15211     }
15212 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15213 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15214     AccelerationStructureBuildOffsetInfoKHR & operator=( VkAccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15215     {
15216       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR const *>( &rhs );
15217       return *this;
15218     }
15219 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15220     AccelerationStructureBuildOffsetInfoKHR & operator=( AccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15221     {
15222       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureBuildOffsetInfoKHR ) );
15223       return *this;
15224     }
15225 
setPrimitiveCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15226     AccelerationStructureBuildOffsetInfoKHR & setPrimitiveCount( uint32_t primitiveCount_ ) VULKAN_HPP_NOEXCEPT
15227     {
15228       primitiveCount = primitiveCount_;
15229       return *this;
15230     }
15231 
setPrimitiveOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15232     AccelerationStructureBuildOffsetInfoKHR & setPrimitiveOffset( uint32_t primitiveOffset_ ) VULKAN_HPP_NOEXCEPT
15233     {
15234       primitiveOffset = primitiveOffset_;
15235       return *this;
15236     }
15237 
setFirstVertexVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15238     AccelerationStructureBuildOffsetInfoKHR & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
15239     {
15240       firstVertex = firstVertex_;
15241       return *this;
15242     }
15243 
setTransformOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15244     AccelerationStructureBuildOffsetInfoKHR & setTransformOffset( uint32_t transformOffset_ ) VULKAN_HPP_NOEXCEPT
15245     {
15246       transformOffset = transformOffset_;
15247       return *this;
15248     }
15249 
15250 
operator VkAccelerationStructureBuildOffsetInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15251     operator VkAccelerationStructureBuildOffsetInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15252     {
15253       return *reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR*>( this );
15254     }
15255 
operator VkAccelerationStructureBuildOffsetInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15256     operator VkAccelerationStructureBuildOffsetInfoKHR &() VULKAN_HPP_NOEXCEPT
15257     {
15258       return *reinterpret_cast<VkAccelerationStructureBuildOffsetInfoKHR*>( this );
15259     }
15260 
15261 
15262 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15263     auto operator<=>( AccelerationStructureBuildOffsetInfoKHR const& ) const = default;
15264 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15265     bool operator==( AccelerationStructureBuildOffsetInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15266     {
15267       return ( primitiveCount == rhs.primitiveCount )
15268           && ( primitiveOffset == rhs.primitiveOffset )
15269           && ( firstVertex == rhs.firstVertex )
15270           && ( transformOffset == rhs.transformOffset );
15271     }
15272 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15273     bool operator!=( AccelerationStructureBuildOffsetInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15274     {
15275       return !operator==( rhs );
15276     }
15277 #endif
15278 
15279 
15280 
15281   public:
15282     uint32_t primitiveCount = {};
15283     uint32_t primitiveOffset = {};
15284     uint32_t firstVertex = {};
15285     uint32_t transformOffset = {};
15286 
15287   };
15288   static_assert( sizeof( AccelerationStructureBuildOffsetInfoKHR ) == sizeof( VkAccelerationStructureBuildOffsetInfoKHR ), "struct and wrapper have different size!" );
15289   static_assert( std::is_standard_layout<AccelerationStructureBuildOffsetInfoKHR>::value, "struct wrapper is not a standard layout!" );
15290 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15291 
15292 #ifdef VK_ENABLE_BETA_EXTENSIONS
15293   struct AccelerationStructureCreateGeometryTypeInfoKHR
15294   {
15295     static const bool allowDuplicate = false;
15296     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR;
15297 
15298 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateGeometryTypeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15299     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateGeometryTypeInfoKHR(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, uint32_t maxPrimitiveCount_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, uint32_t maxVertexCount_ = {}, VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Bool32 allowsTransforms_ = {}) VULKAN_HPP_NOEXCEPT
15300     : geometryType( geometryType_ ), maxPrimitiveCount( maxPrimitiveCount_ ), indexType( indexType_ ), maxVertexCount( maxVertexCount_ ), vertexFormat( vertexFormat_ ), allowsTransforms( allowsTransforms_ )
15301     {}
15302 
15303     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateGeometryTypeInfoKHR( AccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15304 
AccelerationStructureCreateGeometryTypeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15305     AccelerationStructureCreateGeometryTypeInfoKHR( VkAccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15306     {
15307       *this = rhs;
15308     }
15309 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15310 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15311     AccelerationStructureCreateGeometryTypeInfoKHR & operator=( VkAccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15312     {
15313       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR const *>( &rhs );
15314       return *this;
15315     }
15316 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15317     AccelerationStructureCreateGeometryTypeInfoKHR & operator=( AccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15318     {
15319       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureCreateGeometryTypeInfoKHR ) );
15320       return *this;
15321     }
15322 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15323     AccelerationStructureCreateGeometryTypeInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15324     {
15325       pNext = pNext_;
15326       return *this;
15327     }
15328 
setGeometryTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15329     AccelerationStructureCreateGeometryTypeInfoKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
15330     {
15331       geometryType = geometryType_;
15332       return *this;
15333     }
15334 
setMaxPrimitiveCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15335     AccelerationStructureCreateGeometryTypeInfoKHR & setMaxPrimitiveCount( uint32_t maxPrimitiveCount_ ) VULKAN_HPP_NOEXCEPT
15336     {
15337       maxPrimitiveCount = maxPrimitiveCount_;
15338       return *this;
15339     }
15340 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15341     AccelerationStructureCreateGeometryTypeInfoKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
15342     {
15343       indexType = indexType_;
15344       return *this;
15345     }
15346 
setMaxVertexCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15347     AccelerationStructureCreateGeometryTypeInfoKHR & setMaxVertexCount( uint32_t maxVertexCount_ ) VULKAN_HPP_NOEXCEPT
15348     {
15349       maxVertexCount = maxVertexCount_;
15350       return *this;
15351     }
15352 
setVertexFormatVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15353     AccelerationStructureCreateGeometryTypeInfoKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
15354     {
15355       vertexFormat = vertexFormat_;
15356       return *this;
15357     }
15358 
setAllowsTransformsVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15359     AccelerationStructureCreateGeometryTypeInfoKHR & setAllowsTransforms( VULKAN_HPP_NAMESPACE::Bool32 allowsTransforms_ ) VULKAN_HPP_NOEXCEPT
15360     {
15361       allowsTransforms = allowsTransforms_;
15362       return *this;
15363     }
15364 
15365 
operator VkAccelerationStructureCreateGeometryTypeInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15366     operator VkAccelerationStructureCreateGeometryTypeInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15367     {
15368       return *reinterpret_cast<const VkAccelerationStructureCreateGeometryTypeInfoKHR*>( this );
15369     }
15370 
operator VkAccelerationStructureCreateGeometryTypeInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15371     operator VkAccelerationStructureCreateGeometryTypeInfoKHR &() VULKAN_HPP_NOEXCEPT
15372     {
15373       return *reinterpret_cast<VkAccelerationStructureCreateGeometryTypeInfoKHR*>( this );
15374     }
15375 
15376 
15377 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15378     auto operator<=>( AccelerationStructureCreateGeometryTypeInfoKHR const& ) const = default;
15379 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15380     bool operator==( AccelerationStructureCreateGeometryTypeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15381     {
15382       return ( sType == rhs.sType )
15383           && ( pNext == rhs.pNext )
15384           && ( geometryType == rhs.geometryType )
15385           && ( maxPrimitiveCount == rhs.maxPrimitiveCount )
15386           && ( indexType == rhs.indexType )
15387           && ( maxVertexCount == rhs.maxVertexCount )
15388           && ( vertexFormat == rhs.vertexFormat )
15389           && ( allowsTransforms == rhs.allowsTransforms );
15390     }
15391 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15392     bool operator!=( AccelerationStructureCreateGeometryTypeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15393     {
15394       return !operator==( rhs );
15395     }
15396 #endif
15397 
15398 
15399 
15400   public:
15401     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR;
15402     const void* pNext = {};
15403     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
15404     uint32_t maxPrimitiveCount = {};
15405     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
15406     uint32_t maxVertexCount = {};
15407     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
15408     VULKAN_HPP_NAMESPACE::Bool32 allowsTransforms = {};
15409 
15410   };
15411   static_assert( sizeof( AccelerationStructureCreateGeometryTypeInfoKHR ) == sizeof( VkAccelerationStructureCreateGeometryTypeInfoKHR ), "struct and wrapper have different size!" );
15412   static_assert( std::is_standard_layout<AccelerationStructureCreateGeometryTypeInfoKHR>::value, "struct wrapper is not a standard layout!" );
15413 
15414   template <>
15415   struct CppType<StructureType, StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR>
15416   {
15417     using Type = AccelerationStructureCreateGeometryTypeInfoKHR;
15418   };
15419 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15420 
15421 #ifdef VK_ENABLE_BETA_EXTENSIONS
15422   struct AccelerationStructureCreateInfoKHR
15423   {
15424     static const bool allowDuplicate = false;
15425     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoKHR;
15426 
15427 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15428     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR(VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {}, uint32_t maxGeometryCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos_ = {}, VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}) VULKAN_HPP_NOEXCEPT
15429     : compactedSize( compactedSize_ ), type( type_ ), flags( flags_ ), maxGeometryCount( maxGeometryCount_ ), pGeometryInfos( pGeometryInfos_ ), deviceAddress( deviceAddress_ )
15430     {}
15431 
15432     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15433 
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15434     AccelerationStructureCreateInfoKHR( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15435     {
15436       *this = rhs;
15437     }
15438 
15439 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15440     AccelerationStructureCreateInfoKHR( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_, VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR> const & geometryInfos_, VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
15441     : compactedSize( compactedSize_ ), type( type_ ), flags( flags_ ), maxGeometryCount( static_cast<uint32_t>( geometryInfos_.size() ) ), pGeometryInfos( geometryInfos_.data() ), deviceAddress( deviceAddress_ )
15442     {}
15443 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
15444 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15445 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15446     AccelerationStructureCreateInfoKHR & operator=( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15447     {
15448       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const *>( &rhs );
15449       return *this;
15450     }
15451 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15452     AccelerationStructureCreateInfoKHR & operator=( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15453     {
15454       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureCreateInfoKHR ) );
15455       return *this;
15456     }
15457 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15458     AccelerationStructureCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15459     {
15460       pNext = pNext_;
15461       return *this;
15462     }
15463 
setCompactedSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15464     AccelerationStructureCreateInfoKHR & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
15465     {
15466       compactedSize = compactedSize_;
15467       return *this;
15468     }
15469 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15470     AccelerationStructureCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
15471     {
15472       type = type_;
15473       return *this;
15474     }
15475 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15476     AccelerationStructureCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
15477     {
15478       flags = flags_;
15479       return *this;
15480     }
15481 
setMaxGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15482     AccelerationStructureCreateInfoKHR & setMaxGeometryCount( uint32_t maxGeometryCount_ ) VULKAN_HPP_NOEXCEPT
15483     {
15484       maxGeometryCount = maxGeometryCount_;
15485       return *this;
15486     }
15487 
setPGeometryInfosVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15488     AccelerationStructureCreateInfoKHR & setPGeometryInfos( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos_ ) VULKAN_HPP_NOEXCEPT
15489     {
15490       pGeometryInfos = pGeometryInfos_;
15491       return *this;
15492     }
15493 
15494 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGeometryInfosVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15495     AccelerationStructureCreateInfoKHR & setGeometryInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR> const & geometryInfos_ ) VULKAN_HPP_NOEXCEPT
15496     {
15497       maxGeometryCount = static_cast<uint32_t>( geometryInfos_.size() );
15498       pGeometryInfos = geometryInfos_.data();
15499       return *this;
15500     }
15501 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
15502 
setDeviceAddressVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15503     AccelerationStructureCreateInfoKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
15504     {
15505       deviceAddress = deviceAddress_;
15506       return *this;
15507     }
15508 
15509 
operator VkAccelerationStructureCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15510     operator VkAccelerationStructureCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15511     {
15512       return *reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( this );
15513     }
15514 
operator VkAccelerationStructureCreateInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15515     operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
15516     {
15517       return *reinterpret_cast<VkAccelerationStructureCreateInfoKHR*>( this );
15518     }
15519 
15520 
15521 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15522     auto operator<=>( AccelerationStructureCreateInfoKHR const& ) const = default;
15523 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15524     bool operator==( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15525     {
15526       return ( sType == rhs.sType )
15527           && ( pNext == rhs.pNext )
15528           && ( compactedSize == rhs.compactedSize )
15529           && ( type == rhs.type )
15530           && ( flags == rhs.flags )
15531           && ( maxGeometryCount == rhs.maxGeometryCount )
15532           && ( pGeometryInfos == rhs.pGeometryInfos )
15533           && ( deviceAddress == rhs.deviceAddress );
15534     }
15535 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15536     bool operator!=( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15537     {
15538       return !operator==( rhs );
15539     }
15540 #endif
15541 
15542 
15543 
15544   public:
15545     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoKHR;
15546     const void* pNext = {};
15547     VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
15548     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
15549     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {};
15550     uint32_t maxGeometryCount = {};
15551     const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos = {};
15552     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
15553 
15554   };
15555   static_assert( sizeof( AccelerationStructureCreateInfoKHR ) == sizeof( VkAccelerationStructureCreateInfoKHR ), "struct and wrapper have different size!" );
15556   static_assert( std::is_standard_layout<AccelerationStructureCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
15557 
15558   template <>
15559   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoKHR>
15560   {
15561     using Type = AccelerationStructureCreateInfoKHR;
15562   };
15563 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15564 
15565   class Buffer
15566   {
15567   public:
15568     using CType = VkBuffer;
15569 
15570     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBuffer;
15571     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer;
15572 
15573   public:
Buffer()15574     VULKAN_HPP_CONSTEXPR Buffer() VULKAN_HPP_NOEXCEPT
15575       : m_buffer(VK_NULL_HANDLE)
15576     {}
15577 
Buffer(std::nullptr_t)15578     VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15579       : m_buffer(VK_NULL_HANDLE)
15580     {}
15581 
Buffer(VkBuffer buffer)15582     VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer ) VULKAN_HPP_NOEXCEPT
15583       : m_buffer( buffer )
15584     {}
15585 
15586 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBuffer buffer)15587     Buffer & operator=(VkBuffer buffer) VULKAN_HPP_NOEXCEPT
15588     {
15589       m_buffer = buffer;
15590       return *this;
15591     }
15592 #endif
15593 
operator =(std::nullptr_t)15594     Buffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15595     {
15596       m_buffer = VK_NULL_HANDLE;
15597       return *this;
15598     }
15599 
15600 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15601     auto operator<=>( Buffer const& ) const = default;
15602 #else
operator ==(Buffer const & rhs) const15603     bool operator==( Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15604     {
15605       return m_buffer == rhs.m_buffer;
15606     }
15607 
operator !=(Buffer const & rhs) const15608     bool operator!=(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15609     {
15610       return m_buffer != rhs.m_buffer;
15611     }
15612 
operator <(Buffer const & rhs) const15613     bool operator<(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15614     {
15615       return m_buffer < rhs.m_buffer;
15616     }
15617 #endif
15618 
operator VkBuffer() const15619     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBuffer() const VULKAN_HPP_NOEXCEPT
15620     {
15621       return m_buffer;
15622     }
15623 
operator bool() const15624     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15625     {
15626       return m_buffer != VK_NULL_HANDLE;
15627     }
15628 
operator !() const15629     bool operator!() const VULKAN_HPP_NOEXCEPT
15630     {
15631       return m_buffer == VK_NULL_HANDLE;
15632     }
15633 
15634   private:
15635     VkBuffer m_buffer;
15636   };
15637   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Buffer ) == sizeof( VkBuffer ), "handle and wrapper have different size!" );
15638 
15639   template <>
15640   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eBuffer>
15641   {
15642     using type = VULKAN_HPP_NAMESPACE::Buffer;
15643   };
15644 
15645   template <>
15646   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eBuffer>
15647   {
15648     using Type = VULKAN_HPP_NAMESPACE::Buffer;
15649   };
15650 
15651 
15652   template <>
15653   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer>
15654   {
15655     using Type = VULKAN_HPP_NAMESPACE::Buffer;
15656   };
15657 
15658 
15659   template <>
15660   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Buffer>
15661   {
15662     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
15663   };
15664 
15665   struct GeometryTrianglesNV
15666   {
15667     static const bool allowDuplicate = false;
15668     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryTrianglesNV;
15669 
15670 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15671     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
15672     : vertexData( vertexData_ ), vertexOffset( vertexOffset_ ), vertexCount( vertexCount_ ), vertexStride( vertexStride_ ), vertexFormat( vertexFormat_ ), indexData( indexData_ ), indexOffset( indexOffset_ ), indexCount( indexCount_ ), indexType( indexType_ ), transformData( transformData_ ), transformOffset( transformOffset_ )
15673     {}
15674 
15675     VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15676 
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15677     GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
15678     {
15679       *this = rhs;
15680     }
15681 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15682 
operator =VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15683     GeometryTrianglesNV & operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
15684     {
15685       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const *>( &rhs );
15686       return *this;
15687     }
15688 
operator =VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15689     GeometryTrianglesNV & operator=( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
15690     {
15691       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryTrianglesNV ) );
15692       return *this;
15693     }
15694 
setPNextVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15695     GeometryTrianglesNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15696     {
15697       pNext = pNext_;
15698       return *this;
15699     }
15700 
setVertexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15701     GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT
15702     {
15703       vertexData = vertexData_;
15704       return *this;
15705     }
15706 
setVertexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15707     GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT
15708     {
15709       vertexOffset = vertexOffset_;
15710       return *this;
15711     }
15712 
setVertexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15713     GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
15714     {
15715       vertexCount = vertexCount_;
15716       return *this;
15717     }
15718 
setVertexStrideVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15719     GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
15720     {
15721       vertexStride = vertexStride_;
15722       return *this;
15723     }
15724 
setVertexFormatVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15725     GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
15726     {
15727       vertexFormat = vertexFormat_;
15728       return *this;
15729     }
15730 
setIndexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15731     GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT
15732     {
15733       indexData = indexData_;
15734       return *this;
15735     }
15736 
setIndexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15737     GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT
15738     {
15739       indexOffset = indexOffset_;
15740       return *this;
15741     }
15742 
setIndexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15743     GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
15744     {
15745       indexCount = indexCount_;
15746       return *this;
15747     }
15748 
setIndexTypeVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15749     GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
15750     {
15751       indexType = indexType_;
15752       return *this;
15753     }
15754 
setTransformDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15755     GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT
15756     {
15757       transformData = transformData_;
15758       return *this;
15759     }
15760 
setTransformOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15761     GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT
15762     {
15763       transformOffset = transformOffset_;
15764       return *this;
15765     }
15766 
15767 
operator VkGeometryTrianglesNV const&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15768     operator VkGeometryTrianglesNV const&() const VULKAN_HPP_NOEXCEPT
15769     {
15770       return *reinterpret_cast<const VkGeometryTrianglesNV*>( this );
15771     }
15772 
operator VkGeometryTrianglesNV&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15773     operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT
15774     {
15775       return *reinterpret_cast<VkGeometryTrianglesNV*>( this );
15776     }
15777 
15778 
15779 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15780     auto operator<=>( GeometryTrianglesNV const& ) const = default;
15781 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15782     bool operator==( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15783     {
15784       return ( sType == rhs.sType )
15785           && ( pNext == rhs.pNext )
15786           && ( vertexData == rhs.vertexData )
15787           && ( vertexOffset == rhs.vertexOffset )
15788           && ( vertexCount == rhs.vertexCount )
15789           && ( vertexStride == rhs.vertexStride )
15790           && ( vertexFormat == rhs.vertexFormat )
15791           && ( indexData == rhs.indexData )
15792           && ( indexOffset == rhs.indexOffset )
15793           && ( indexCount == rhs.indexCount )
15794           && ( indexType == rhs.indexType )
15795           && ( transformData == rhs.transformData )
15796           && ( transformOffset == rhs.transformOffset );
15797     }
15798 
operator !=VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15799     bool operator!=( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15800     {
15801       return !operator==( rhs );
15802     }
15803 #endif
15804 
15805 
15806 
15807   public:
15808     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV;
15809     const void* pNext = {};
15810     VULKAN_HPP_NAMESPACE::Buffer vertexData = {};
15811     VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {};
15812     uint32_t vertexCount = {};
15813     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
15814     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
15815     VULKAN_HPP_NAMESPACE::Buffer indexData = {};
15816     VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {};
15817     uint32_t indexCount = {};
15818     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
15819     VULKAN_HPP_NAMESPACE::Buffer transformData = {};
15820     VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {};
15821 
15822   };
15823   static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), "struct and wrapper have different size!" );
15824   static_assert( std::is_standard_layout<GeometryTrianglesNV>::value, "struct wrapper is not a standard layout!" );
15825 
15826   template <>
15827   struct CppType<StructureType, StructureType::eGeometryTrianglesNV>
15828   {
15829     using Type = GeometryTrianglesNV;
15830   };
15831 
15832   struct GeometryAABBNV
15833   {
15834     static const bool allowDuplicate = false;
15835     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryAabbNV;
15836 
15837 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV15838     VULKAN_HPP_CONSTEXPR GeometryAABBNV(VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {}, uint32_t numAABBs_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT
15839     : aabbData( aabbData_ ), numAABBs( numAABBs_ ), stride( stride_ ), offset( offset_ )
15840     {}
15841 
15842     VULKAN_HPP_CONSTEXPR GeometryAABBNV( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15843 
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV15844     GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
15845     {
15846       *this = rhs;
15847     }
15848 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15849 
operator =VULKAN_HPP_NAMESPACE::GeometryAABBNV15850     GeometryAABBNV & operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
15851     {
15852       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryAABBNV const *>( &rhs );
15853       return *this;
15854     }
15855 
operator =VULKAN_HPP_NAMESPACE::GeometryAABBNV15856     GeometryAABBNV & operator=( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
15857     {
15858       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryAABBNV ) );
15859       return *this;
15860     }
15861 
setPNextVULKAN_HPP_NAMESPACE::GeometryAABBNV15862     GeometryAABBNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15863     {
15864       pNext = pNext_;
15865       return *this;
15866     }
15867 
setAabbDataVULKAN_HPP_NAMESPACE::GeometryAABBNV15868     GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT
15869     {
15870       aabbData = aabbData_;
15871       return *this;
15872     }
15873 
setNumAABBsVULKAN_HPP_NAMESPACE::GeometryAABBNV15874     GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT
15875     {
15876       numAABBs = numAABBs_;
15877       return *this;
15878     }
15879 
setStrideVULKAN_HPP_NAMESPACE::GeometryAABBNV15880     GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
15881     {
15882       stride = stride_;
15883       return *this;
15884     }
15885 
setOffsetVULKAN_HPP_NAMESPACE::GeometryAABBNV15886     GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
15887     {
15888       offset = offset_;
15889       return *this;
15890     }
15891 
15892 
operator VkGeometryAABBNV const&VULKAN_HPP_NAMESPACE::GeometryAABBNV15893     operator VkGeometryAABBNV const&() const VULKAN_HPP_NOEXCEPT
15894     {
15895       return *reinterpret_cast<const VkGeometryAABBNV*>( this );
15896     }
15897 
operator VkGeometryAABBNV&VULKAN_HPP_NAMESPACE::GeometryAABBNV15898     operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT
15899     {
15900       return *reinterpret_cast<VkGeometryAABBNV*>( this );
15901     }
15902 
15903 
15904 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15905     auto operator<=>( GeometryAABBNV const& ) const = default;
15906 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryAABBNV15907     bool operator==( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15908     {
15909       return ( sType == rhs.sType )
15910           && ( pNext == rhs.pNext )
15911           && ( aabbData == rhs.aabbData )
15912           && ( numAABBs == rhs.numAABBs )
15913           && ( stride == rhs.stride )
15914           && ( offset == rhs.offset );
15915     }
15916 
operator !=VULKAN_HPP_NAMESPACE::GeometryAABBNV15917     bool operator!=( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15918     {
15919       return !operator==( rhs );
15920     }
15921 #endif
15922 
15923 
15924 
15925   public:
15926     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV;
15927     const void* pNext = {};
15928     VULKAN_HPP_NAMESPACE::Buffer aabbData = {};
15929     uint32_t numAABBs = {};
15930     uint32_t stride = {};
15931     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
15932 
15933   };
15934   static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "struct and wrapper have different size!" );
15935   static_assert( std::is_standard_layout<GeometryAABBNV>::value, "struct wrapper is not a standard layout!" );
15936 
15937   template <>
15938   struct CppType<StructureType, StructureType::eGeometryAabbNV>
15939   {
15940     using Type = GeometryAABBNV;
15941   };
15942 
15943   struct GeometryDataNV
15944   {
15945 
15946 
15947 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV15948     VULKAN_HPP_CONSTEXPR GeometryDataNV(VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {}, VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {}) VULKAN_HPP_NOEXCEPT
15949     : triangles( triangles_ ), aabbs( aabbs_ )
15950     {}
15951 
15952     VULKAN_HPP_CONSTEXPR GeometryDataNV( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15953 
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV15954     GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
15955     {
15956       *this = rhs;
15957     }
15958 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15959 
operator =VULKAN_HPP_NAMESPACE::GeometryDataNV15960     GeometryDataNV & operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
15961     {
15962       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryDataNV const *>( &rhs );
15963       return *this;
15964     }
15965 
operator =VULKAN_HPP_NAMESPACE::GeometryDataNV15966     GeometryDataNV & operator=( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
15967     {
15968       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryDataNV ) );
15969       return *this;
15970     }
15971 
setTrianglesVULKAN_HPP_NAMESPACE::GeometryDataNV15972     GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT
15973     {
15974       triangles = triangles_;
15975       return *this;
15976     }
15977 
setAabbsVULKAN_HPP_NAMESPACE::GeometryDataNV15978     GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & aabbs_ ) VULKAN_HPP_NOEXCEPT
15979     {
15980       aabbs = aabbs_;
15981       return *this;
15982     }
15983 
15984 
operator VkGeometryDataNV const&VULKAN_HPP_NAMESPACE::GeometryDataNV15985     operator VkGeometryDataNV const&() const VULKAN_HPP_NOEXCEPT
15986     {
15987       return *reinterpret_cast<const VkGeometryDataNV*>( this );
15988     }
15989 
operator VkGeometryDataNV&VULKAN_HPP_NAMESPACE::GeometryDataNV15990     operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT
15991     {
15992       return *reinterpret_cast<VkGeometryDataNV*>( this );
15993     }
15994 
15995 
15996 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15997     auto operator<=>( GeometryDataNV const& ) const = default;
15998 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryDataNV15999     bool operator==( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16000     {
16001       return ( triangles == rhs.triangles )
16002           && ( aabbs == rhs.aabbs );
16003     }
16004 
operator !=VULKAN_HPP_NAMESPACE::GeometryDataNV16005     bool operator!=( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16006     {
16007       return !operator==( rhs );
16008     }
16009 #endif
16010 
16011 
16012 
16013   public:
16014     VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {};
16015     VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {};
16016 
16017   };
16018   static_assert( sizeof( GeometryDataNV ) == sizeof( VkGeometryDataNV ), "struct and wrapper have different size!" );
16019   static_assert( std::is_standard_layout<GeometryDataNV>::value, "struct wrapper is not a standard layout!" );
16020 
16021   struct GeometryNV
16022   {
16023     static const bool allowDuplicate = false;
16024     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryNV;
16025 
16026 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV16027     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
16028     : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ )
16029     {}
16030 
16031     VULKAN_HPP_CONSTEXPR GeometryNV( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16032 
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV16033     GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
16034     {
16035       *this = rhs;
16036     }
16037 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16038 
operator =VULKAN_HPP_NAMESPACE::GeometryNV16039     GeometryNV & operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
16040     {
16041       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryNV const *>( &rhs );
16042       return *this;
16043     }
16044 
operator =VULKAN_HPP_NAMESPACE::GeometryNV16045     GeometryNV & operator=( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
16046     {
16047       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryNV ) );
16048       return *this;
16049     }
16050 
setPNextVULKAN_HPP_NAMESPACE::GeometryNV16051     GeometryNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16052     {
16053       pNext = pNext_;
16054       return *this;
16055     }
16056 
setGeometryTypeVULKAN_HPP_NAMESPACE::GeometryNV16057     GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
16058     {
16059       geometryType = geometryType_;
16060       return *this;
16061     }
16062 
setGeometryVULKAN_HPP_NAMESPACE::GeometryNV16063     GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometry_ ) VULKAN_HPP_NOEXCEPT
16064     {
16065       geometry = geometry_;
16066       return *this;
16067     }
16068 
setFlagsVULKAN_HPP_NAMESPACE::GeometryNV16069     GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
16070     {
16071       flags = flags_;
16072       return *this;
16073     }
16074 
16075 
operator VkGeometryNV const&VULKAN_HPP_NAMESPACE::GeometryNV16076     operator VkGeometryNV const&() const VULKAN_HPP_NOEXCEPT
16077     {
16078       return *reinterpret_cast<const VkGeometryNV*>( this );
16079     }
16080 
operator VkGeometryNV&VULKAN_HPP_NAMESPACE::GeometryNV16081     operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT
16082     {
16083       return *reinterpret_cast<VkGeometryNV*>( this );
16084     }
16085 
16086 
16087 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16088     auto operator<=>( GeometryNV const& ) const = default;
16089 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryNV16090     bool operator==( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16091     {
16092       return ( sType == rhs.sType )
16093           && ( pNext == rhs.pNext )
16094           && ( geometryType == rhs.geometryType )
16095           && ( geometry == rhs.geometry )
16096           && ( flags == rhs.flags );
16097     }
16098 
operator !=VULKAN_HPP_NAMESPACE::GeometryNV16099     bool operator!=( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16100     {
16101       return !operator==( rhs );
16102     }
16103 #endif
16104 
16105 
16106 
16107   public:
16108     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV;
16109     const void* pNext = {};
16110     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
16111     VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {};
16112     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
16113 
16114   };
16115   static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "struct and wrapper have different size!" );
16116   static_assert( std::is_standard_layout<GeometryNV>::value, "struct wrapper is not a standard layout!" );
16117 
16118   template <>
16119   struct CppType<StructureType, StructureType::eGeometryNV>
16120   {
16121     using Type = GeometryNV;
16122   };
16123 
16124   struct AccelerationStructureInfoNV
16125   {
16126     static const bool allowDuplicate = false;
16127     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureInfoNV;
16128 
16129 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16130     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
16131     : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( geometryCount_ ), pGeometries( pGeometries_ )
16132     {}
16133 
16134     VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16135 
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16136     AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16137     {
16138       *this = rhs;
16139     }
16140 
16141 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16142     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_ )
16143     : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( static_cast<uint32_t>( geometries_.size() ) ), pGeometries( geometries_.data() )
16144     {}
16145 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
16146 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16147 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16148     AccelerationStructureInfoNV & operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16149     {
16150       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const *>( &rhs );
16151       return *this;
16152     }
16153 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16154     AccelerationStructureInfoNV & operator=( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16155     {
16156       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureInfoNV ) );
16157       return *this;
16158     }
16159 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16160     AccelerationStructureInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16161     {
16162       pNext = pNext_;
16163       return *this;
16164     }
16165 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16166     AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT
16167     {
16168       type = type_;
16169       return *this;
16170     }
16171 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16172     AccelerationStructureInfoNV & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
16173     {
16174       flags = flags_;
16175       return *this;
16176     }
16177 
setInstanceCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16178     AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
16179     {
16180       instanceCount = instanceCount_;
16181       return *this;
16182     }
16183 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16184     AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
16185     {
16186       geometryCount = geometryCount_;
16187       return *this;
16188     }
16189 
setPGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16190     AccelerationStructureInfoNV & setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ ) VULKAN_HPP_NOEXCEPT
16191     {
16192       pGeometries = pGeometries_;
16193       return *this;
16194     }
16195 
16196 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16197     AccelerationStructureInfoNV & setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_ ) VULKAN_HPP_NOEXCEPT
16198     {
16199       geometryCount = static_cast<uint32_t>( geometries_.size() );
16200       pGeometries = geometries_.data();
16201       return *this;
16202     }
16203 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
16204 
16205 
operator VkAccelerationStructureInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16206     operator VkAccelerationStructureInfoNV const&() const VULKAN_HPP_NOEXCEPT
16207     {
16208       return *reinterpret_cast<const VkAccelerationStructureInfoNV*>( this );
16209     }
16210 
operator VkAccelerationStructureInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16211     operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT
16212     {
16213       return *reinterpret_cast<VkAccelerationStructureInfoNV*>( this );
16214     }
16215 
16216 
16217 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16218     auto operator<=>( AccelerationStructureInfoNV const& ) const = default;
16219 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16220     bool operator==( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16221     {
16222       return ( sType == rhs.sType )
16223           && ( pNext == rhs.pNext )
16224           && ( type == rhs.type )
16225           && ( flags == rhs.flags )
16226           && ( instanceCount == rhs.instanceCount )
16227           && ( geometryCount == rhs.geometryCount )
16228           && ( pGeometries == rhs.pGeometries );
16229     }
16230 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16231     bool operator!=( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16232     {
16233       return !operator==( rhs );
16234     }
16235 #endif
16236 
16237 
16238 
16239   public:
16240     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV;
16241     const void* pNext = {};
16242     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = {};
16243     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {};
16244     uint32_t instanceCount = {};
16245     uint32_t geometryCount = {};
16246     const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries = {};
16247 
16248   };
16249   static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), "struct and wrapper have different size!" );
16250   static_assert( std::is_standard_layout<AccelerationStructureInfoNV>::value, "struct wrapper is not a standard layout!" );
16251 
16252   template <>
16253   struct CppType<StructureType, StructureType::eAccelerationStructureInfoNV>
16254   {
16255     using Type = AccelerationStructureInfoNV;
16256   };
16257 
16258   struct AccelerationStructureCreateInfoNV
16259   {
16260     static const bool allowDuplicate = false;
16261     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoNV;
16262 
16263 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16264     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {}) VULKAN_HPP_NOEXCEPT
16265     : compactedSize( compactedSize_ ), info( info_ )
16266     {}
16267 
16268     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16269 
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16270     AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16271     {
16272       *this = rhs;
16273     }
16274 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16275 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16276     AccelerationStructureCreateInfoNV & operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16277     {
16278       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const *>( &rhs );
16279       return *this;
16280     }
16281 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16282     AccelerationStructureCreateInfoNV & operator=( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16283     {
16284       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureCreateInfoNV ) );
16285       return *this;
16286     }
16287 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16288     AccelerationStructureCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16289     {
16290       pNext = pNext_;
16291       return *this;
16292     }
16293 
setCompactedSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16294     AccelerationStructureCreateInfoNV & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
16295     {
16296       compactedSize = compactedSize_;
16297       return *this;
16298     }
16299 
setInfoVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16300     AccelerationStructureCreateInfoNV & setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & info_ ) VULKAN_HPP_NOEXCEPT
16301     {
16302       info = info_;
16303       return *this;
16304     }
16305 
16306 
operator VkAccelerationStructureCreateInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16307     operator VkAccelerationStructureCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
16308     {
16309       return *reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( this );
16310     }
16311 
operator VkAccelerationStructureCreateInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16312     operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT
16313     {
16314       return *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>( this );
16315     }
16316 
16317 
16318 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16319     auto operator<=>( AccelerationStructureCreateInfoNV const& ) const = default;
16320 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16321     bool operator==( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16322     {
16323       return ( sType == rhs.sType )
16324           && ( pNext == rhs.pNext )
16325           && ( compactedSize == rhs.compactedSize )
16326           && ( info == rhs.info );
16327     }
16328 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16329     bool operator!=( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16330     {
16331       return !operator==( rhs );
16332     }
16333 #endif
16334 
16335 
16336 
16337   public:
16338     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV;
16339     const void* pNext = {};
16340     VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
16341     VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {};
16342 
16343   };
16344   static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), "struct and wrapper have different size!" );
16345   static_assert( std::is_standard_layout<AccelerationStructureCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
16346 
16347   template <>
16348   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoNV>
16349   {
16350     using Type = AccelerationStructureCreateInfoNV;
16351   };
16352 
16353 #ifdef VK_ENABLE_BETA_EXTENSIONS
16354   struct AccelerationStructureDeviceAddressInfoKHR
16355   {
16356     static const bool allowDuplicate = false;
16357     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
16358 
16359 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16360     VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT
16361     : accelerationStructure( accelerationStructure_ )
16362     {}
16363 
16364     VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16365 
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16366     AccelerationStructureDeviceAddressInfoKHR( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16367     {
16368       *this = rhs;
16369     }
16370 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16371 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16372     AccelerationStructureDeviceAddressInfoKHR & operator=( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16373     {
16374       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR const *>( &rhs );
16375       return *this;
16376     }
16377 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16378     AccelerationStructureDeviceAddressInfoKHR & operator=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16379     {
16380       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureDeviceAddressInfoKHR ) );
16381       return *this;
16382     }
16383 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16384     AccelerationStructureDeviceAddressInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16385     {
16386       pNext = pNext_;
16387       return *this;
16388     }
16389 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16390     AccelerationStructureDeviceAddressInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
16391     {
16392       accelerationStructure = accelerationStructure_;
16393       return *this;
16394     }
16395 
16396 
operator VkAccelerationStructureDeviceAddressInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16397     operator VkAccelerationStructureDeviceAddressInfoKHR const&() const VULKAN_HPP_NOEXCEPT
16398     {
16399       return *reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR*>( this );
16400     }
16401 
operator VkAccelerationStructureDeviceAddressInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16402     operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT
16403     {
16404       return *reinterpret_cast<VkAccelerationStructureDeviceAddressInfoKHR*>( this );
16405     }
16406 
16407 
16408 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16409     auto operator<=>( AccelerationStructureDeviceAddressInfoKHR const& ) const = default;
16410 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16411     bool operator==( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16412     {
16413       return ( sType == rhs.sType )
16414           && ( pNext == rhs.pNext )
16415           && ( accelerationStructure == rhs.accelerationStructure );
16416     }
16417 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16418     bool operator!=( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16419     {
16420       return !operator==( rhs );
16421     }
16422 #endif
16423 
16424 
16425 
16426   public:
16427     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
16428     const void* pNext = {};
16429     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
16430 
16431   };
16432   static_assert( sizeof( AccelerationStructureDeviceAddressInfoKHR ) == sizeof( VkAccelerationStructureDeviceAddressInfoKHR ), "struct and wrapper have different size!" );
16433   static_assert( std::is_standard_layout<AccelerationStructureDeviceAddressInfoKHR>::value, "struct wrapper is not a standard layout!" );
16434 
16435   template <>
16436   struct CppType<StructureType, StructureType::eAccelerationStructureDeviceAddressInfoKHR>
16437   {
16438     using Type = AccelerationStructureDeviceAddressInfoKHR;
16439   };
16440 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16441 
16442   struct TransformMatrixKHR
16443   {
16444 
16445 
16446 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR16447     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR(std::array<std::array<float,4>,3> const& matrix_ = {}) VULKAN_HPP_NOEXCEPT
16448     : matrix( matrix_ )
16449     {}
16450 
16451     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16452 
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR16453     TransformMatrixKHR( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16454     {
16455       *this = rhs;
16456     }
16457 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16458 
operator =VULKAN_HPP_NAMESPACE::TransformMatrixKHR16459     TransformMatrixKHR & operator=( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16460     {
16461       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const *>( &rhs );
16462       return *this;
16463     }
16464 
operator =VULKAN_HPP_NAMESPACE::TransformMatrixKHR16465     TransformMatrixKHR & operator=( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16466     {
16467       memcpy( static_cast<void *>( this ), &rhs, sizeof( TransformMatrixKHR ) );
16468       return *this;
16469     }
16470 
setMatrixVULKAN_HPP_NAMESPACE::TransformMatrixKHR16471     TransformMatrixKHR & setMatrix( std::array<std::array<float,4>,3> matrix_ ) VULKAN_HPP_NOEXCEPT
16472     {
16473       matrix = matrix_;
16474       return *this;
16475     }
16476 
16477 
operator VkTransformMatrixKHR const&VULKAN_HPP_NAMESPACE::TransformMatrixKHR16478     operator VkTransformMatrixKHR const&() const VULKAN_HPP_NOEXCEPT
16479     {
16480       return *reinterpret_cast<const VkTransformMatrixKHR*>( this );
16481     }
16482 
operator VkTransformMatrixKHR&VULKAN_HPP_NAMESPACE::TransformMatrixKHR16483     operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT
16484     {
16485       return *reinterpret_cast<VkTransformMatrixKHR*>( this );
16486     }
16487 
16488 
16489 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16490     auto operator<=>( TransformMatrixKHR const& ) const = default;
16491 #else
operator ==VULKAN_HPP_NAMESPACE::TransformMatrixKHR16492     bool operator==( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16493     {
16494       return ( matrix == rhs.matrix );
16495     }
16496 
operator !=VULKAN_HPP_NAMESPACE::TransformMatrixKHR16497     bool operator!=( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16498     {
16499       return !operator==( rhs );
16500     }
16501 #endif
16502 
16503 
16504 
16505   public:
16506     VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> matrix = {};
16507 
16508   };
16509   static_assert( sizeof( TransformMatrixKHR ) == sizeof( VkTransformMatrixKHR ), "struct and wrapper have different size!" );
16510   static_assert( std::is_standard_layout<TransformMatrixKHR>::value, "struct wrapper is not a standard layout!" );
16511   using TransformMatrixNV = TransformMatrixKHR;
16512 
16513   struct AccelerationStructureInstanceKHR
16514   {
16515 
16516 
16517 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16518     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
16519     : transform( transform_ ), instanceCustomIndex( instanceCustomIndex_ ), mask( mask_ ), instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ ), flags( flags_ ), accelerationStructureReference( accelerationStructureReference_ )
16520     {}
16521 
16522     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16523 
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16524     AccelerationStructureInstanceKHR( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16525     {
16526       *this = rhs;
16527     }
16528 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16529 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16530     AccelerationStructureInstanceKHR & operator=( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16531     {
16532       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const *>( &rhs );
16533       return *this;
16534     }
16535 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16536     AccelerationStructureInstanceKHR & operator=( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16537     {
16538       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureInstanceKHR ) );
16539       return *this;
16540     }
16541 
setTransformVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16542     AccelerationStructureInstanceKHR & setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT
16543     {
16544       transform = transform_;
16545       return *this;
16546     }
16547 
setInstanceCustomIndexVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16548     AccelerationStructureInstanceKHR & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
16549     {
16550       instanceCustomIndex = instanceCustomIndex_;
16551       return *this;
16552     }
16553 
setMaskVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16554     AccelerationStructureInstanceKHR & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
16555     {
16556       mask = mask_;
16557       return *this;
16558     }
16559 
setInstanceShaderBindingTableRecordOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16560     AccelerationStructureInstanceKHR & setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
16561     {
16562       instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
16563       return *this;
16564     }
16565 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16566     AccelerationStructureInstanceKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
16567     {
16568       flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR*>(&flags_);
16569       return *this;
16570     }
16571 
setAccelerationStructureReferenceVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16572     AccelerationStructureInstanceKHR & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
16573     {
16574       accelerationStructureReference = accelerationStructureReference_;
16575       return *this;
16576     }
16577 
16578 
operator VkAccelerationStructureInstanceKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16579     operator VkAccelerationStructureInstanceKHR const&() const VULKAN_HPP_NOEXCEPT
16580     {
16581       return *reinterpret_cast<const VkAccelerationStructureInstanceKHR*>( this );
16582     }
16583 
operator VkAccelerationStructureInstanceKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16584     operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT
16585     {
16586       return *reinterpret_cast<VkAccelerationStructureInstanceKHR*>( this );
16587     }
16588 
16589 
16590 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16591     auto operator<=>( AccelerationStructureInstanceKHR const& ) const = default;
16592 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16593     bool operator==( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16594     {
16595       return ( transform == rhs.transform )
16596           && ( instanceCustomIndex == rhs.instanceCustomIndex )
16597           && ( mask == rhs.mask )
16598           && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset )
16599           && ( flags == rhs.flags )
16600           && ( accelerationStructureReference == rhs.accelerationStructureReference );
16601     }
16602 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16603     bool operator!=( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16604     {
16605       return !operator==( rhs );
16606     }
16607 #endif
16608 
16609 
16610 
16611   public:
16612     VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {};
16613     uint32_t instanceCustomIndex : 24;
16614     uint32_t mask : 8;
16615     uint32_t instanceShaderBindingTableRecordOffset : 24;
16616     VkGeometryInstanceFlagsKHR flags : 8;
16617     uint64_t accelerationStructureReference = {};
16618 
16619   };
16620   static_assert( sizeof( AccelerationStructureInstanceKHR ) == sizeof( VkAccelerationStructureInstanceKHR ), "struct and wrapper have different size!" );
16621   static_assert( std::is_standard_layout<AccelerationStructureInstanceKHR>::value, "struct wrapper is not a standard layout!" );
16622   using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
16623 
16624 #ifdef VK_ENABLE_BETA_EXTENSIONS
16625   struct AccelerationStructureMemoryRequirementsInfoKHR
16626   {
16627     static const bool allowDuplicate = false;
16628     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoKHR;
16629 
16630 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureMemoryRequirementsInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16631     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR::eObject, VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType_ = VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR::eHost, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT
16632     : type( type_ ), buildType( buildType_ ), accelerationStructure( accelerationStructure_ )
16633     {}
16634 
16635     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoKHR( AccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16636 
AccelerationStructureMemoryRequirementsInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16637     AccelerationStructureMemoryRequirementsInfoKHR( VkAccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16638     {
16639       *this = rhs;
16640     }
16641 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16642 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16643     AccelerationStructureMemoryRequirementsInfoKHR & operator=( VkAccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16644     {
16645       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR const *>( &rhs );
16646       return *this;
16647     }
16648 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16649     AccelerationStructureMemoryRequirementsInfoKHR & operator=( AccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16650     {
16651       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureMemoryRequirementsInfoKHR ) );
16652       return *this;
16653     }
16654 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16655     AccelerationStructureMemoryRequirementsInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16656     {
16657       pNext = pNext_;
16658       return *this;
16659     }
16660 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16661     AccelerationStructureMemoryRequirementsInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
16662     {
16663       type = type_;
16664       return *this;
16665     }
16666 
setBuildTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16667     AccelerationStructureMemoryRequirementsInfoKHR & setBuildType( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType_ ) VULKAN_HPP_NOEXCEPT
16668     {
16669       buildType = buildType_;
16670       return *this;
16671     }
16672 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16673     AccelerationStructureMemoryRequirementsInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
16674     {
16675       accelerationStructure = accelerationStructure_;
16676       return *this;
16677     }
16678 
16679 
operator VkAccelerationStructureMemoryRequirementsInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16680     operator VkAccelerationStructureMemoryRequirementsInfoKHR const&() const VULKAN_HPP_NOEXCEPT
16681     {
16682       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR*>( this );
16683     }
16684 
operator VkAccelerationStructureMemoryRequirementsInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16685     operator VkAccelerationStructureMemoryRequirementsInfoKHR &() VULKAN_HPP_NOEXCEPT
16686     {
16687       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoKHR*>( this );
16688     }
16689 
16690 
16691 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16692     auto operator<=>( AccelerationStructureMemoryRequirementsInfoKHR const& ) const = default;
16693 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16694     bool operator==( AccelerationStructureMemoryRequirementsInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16695     {
16696       return ( sType == rhs.sType )
16697           && ( pNext == rhs.pNext )
16698           && ( type == rhs.type )
16699           && ( buildType == rhs.buildType )
16700           && ( accelerationStructure == rhs.accelerationStructure );
16701     }
16702 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16703     bool operator!=( AccelerationStructureMemoryRequirementsInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16704     {
16705       return !operator==( rhs );
16706     }
16707 #endif
16708 
16709 
16710 
16711   public:
16712     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoKHR;
16713     const void* pNext = {};
16714     VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR::eObject;
16715     VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType = VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR::eHost;
16716     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
16717 
16718   };
16719   static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoKHR ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoKHR ), "struct and wrapper have different size!" );
16720   static_assert( std::is_standard_layout<AccelerationStructureMemoryRequirementsInfoKHR>::value, "struct wrapper is not a standard layout!" );
16721 
16722   template <>
16723   struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoKHR>
16724   {
16725     using Type = AccelerationStructureMemoryRequirementsInfoKHR;
16726   };
16727 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16728 
16729   struct AccelerationStructureMemoryRequirementsInfoNV
16730   {
16731     static const bool allowDuplicate = false;
16732     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
16733 
16734 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16735     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT
16736     : type( type_ ), accelerationStructure( accelerationStructure_ )
16737     {}
16738 
16739     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16740 
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16741     AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16742     {
16743       *this = rhs;
16744     }
16745 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16746 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16747     AccelerationStructureMemoryRequirementsInfoNV & operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16748     {
16749       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV const *>( &rhs );
16750       return *this;
16751     }
16752 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16753     AccelerationStructureMemoryRequirementsInfoNV & operator=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16754     {
16755       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureMemoryRequirementsInfoNV ) );
16756       return *this;
16757     }
16758 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16759     AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16760     {
16761       pNext = pNext_;
16762       return *this;
16763     }
16764 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16765     AccelerationStructureMemoryRequirementsInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT
16766     {
16767       type = type_;
16768       return *this;
16769     }
16770 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16771     AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
16772     {
16773       accelerationStructure = accelerationStructure_;
16774       return *this;
16775     }
16776 
16777 
operator VkAccelerationStructureMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16778     operator VkAccelerationStructureMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT
16779     {
16780       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
16781     }
16782 
operator VkAccelerationStructureMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16783     operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
16784     {
16785       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
16786     }
16787 
16788 
16789 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16790     auto operator<=>( AccelerationStructureMemoryRequirementsInfoNV const& ) const = default;
16791 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16792     bool operator==( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16793     {
16794       return ( sType == rhs.sType )
16795           && ( pNext == rhs.pNext )
16796           && ( type == rhs.type )
16797           && ( accelerationStructure == rhs.accelerationStructure );
16798     }
16799 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16800     bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16801     {
16802       return !operator==( rhs );
16803     }
16804 #endif
16805 
16806 
16807 
16808   public:
16809     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
16810     const void* pNext = {};
16811     VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = {};
16812     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
16813 
16814   };
16815   static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
16816   static_assert( std::is_standard_layout<AccelerationStructureMemoryRequirementsInfoNV>::value, "struct wrapper is not a standard layout!" );
16817 
16818   template <>
16819   struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoNV>
16820   {
16821     using Type = AccelerationStructureMemoryRequirementsInfoNV;
16822   };
16823 
16824 #ifdef VK_ENABLE_BETA_EXTENSIONS
16825   struct AccelerationStructureVersionKHR
16826   {
16827     static const bool allowDuplicate = false;
16828     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureVersionKHR;
16829 
16830 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureVersionKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16831     VULKAN_HPP_CONSTEXPR AccelerationStructureVersionKHR(const uint8_t* versionData_ = {}) VULKAN_HPP_NOEXCEPT
16832     : versionData( versionData_ )
16833     {}
16834 
16835     VULKAN_HPP_CONSTEXPR AccelerationStructureVersionKHR( AccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16836 
AccelerationStructureVersionKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16837     AccelerationStructureVersionKHR( VkAccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16838     {
16839       *this = rhs;
16840     }
16841 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16842 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16843     AccelerationStructureVersionKHR & operator=( VkAccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16844     {
16845       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR const *>( &rhs );
16846       return *this;
16847     }
16848 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16849     AccelerationStructureVersionKHR & operator=( AccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16850     {
16851       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureVersionKHR ) );
16852       return *this;
16853     }
16854 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16855     AccelerationStructureVersionKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16856     {
16857       pNext = pNext_;
16858       return *this;
16859     }
16860 
setVersionDataVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16861     AccelerationStructureVersionKHR & setVersionData( const uint8_t* versionData_ ) VULKAN_HPP_NOEXCEPT
16862     {
16863       versionData = versionData_;
16864       return *this;
16865     }
16866 
16867 
operator VkAccelerationStructureVersionKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16868     operator VkAccelerationStructureVersionKHR const&() const VULKAN_HPP_NOEXCEPT
16869     {
16870       return *reinterpret_cast<const VkAccelerationStructureVersionKHR*>( this );
16871     }
16872 
operator VkAccelerationStructureVersionKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16873     operator VkAccelerationStructureVersionKHR &() VULKAN_HPP_NOEXCEPT
16874     {
16875       return *reinterpret_cast<VkAccelerationStructureVersionKHR*>( this );
16876     }
16877 
16878 
16879 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16880     auto operator<=>( AccelerationStructureVersionKHR const& ) const = default;
16881 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16882     bool operator==( AccelerationStructureVersionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16883     {
16884       return ( sType == rhs.sType )
16885           && ( pNext == rhs.pNext )
16886           && ( versionData == rhs.versionData );
16887     }
16888 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16889     bool operator!=( AccelerationStructureVersionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16890     {
16891       return !operator==( rhs );
16892     }
16893 #endif
16894 
16895 
16896 
16897   public:
16898     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureVersionKHR;
16899     const void* pNext = {};
16900     const uint8_t* versionData = {};
16901 
16902   };
16903   static_assert( sizeof( AccelerationStructureVersionKHR ) == sizeof( VkAccelerationStructureVersionKHR ), "struct and wrapper have different size!" );
16904   static_assert( std::is_standard_layout<AccelerationStructureVersionKHR>::value, "struct wrapper is not a standard layout!" );
16905 
16906   template <>
16907   struct CppType<StructureType, StructureType::eAccelerationStructureVersionKHR>
16908   {
16909     using Type = AccelerationStructureVersionKHR;
16910   };
16911 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16912 
16913   class SwapchainKHR
16914   {
16915   public:
16916     using CType = VkSwapchainKHR;
16917 
16918     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR;
16919     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR;
16920 
16921   public:
SwapchainKHR()16922     VULKAN_HPP_CONSTEXPR SwapchainKHR() VULKAN_HPP_NOEXCEPT
16923       : m_swapchainKHR(VK_NULL_HANDLE)
16924     {}
16925 
SwapchainKHR(std::nullptr_t)16926     VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16927       : m_swapchainKHR(VK_NULL_HANDLE)
16928     {}
16929 
SwapchainKHR(VkSwapchainKHR swapchainKHR)16930     VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR ) VULKAN_HPP_NOEXCEPT
16931       : m_swapchainKHR( swapchainKHR )
16932     {}
16933 
16934 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSwapchainKHR swapchainKHR)16935     SwapchainKHR & operator=(VkSwapchainKHR swapchainKHR) VULKAN_HPP_NOEXCEPT
16936     {
16937       m_swapchainKHR = swapchainKHR;
16938       return *this;
16939     }
16940 #endif
16941 
operator =(std::nullptr_t)16942     SwapchainKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16943     {
16944       m_swapchainKHR = VK_NULL_HANDLE;
16945       return *this;
16946     }
16947 
16948 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16949     auto operator<=>( SwapchainKHR const& ) const = default;
16950 #else
operator ==(SwapchainKHR const & rhs) const16951     bool operator==( SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
16952     {
16953       return m_swapchainKHR == rhs.m_swapchainKHR;
16954     }
16955 
operator !=(SwapchainKHR const & rhs) const16956     bool operator!=(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
16957     {
16958       return m_swapchainKHR != rhs.m_swapchainKHR;
16959     }
16960 
operator <(SwapchainKHR const & rhs) const16961     bool operator<(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
16962     {
16963       return m_swapchainKHR < rhs.m_swapchainKHR;
16964     }
16965 #endif
16966 
operator VkSwapchainKHR() const16967     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSwapchainKHR() const VULKAN_HPP_NOEXCEPT
16968     {
16969       return m_swapchainKHR;
16970     }
16971 
operator bool() const16972     explicit operator bool() const VULKAN_HPP_NOEXCEPT
16973     {
16974       return m_swapchainKHR != VK_NULL_HANDLE;
16975     }
16976 
operator !() const16977     bool operator!() const VULKAN_HPP_NOEXCEPT
16978     {
16979       return m_swapchainKHR == VK_NULL_HANDLE;
16980     }
16981 
16982   private:
16983     VkSwapchainKHR m_swapchainKHR;
16984   };
16985   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SwapchainKHR ) == sizeof( VkSwapchainKHR ), "handle and wrapper have different size!" );
16986 
16987   template <>
16988   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSwapchainKHR>
16989   {
16990     using type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
16991   };
16992 
16993   template <>
16994   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR>
16995   {
16996     using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
16997   };
16998 
16999 
17000   template <>
17001   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR>
17002   {
17003     using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
17004   };
17005 
17006 
17007   template <>
17008   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SwapchainKHR>
17009   {
17010     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
17011   };
17012 
17013   class Semaphore
17014   {
17015   public:
17016     using CType = VkSemaphore;
17017 
17018     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore;
17019     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore;
17020 
17021   public:
Semaphore()17022     VULKAN_HPP_CONSTEXPR Semaphore() VULKAN_HPP_NOEXCEPT
17023       : m_semaphore(VK_NULL_HANDLE)
17024     {}
17025 
Semaphore(std::nullptr_t)17026     VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17027       : m_semaphore(VK_NULL_HANDLE)
17028     {}
17029 
Semaphore(VkSemaphore semaphore)17030     VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore ) VULKAN_HPP_NOEXCEPT
17031       : m_semaphore( semaphore )
17032     {}
17033 
17034 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSemaphore semaphore)17035     Semaphore & operator=(VkSemaphore semaphore) VULKAN_HPP_NOEXCEPT
17036     {
17037       m_semaphore = semaphore;
17038       return *this;
17039     }
17040 #endif
17041 
operator =(std::nullptr_t)17042     Semaphore & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17043     {
17044       m_semaphore = VK_NULL_HANDLE;
17045       return *this;
17046     }
17047 
17048 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17049     auto operator<=>( Semaphore const& ) const = default;
17050 #else
operator ==(Semaphore const & rhs) const17051     bool operator==( Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
17052     {
17053       return m_semaphore == rhs.m_semaphore;
17054     }
17055 
operator !=(Semaphore const & rhs) const17056     bool operator!=(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
17057     {
17058       return m_semaphore != rhs.m_semaphore;
17059     }
17060 
operator <(Semaphore const & rhs) const17061     bool operator<(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
17062     {
17063       return m_semaphore < rhs.m_semaphore;
17064     }
17065 #endif
17066 
operator VkSemaphore() const17067     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSemaphore() const VULKAN_HPP_NOEXCEPT
17068     {
17069       return m_semaphore;
17070     }
17071 
operator bool() const17072     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17073     {
17074       return m_semaphore != VK_NULL_HANDLE;
17075     }
17076 
operator !() const17077     bool operator!() const VULKAN_HPP_NOEXCEPT
17078     {
17079       return m_semaphore == VK_NULL_HANDLE;
17080     }
17081 
17082   private:
17083     VkSemaphore m_semaphore;
17084   };
17085   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Semaphore ) == sizeof( VkSemaphore ), "handle and wrapper have different size!" );
17086 
17087   template <>
17088   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSemaphore>
17089   {
17090     using type = VULKAN_HPP_NAMESPACE::Semaphore;
17091   };
17092 
17093   template <>
17094   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore>
17095   {
17096     using Type = VULKAN_HPP_NAMESPACE::Semaphore;
17097   };
17098 
17099 
17100   template <>
17101   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore>
17102   {
17103     using Type = VULKAN_HPP_NAMESPACE::Semaphore;
17104   };
17105 
17106 
17107   template <>
17108   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Semaphore>
17109   {
17110     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
17111   };
17112 
17113   class Fence
17114   {
17115   public:
17116     using CType = VkFence;
17117 
17118     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFence;
17119     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence;
17120 
17121   public:
Fence()17122     VULKAN_HPP_CONSTEXPR Fence() VULKAN_HPP_NOEXCEPT
17123       : m_fence(VK_NULL_HANDLE)
17124     {}
17125 
Fence(std::nullptr_t)17126     VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17127       : m_fence(VK_NULL_HANDLE)
17128     {}
17129 
Fence(VkFence fence)17130     VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence ) VULKAN_HPP_NOEXCEPT
17131       : m_fence( fence )
17132     {}
17133 
17134 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFence fence)17135     Fence & operator=(VkFence fence) VULKAN_HPP_NOEXCEPT
17136     {
17137       m_fence = fence;
17138       return *this;
17139     }
17140 #endif
17141 
operator =(std::nullptr_t)17142     Fence & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17143     {
17144       m_fence = VK_NULL_HANDLE;
17145       return *this;
17146     }
17147 
17148 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17149     auto operator<=>( Fence const& ) const = default;
17150 #else
operator ==(Fence const & rhs) const17151     bool operator==( Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
17152     {
17153       return m_fence == rhs.m_fence;
17154     }
17155 
operator !=(Fence const & rhs) const17156     bool operator!=(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
17157     {
17158       return m_fence != rhs.m_fence;
17159     }
17160 
operator <(Fence const & rhs) const17161     bool operator<(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
17162     {
17163       return m_fence < rhs.m_fence;
17164     }
17165 #endif
17166 
operator VkFence() const17167     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFence() const VULKAN_HPP_NOEXCEPT
17168     {
17169       return m_fence;
17170     }
17171 
operator bool() const17172     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17173     {
17174       return m_fence != VK_NULL_HANDLE;
17175     }
17176 
operator !() const17177     bool operator!() const VULKAN_HPP_NOEXCEPT
17178     {
17179       return m_fence == VK_NULL_HANDLE;
17180     }
17181 
17182   private:
17183     VkFence m_fence;
17184   };
17185   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Fence ) == sizeof( VkFence ), "handle and wrapper have different size!" );
17186 
17187   template <>
17188   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eFence>
17189   {
17190     using type = VULKAN_HPP_NAMESPACE::Fence;
17191   };
17192 
17193   template <>
17194   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eFence>
17195   {
17196     using Type = VULKAN_HPP_NAMESPACE::Fence;
17197   };
17198 
17199 
17200   template <>
17201   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence>
17202   {
17203     using Type = VULKAN_HPP_NAMESPACE::Fence;
17204   };
17205 
17206 
17207   template <>
17208   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Fence>
17209   {
17210     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
17211   };
17212 
17213   struct AcquireNextImageInfoKHR
17214   {
17215     static const bool allowDuplicate = false;
17216     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireNextImageInfoKHR;
17217 
17218 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17219     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
17220     : swapchain( swapchain_ ), timeout( timeout_ ), semaphore( semaphore_ ), fence( fence_ ), deviceMask( deviceMask_ )
17221     {}
17222 
17223     VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17224 
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17225     AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17226     {
17227       *this = rhs;
17228     }
17229 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17230 
operator =VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17231     AcquireNextImageInfoKHR & operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17232     {
17233       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR const *>( &rhs );
17234       return *this;
17235     }
17236 
operator =VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17237     AcquireNextImageInfoKHR & operator=( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17238     {
17239       memcpy( static_cast<void *>( this ), &rhs, sizeof( AcquireNextImageInfoKHR ) );
17240       return *this;
17241     }
17242 
setPNextVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17243     AcquireNextImageInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17244     {
17245       pNext = pNext_;
17246       return *this;
17247     }
17248 
setSwapchainVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17249     AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
17250     {
17251       swapchain = swapchain_;
17252       return *this;
17253     }
17254 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17255     AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
17256     {
17257       timeout = timeout_;
17258       return *this;
17259     }
17260 
setSemaphoreVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17261     AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
17262     {
17263       semaphore = semaphore_;
17264       return *this;
17265     }
17266 
setFenceVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17267     AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
17268     {
17269       fence = fence_;
17270       return *this;
17271     }
17272 
setDeviceMaskVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17273     AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
17274     {
17275       deviceMask = deviceMask_;
17276       return *this;
17277     }
17278 
17279 
operator VkAcquireNextImageInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17280     operator VkAcquireNextImageInfoKHR const&() const VULKAN_HPP_NOEXCEPT
17281     {
17282       return *reinterpret_cast<const VkAcquireNextImageInfoKHR*>( this );
17283     }
17284 
operator VkAcquireNextImageInfoKHR&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17285     operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT
17286     {
17287       return *reinterpret_cast<VkAcquireNextImageInfoKHR*>( this );
17288     }
17289 
17290 
17291 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17292     auto operator<=>( AcquireNextImageInfoKHR const& ) const = default;
17293 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17294     bool operator==( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17295     {
17296       return ( sType == rhs.sType )
17297           && ( pNext == rhs.pNext )
17298           && ( swapchain == rhs.swapchain )
17299           && ( timeout == rhs.timeout )
17300           && ( semaphore == rhs.semaphore )
17301           && ( fence == rhs.fence )
17302           && ( deviceMask == rhs.deviceMask );
17303     }
17304 
operator !=VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17305     bool operator!=( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17306     {
17307       return !operator==( rhs );
17308     }
17309 #endif
17310 
17311 
17312 
17313   public:
17314     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR;
17315     const void* pNext = {};
17316     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
17317     uint64_t timeout = {};
17318     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
17319     VULKAN_HPP_NAMESPACE::Fence fence = {};
17320     uint32_t deviceMask = {};
17321 
17322   };
17323   static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), "struct and wrapper have different size!" );
17324   static_assert( std::is_standard_layout<AcquireNextImageInfoKHR>::value, "struct wrapper is not a standard layout!" );
17325 
17326   template <>
17327   struct CppType<StructureType, StructureType::eAcquireNextImageInfoKHR>
17328   {
17329     using Type = AcquireNextImageInfoKHR;
17330   };
17331 
17332   struct AcquireProfilingLockInfoKHR
17333   {
17334     static const bool allowDuplicate = false;
17335     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireProfilingLockInfoKHR;
17336 
17337 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17338     VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR(VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {}, uint64_t timeout_ = {}) VULKAN_HPP_NOEXCEPT
17339     : flags( flags_ ), timeout( timeout_ )
17340     {}
17341 
17342     VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17343 
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17344     AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17345     {
17346       *this = rhs;
17347     }
17348 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17349 
operator =VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17350     AcquireProfilingLockInfoKHR & operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17351     {
17352       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR const *>( &rhs );
17353       return *this;
17354     }
17355 
operator =VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17356     AcquireProfilingLockInfoKHR & operator=( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17357     {
17358       memcpy( static_cast<void *>( this ), &rhs, sizeof( AcquireProfilingLockInfoKHR ) );
17359       return *this;
17360     }
17361 
setPNextVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17362     AcquireProfilingLockInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17363     {
17364       pNext = pNext_;
17365       return *this;
17366     }
17367 
setFlagsVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17368     AcquireProfilingLockInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
17369     {
17370       flags = flags_;
17371       return *this;
17372     }
17373 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17374     AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
17375     {
17376       timeout = timeout_;
17377       return *this;
17378     }
17379 
17380 
operator VkAcquireProfilingLockInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17381     operator VkAcquireProfilingLockInfoKHR const&() const VULKAN_HPP_NOEXCEPT
17382     {
17383       return *reinterpret_cast<const VkAcquireProfilingLockInfoKHR*>( this );
17384     }
17385 
operator VkAcquireProfilingLockInfoKHR&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17386     operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT
17387     {
17388       return *reinterpret_cast<VkAcquireProfilingLockInfoKHR*>( this );
17389     }
17390 
17391 
17392 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17393     auto operator<=>( AcquireProfilingLockInfoKHR const& ) const = default;
17394 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17395     bool operator==( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17396     {
17397       return ( sType == rhs.sType )
17398           && ( pNext == rhs.pNext )
17399           && ( flags == rhs.flags )
17400           && ( timeout == rhs.timeout );
17401     }
17402 
operator !=VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17403     bool operator!=( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17404     {
17405       return !operator==( rhs );
17406     }
17407 #endif
17408 
17409 
17410 
17411   public:
17412     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR;
17413     const void* pNext = {};
17414     VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {};
17415     uint64_t timeout = {};
17416 
17417   };
17418   static_assert( sizeof( AcquireProfilingLockInfoKHR ) == sizeof( VkAcquireProfilingLockInfoKHR ), "struct and wrapper have different size!" );
17419   static_assert( std::is_standard_layout<AcquireProfilingLockInfoKHR>::value, "struct wrapper is not a standard layout!" );
17420 
17421   template <>
17422   struct CppType<StructureType, StructureType::eAcquireProfilingLockInfoKHR>
17423   {
17424     using Type = AcquireProfilingLockInfoKHR;
17425   };
17426 
17427   struct AllocationCallbacks
17428   {
17429 
17430 
17431 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks17432     VULKAN_HPP_CONSTEXPR AllocationCallbacks(void* pUserData_ = {}, PFN_vkAllocationFunction pfnAllocation_ = {}, PFN_vkReallocationFunction pfnReallocation_ = {}, PFN_vkFreeFunction pfnFree_ = {}, PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {}, PFN_vkInternalFreeNotification pfnInternalFree_ = {}) VULKAN_HPP_NOEXCEPT
17433     : pUserData( pUserData_ ), pfnAllocation( pfnAllocation_ ), pfnReallocation( pfnReallocation_ ), pfnFree( pfnFree_ ), pfnInternalAllocation( pfnInternalAllocation_ ), pfnInternalFree( pfnInternalFree_ )
17434     {}
17435 
17436     VULKAN_HPP_CONSTEXPR AllocationCallbacks( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17437 
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks17438     AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
17439     {
17440       *this = rhs;
17441     }
17442 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17443 
operator =VULKAN_HPP_NAMESPACE::AllocationCallbacks17444     AllocationCallbacks & operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
17445     {
17446       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AllocationCallbacks const *>( &rhs );
17447       return *this;
17448     }
17449 
operator =VULKAN_HPP_NAMESPACE::AllocationCallbacks17450     AllocationCallbacks & operator=( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
17451     {
17452       memcpy( static_cast<void *>( this ), &rhs, sizeof( AllocationCallbacks ) );
17453       return *this;
17454     }
17455 
setPUserDataVULKAN_HPP_NAMESPACE::AllocationCallbacks17456     AllocationCallbacks & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
17457     {
17458       pUserData = pUserData_;
17459       return *this;
17460     }
17461 
setPfnAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks17462     AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT
17463     {
17464       pfnAllocation = pfnAllocation_;
17465       return *this;
17466     }
17467 
setPfnReallocationVULKAN_HPP_NAMESPACE::AllocationCallbacks17468     AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT
17469     {
17470       pfnReallocation = pfnReallocation_;
17471       return *this;
17472     }
17473 
setPfnFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks17474     AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT
17475     {
17476       pfnFree = pfnFree_;
17477       return *this;
17478     }
17479 
setPfnInternalAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks17480     AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT
17481     {
17482       pfnInternalAllocation = pfnInternalAllocation_;
17483       return *this;
17484     }
17485 
setPfnInternalFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks17486     AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT
17487     {
17488       pfnInternalFree = pfnInternalFree_;
17489       return *this;
17490     }
17491 
17492 
operator VkAllocationCallbacks const&VULKAN_HPP_NAMESPACE::AllocationCallbacks17493     operator VkAllocationCallbacks const&() const VULKAN_HPP_NOEXCEPT
17494     {
17495       return *reinterpret_cast<const VkAllocationCallbacks*>( this );
17496     }
17497 
operator VkAllocationCallbacks&VULKAN_HPP_NAMESPACE::AllocationCallbacks17498     operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT
17499     {
17500       return *reinterpret_cast<VkAllocationCallbacks*>( this );
17501     }
17502 
17503 
17504 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17505     auto operator<=>( AllocationCallbacks const& ) const = default;
17506 #else
operator ==VULKAN_HPP_NAMESPACE::AllocationCallbacks17507     bool operator==( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT
17508     {
17509       return ( pUserData == rhs.pUserData )
17510           && ( pfnAllocation == rhs.pfnAllocation )
17511           && ( pfnReallocation == rhs.pfnReallocation )
17512           && ( pfnFree == rhs.pfnFree )
17513           && ( pfnInternalAllocation == rhs.pfnInternalAllocation )
17514           && ( pfnInternalFree == rhs.pfnInternalFree );
17515     }
17516 
operator !=VULKAN_HPP_NAMESPACE::AllocationCallbacks17517     bool operator!=( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT
17518     {
17519       return !operator==( rhs );
17520     }
17521 #endif
17522 
17523 
17524 
17525   public:
17526     void* pUserData = {};
17527     PFN_vkAllocationFunction pfnAllocation = {};
17528     PFN_vkReallocationFunction pfnReallocation = {};
17529     PFN_vkFreeFunction pfnFree = {};
17530     PFN_vkInternalAllocationNotification pfnInternalAllocation = {};
17531     PFN_vkInternalFreeNotification pfnInternalFree = {};
17532 
17533   };
17534   static_assert( sizeof( AllocationCallbacks ) == sizeof( VkAllocationCallbacks ), "struct and wrapper have different size!" );
17535   static_assert( std::is_standard_layout<AllocationCallbacks>::value, "struct wrapper is not a standard layout!" );
17536 
17537   struct ComponentMapping
17538   {
17539 
17540 
17541 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping17542     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
17543     : r( r_ ), g( g_ ), b( b_ ), a( a_ )
17544     {}
17545 
17546     VULKAN_HPP_CONSTEXPR ComponentMapping( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17547 
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping17548     ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
17549     {
17550       *this = rhs;
17551     }
17552 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17553 
operator =VULKAN_HPP_NAMESPACE::ComponentMapping17554     ComponentMapping & operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
17555     {
17556       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComponentMapping const *>( &rhs );
17557       return *this;
17558     }
17559 
operator =VULKAN_HPP_NAMESPACE::ComponentMapping17560     ComponentMapping & operator=( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
17561     {
17562       memcpy( static_cast<void *>( this ), &rhs, sizeof( ComponentMapping ) );
17563       return *this;
17564     }
17565 
setRVULKAN_HPP_NAMESPACE::ComponentMapping17566     ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT
17567     {
17568       r = r_;
17569       return *this;
17570     }
17571 
setGVULKAN_HPP_NAMESPACE::ComponentMapping17572     ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT
17573     {
17574       g = g_;
17575       return *this;
17576     }
17577 
setBVULKAN_HPP_NAMESPACE::ComponentMapping17578     ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT
17579     {
17580       b = b_;
17581       return *this;
17582     }
17583 
setAVULKAN_HPP_NAMESPACE::ComponentMapping17584     ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT
17585     {
17586       a = a_;
17587       return *this;
17588     }
17589 
17590 
operator VkComponentMapping const&VULKAN_HPP_NAMESPACE::ComponentMapping17591     operator VkComponentMapping const&() const VULKAN_HPP_NOEXCEPT
17592     {
17593       return *reinterpret_cast<const VkComponentMapping*>( this );
17594     }
17595 
operator VkComponentMapping&VULKAN_HPP_NAMESPACE::ComponentMapping17596     operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT
17597     {
17598       return *reinterpret_cast<VkComponentMapping*>( this );
17599     }
17600 
17601 
17602 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17603     auto operator<=>( ComponentMapping const& ) const = default;
17604 #else
operator ==VULKAN_HPP_NAMESPACE::ComponentMapping17605     bool operator==( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT
17606     {
17607       return ( r == rhs.r )
17608           && ( g == rhs.g )
17609           && ( b == rhs.b )
17610           && ( a == rhs.a );
17611     }
17612 
operator !=VULKAN_HPP_NAMESPACE::ComponentMapping17613     bool operator!=( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT
17614     {
17615       return !operator==( rhs );
17616     }
17617 #endif
17618 
17619 
17620 
17621   public:
17622     VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17623     VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17624     VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17625     VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17626 
17627   };
17628   static_assert( sizeof( ComponentMapping ) == sizeof( VkComponentMapping ), "struct and wrapper have different size!" );
17629   static_assert( std::is_standard_layout<ComponentMapping>::value, "struct wrapper is not a standard layout!" );
17630 
17631 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17632   struct AndroidHardwareBufferFormatPropertiesANDROID
17633   {
17634     static const bool allowDuplicate = false;
17635     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
17636 
17637 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17638     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
17639     : format( format_ ), externalFormat( externalFormat_ ), formatFeatures( formatFeatures_ ), samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ), suggestedYcbcrModel( suggestedYcbcrModel_ ), suggestedYcbcrRange( suggestedYcbcrRange_ ), suggestedXChromaOffset( suggestedXChromaOffset_ ), suggestedYChromaOffset( suggestedYChromaOffset_ )
17640     {}
17641 
17642     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17643 
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17644     AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17645     {
17646       *this = rhs;
17647     }
17648 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17649 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17650     AndroidHardwareBufferFormatPropertiesANDROID & operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17651     {
17652       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID const *>( &rhs );
17653       return *this;
17654     }
17655 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17656     AndroidHardwareBufferFormatPropertiesANDROID & operator=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17657     {
17658       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) );
17659       return *this;
17660     }
17661 
17662 
operator VkAndroidHardwareBufferFormatPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17663     operator VkAndroidHardwareBufferFormatPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT
17664     {
17665       return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
17666     }
17667 
operator VkAndroidHardwareBufferFormatPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17668     operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
17669     {
17670       return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
17671     }
17672 
17673 
17674 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17675     auto operator<=>( AndroidHardwareBufferFormatPropertiesANDROID const& ) const = default;
17676 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17677     bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17678     {
17679       return ( sType == rhs.sType )
17680           && ( pNext == rhs.pNext )
17681           && ( format == rhs.format )
17682           && ( externalFormat == rhs.externalFormat )
17683           && ( formatFeatures == rhs.formatFeatures )
17684           && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
17685           && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
17686           && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
17687           && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
17688           && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
17689     }
17690 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17691     bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17692     {
17693       return !operator==( rhs );
17694     }
17695 #endif
17696 
17697 
17698 
17699   public:
17700     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
17701     void* pNext = {};
17702     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
17703     uint64_t externalFormat = {};
17704     VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
17705     VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
17706     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
17707     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
17708     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
17709     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
17710 
17711   };
17712   static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "struct and wrapper have different size!" );
17713   static_assert( std::is_standard_layout<AndroidHardwareBufferFormatPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
17714 
17715   template <>
17716   struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatPropertiesANDROID>
17717   {
17718     using Type = AndroidHardwareBufferFormatPropertiesANDROID;
17719   };
17720 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17721 
17722 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17723   struct AndroidHardwareBufferPropertiesANDROID
17724   {
17725     static const bool allowDuplicate = false;
17726     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
17727 
17728 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17729     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
17730     : allocationSize( allocationSize_ ), memoryTypeBits( memoryTypeBits_ )
17731     {}
17732 
17733     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17734 
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17735     AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17736     {
17737       *this = rhs;
17738     }
17739 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17740 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17741     AndroidHardwareBufferPropertiesANDROID & operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17742     {
17743       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID const *>( &rhs );
17744       return *this;
17745     }
17746 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17747     AndroidHardwareBufferPropertiesANDROID & operator=( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17748     {
17749       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidHardwareBufferPropertiesANDROID ) );
17750       return *this;
17751     }
17752 
17753 
operator VkAndroidHardwareBufferPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17754     operator VkAndroidHardwareBufferPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT
17755     {
17756       return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID*>( this );
17757     }
17758 
operator VkAndroidHardwareBufferPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17759     operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
17760     {
17761       return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( this );
17762     }
17763 
17764 
17765 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17766     auto operator<=>( AndroidHardwareBufferPropertiesANDROID const& ) const = default;
17767 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17768     bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17769     {
17770       return ( sType == rhs.sType )
17771           && ( pNext == rhs.pNext )
17772           && ( allocationSize == rhs.allocationSize )
17773           && ( memoryTypeBits == rhs.memoryTypeBits );
17774     }
17775 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17776     bool operator!=( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17777     {
17778       return !operator==( rhs );
17779     }
17780 #endif
17781 
17782 
17783 
17784   public:
17785     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
17786     void* pNext = {};
17787     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
17788     uint32_t memoryTypeBits = {};
17789 
17790   };
17791   static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "struct and wrapper have different size!" );
17792   static_assert( std::is_standard_layout<AndroidHardwareBufferPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
17793 
17794   template <>
17795   struct CppType<StructureType, StructureType::eAndroidHardwareBufferPropertiesANDROID>
17796   {
17797     using Type = AndroidHardwareBufferPropertiesANDROID;
17798   };
17799 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17800 
17801 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17802   struct AndroidHardwareBufferUsageANDROID
17803   {
17804     static const bool allowDuplicate = false;
17805     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferUsageANDROID;
17806 
17807 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17808     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID(uint64_t androidHardwareBufferUsage_ = {}) VULKAN_HPP_NOEXCEPT
17809     : androidHardwareBufferUsage( androidHardwareBufferUsage_ )
17810     {}
17811 
17812     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17813 
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17814     AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17815     {
17816       *this = rhs;
17817     }
17818 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17819 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17820     AndroidHardwareBufferUsageANDROID & operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17821     {
17822       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID const *>( &rhs );
17823       return *this;
17824     }
17825 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17826     AndroidHardwareBufferUsageANDROID & operator=( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17827     {
17828       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidHardwareBufferUsageANDROID ) );
17829       return *this;
17830     }
17831 
17832 
operator VkAndroidHardwareBufferUsageANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17833     operator VkAndroidHardwareBufferUsageANDROID const&() const VULKAN_HPP_NOEXCEPT
17834     {
17835       return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>( this );
17836     }
17837 
operator VkAndroidHardwareBufferUsageANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17838     operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT
17839     {
17840       return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>( this );
17841     }
17842 
17843 
17844 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17845     auto operator<=>( AndroidHardwareBufferUsageANDROID const& ) const = default;
17846 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17847     bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17848     {
17849       return ( sType == rhs.sType )
17850           && ( pNext == rhs.pNext )
17851           && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage );
17852     }
17853 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17854     bool operator!=( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17855     {
17856       return !operator==( rhs );
17857     }
17858 #endif
17859 
17860 
17861 
17862   public:
17863     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID;
17864     void* pNext = {};
17865     uint64_t androidHardwareBufferUsage = {};
17866 
17867   };
17868   static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "struct and wrapper have different size!" );
17869   static_assert( std::is_standard_layout<AndroidHardwareBufferUsageANDROID>::value, "struct wrapper is not a standard layout!" );
17870 
17871   template <>
17872   struct CppType<StructureType, StructureType::eAndroidHardwareBufferUsageANDROID>
17873   {
17874     using Type = AndroidHardwareBufferUsageANDROID;
17875   };
17876 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17877 
17878 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17879   struct AndroidSurfaceCreateInfoKHR
17880   {
17881     static const bool allowDuplicate = false;
17882     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidSurfaceCreateInfoKHR;
17883 
17884 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17885     VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {}, struct ANativeWindow* window_ = {}) VULKAN_HPP_NOEXCEPT
17886     : flags( flags_ ), window( window_ )
17887     {}
17888 
17889     VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17890 
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17891     AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17892     {
17893       *this = rhs;
17894     }
17895 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17896 
operator =VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17897     AndroidSurfaceCreateInfoKHR & operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17898     {
17899       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const *>( &rhs );
17900       return *this;
17901     }
17902 
operator =VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17903     AndroidSurfaceCreateInfoKHR & operator=( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17904     {
17905       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidSurfaceCreateInfoKHR ) );
17906       return *this;
17907     }
17908 
setPNextVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17909     AndroidSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17910     {
17911       pNext = pNext_;
17912       return *this;
17913     }
17914 
setFlagsVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17915     AndroidSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
17916     {
17917       flags = flags_;
17918       return *this;
17919     }
17920 
setWindowVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17921     AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow* window_ ) VULKAN_HPP_NOEXCEPT
17922     {
17923       window = window_;
17924       return *this;
17925     }
17926 
17927 
operator VkAndroidSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17928     operator VkAndroidSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
17929     {
17930       return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( this );
17931     }
17932 
operator VkAndroidSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17933     operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
17934     {
17935       return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>( this );
17936     }
17937 
17938 
17939 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17940     auto operator<=>( AndroidSurfaceCreateInfoKHR const& ) const = default;
17941 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17942     bool operator==( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17943     {
17944       return ( sType == rhs.sType )
17945           && ( pNext == rhs.pNext )
17946           && ( flags == rhs.flags )
17947           && ( window == rhs.window );
17948     }
17949 
operator !=VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17950     bool operator!=( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17951     {
17952       return !operator==( rhs );
17953     }
17954 #endif
17955 
17956 
17957 
17958   public:
17959     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR;
17960     const void* pNext = {};
17961     VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {};
17962     struct ANativeWindow* window = {};
17963 
17964   };
17965   static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
17966   static_assert( std::is_standard_layout<AndroidSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
17967 
17968   template <>
17969   struct CppType<StructureType, StructureType::eAndroidSurfaceCreateInfoKHR>
17970   {
17971     using Type = AndroidSurfaceCreateInfoKHR;
17972   };
17973 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17974 
17975   struct ApplicationInfo
17976   {
17977     static const bool allowDuplicate = false;
17978     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eApplicationInfo;
17979 
17980 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo17981     VULKAN_HPP_CONSTEXPR ApplicationInfo(const char* pApplicationName_ = {}, uint32_t applicationVersion_ = {}, const char* pEngineName_ = {}, uint32_t engineVersion_ = {}, uint32_t apiVersion_ = {}) VULKAN_HPP_NOEXCEPT
17982     : pApplicationName( pApplicationName_ ), applicationVersion( applicationVersion_ ), pEngineName( pEngineName_ ), engineVersion( engineVersion_ ), apiVersion( apiVersion_ )
17983     {}
17984 
17985     VULKAN_HPP_CONSTEXPR ApplicationInfo( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17986 
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo17987     ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
17988     {
17989       *this = rhs;
17990     }
17991 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17992 
operator =VULKAN_HPP_NAMESPACE::ApplicationInfo17993     ApplicationInfo & operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
17994     {
17995       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ApplicationInfo const *>( &rhs );
17996       return *this;
17997     }
17998 
operator =VULKAN_HPP_NAMESPACE::ApplicationInfo17999     ApplicationInfo & operator=( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
18000     {
18001       memcpy( static_cast<void *>( this ), &rhs, sizeof( ApplicationInfo ) );
18002       return *this;
18003     }
18004 
setPNextVULKAN_HPP_NAMESPACE::ApplicationInfo18005     ApplicationInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18006     {
18007       pNext = pNext_;
18008       return *this;
18009     }
18010 
setPApplicationNameVULKAN_HPP_NAMESPACE::ApplicationInfo18011     ApplicationInfo & setPApplicationName( const char* pApplicationName_ ) VULKAN_HPP_NOEXCEPT
18012     {
18013       pApplicationName = pApplicationName_;
18014       return *this;
18015     }
18016 
setApplicationVersionVULKAN_HPP_NAMESPACE::ApplicationInfo18017     ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT
18018     {
18019       applicationVersion = applicationVersion_;
18020       return *this;
18021     }
18022 
setPEngineNameVULKAN_HPP_NAMESPACE::ApplicationInfo18023     ApplicationInfo & setPEngineName( const char* pEngineName_ ) VULKAN_HPP_NOEXCEPT
18024     {
18025       pEngineName = pEngineName_;
18026       return *this;
18027     }
18028 
setEngineVersionVULKAN_HPP_NAMESPACE::ApplicationInfo18029     ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT
18030     {
18031       engineVersion = engineVersion_;
18032       return *this;
18033     }
18034 
setApiVersionVULKAN_HPP_NAMESPACE::ApplicationInfo18035     ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT
18036     {
18037       apiVersion = apiVersion_;
18038       return *this;
18039     }
18040 
18041 
operator VkApplicationInfo const&VULKAN_HPP_NAMESPACE::ApplicationInfo18042     operator VkApplicationInfo const&() const VULKAN_HPP_NOEXCEPT
18043     {
18044       return *reinterpret_cast<const VkApplicationInfo*>( this );
18045     }
18046 
operator VkApplicationInfo&VULKAN_HPP_NAMESPACE::ApplicationInfo18047     operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT
18048     {
18049       return *reinterpret_cast<VkApplicationInfo*>( this );
18050     }
18051 
18052 
18053 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18054     auto operator<=>( ApplicationInfo const& ) const = default;
18055 #else
operator ==VULKAN_HPP_NAMESPACE::ApplicationInfo18056     bool operator==( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
18057     {
18058       return ( sType == rhs.sType )
18059           && ( pNext == rhs.pNext )
18060           && ( pApplicationName == rhs.pApplicationName )
18061           && ( applicationVersion == rhs.applicationVersion )
18062           && ( pEngineName == rhs.pEngineName )
18063           && ( engineVersion == rhs.engineVersion )
18064           && ( apiVersion == rhs.apiVersion );
18065     }
18066 
operator !=VULKAN_HPP_NAMESPACE::ApplicationInfo18067     bool operator!=( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
18068     {
18069       return !operator==( rhs );
18070     }
18071 #endif
18072 
18073 
18074 
18075   public:
18076     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo;
18077     const void* pNext = {};
18078     const char* pApplicationName = {};
18079     uint32_t applicationVersion = {};
18080     const char* pEngineName = {};
18081     uint32_t engineVersion = {};
18082     uint32_t apiVersion = {};
18083 
18084   };
18085   static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "struct and wrapper have different size!" );
18086   static_assert( std::is_standard_layout<ApplicationInfo>::value, "struct wrapper is not a standard layout!" );
18087 
18088   template <>
18089   struct CppType<StructureType, StructureType::eApplicationInfo>
18090   {
18091     using Type = ApplicationInfo;
18092   };
18093 
18094   struct AttachmentDescription
18095   {
18096 
18097 
18098 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription18099     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
18100     : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ )
18101     {}
18102 
18103     VULKAN_HPP_CONSTEXPR AttachmentDescription( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18104 
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription18105     AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
18106     {
18107       *this = rhs;
18108     }
18109 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18110 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription18111     AttachmentDescription & operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
18112     {
18113       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription const *>( &rhs );
18114       return *this;
18115     }
18116 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription18117     AttachmentDescription & operator=( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
18118     {
18119       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentDescription ) );
18120       return *this;
18121     }
18122 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription18123     AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
18124     {
18125       flags = flags_;
18126       return *this;
18127     }
18128 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription18129     AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
18130     {
18131       format = format_;
18132       return *this;
18133     }
18134 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription18135     AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
18136     {
18137       samples = samples_;
18138       return *this;
18139     }
18140 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription18141     AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
18142     {
18143       loadOp = loadOp_;
18144       return *this;
18145     }
18146 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription18147     AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
18148     {
18149       storeOp = storeOp_;
18150       return *this;
18151     }
18152 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription18153     AttachmentDescription & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
18154     {
18155       stencilLoadOp = stencilLoadOp_;
18156       return *this;
18157     }
18158 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription18159     AttachmentDescription & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
18160     {
18161       stencilStoreOp = stencilStoreOp_;
18162       return *this;
18163     }
18164 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription18165     AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
18166     {
18167       initialLayout = initialLayout_;
18168       return *this;
18169     }
18170 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription18171     AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
18172     {
18173       finalLayout = finalLayout_;
18174       return *this;
18175     }
18176 
18177 
operator VkAttachmentDescription const&VULKAN_HPP_NAMESPACE::AttachmentDescription18178     operator VkAttachmentDescription const&() const VULKAN_HPP_NOEXCEPT
18179     {
18180       return *reinterpret_cast<const VkAttachmentDescription*>( this );
18181     }
18182 
operator VkAttachmentDescription&VULKAN_HPP_NAMESPACE::AttachmentDescription18183     operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT
18184     {
18185       return *reinterpret_cast<VkAttachmentDescription*>( this );
18186     }
18187 
18188 
18189 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18190     auto operator<=>( AttachmentDescription const& ) const = default;
18191 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription18192     bool operator==( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
18193     {
18194       return ( flags == rhs.flags )
18195           && ( format == rhs.format )
18196           && ( samples == rhs.samples )
18197           && ( loadOp == rhs.loadOp )
18198           && ( storeOp == rhs.storeOp )
18199           && ( stencilLoadOp == rhs.stencilLoadOp )
18200           && ( stencilStoreOp == rhs.stencilStoreOp )
18201           && ( initialLayout == rhs.initialLayout )
18202           && ( finalLayout == rhs.finalLayout );
18203     }
18204 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription18205     bool operator!=( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
18206     {
18207       return !operator==( rhs );
18208     }
18209 #endif
18210 
18211 
18212 
18213   public:
18214     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
18215     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
18216     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
18217     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18218     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18219     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18220     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18221     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18222     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18223 
18224   };
18225   static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), "struct and wrapper have different size!" );
18226   static_assert( std::is_standard_layout<AttachmentDescription>::value, "struct wrapper is not a standard layout!" );
18227 
18228   struct AttachmentDescription2
18229   {
18230     static const bool allowDuplicate = false;
18231     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescription2;
18232 
18233 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription218234     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
18235     : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ )
18236     {}
18237 
18238     VULKAN_HPP_CONSTEXPR AttachmentDescription2( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18239 
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription218240     AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
18241     {
18242       *this = rhs;
18243     }
18244 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18245 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription218246     AttachmentDescription2 & operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
18247     {
18248       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription2 const *>( &rhs );
18249       return *this;
18250     }
18251 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription218252     AttachmentDescription2 & operator=( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
18253     {
18254       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentDescription2 ) );
18255       return *this;
18256     }
18257 
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescription218258     AttachmentDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18259     {
18260       pNext = pNext_;
18261       return *this;
18262     }
18263 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription218264     AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
18265     {
18266       flags = flags_;
18267       return *this;
18268     }
18269 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription218270     AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
18271     {
18272       format = format_;
18273       return *this;
18274     }
18275 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription218276     AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
18277     {
18278       samples = samples_;
18279       return *this;
18280     }
18281 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription218282     AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
18283     {
18284       loadOp = loadOp_;
18285       return *this;
18286     }
18287 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription218288     AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
18289     {
18290       storeOp = storeOp_;
18291       return *this;
18292     }
18293 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription218294     AttachmentDescription2 & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
18295     {
18296       stencilLoadOp = stencilLoadOp_;
18297       return *this;
18298     }
18299 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription218300     AttachmentDescription2 & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
18301     {
18302       stencilStoreOp = stencilStoreOp_;
18303       return *this;
18304     }
18305 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription218306     AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
18307     {
18308       initialLayout = initialLayout_;
18309       return *this;
18310     }
18311 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription218312     AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
18313     {
18314       finalLayout = finalLayout_;
18315       return *this;
18316     }
18317 
18318 
operator VkAttachmentDescription2 const&VULKAN_HPP_NAMESPACE::AttachmentDescription218319     operator VkAttachmentDescription2 const&() const VULKAN_HPP_NOEXCEPT
18320     {
18321       return *reinterpret_cast<const VkAttachmentDescription2*>( this );
18322     }
18323 
operator VkAttachmentDescription2&VULKAN_HPP_NAMESPACE::AttachmentDescription218324     operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT
18325     {
18326       return *reinterpret_cast<VkAttachmentDescription2*>( this );
18327     }
18328 
18329 
18330 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18331     auto operator<=>( AttachmentDescription2 const& ) const = default;
18332 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription218333     bool operator==( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18334     {
18335       return ( sType == rhs.sType )
18336           && ( pNext == rhs.pNext )
18337           && ( flags == rhs.flags )
18338           && ( format == rhs.format )
18339           && ( samples == rhs.samples )
18340           && ( loadOp == rhs.loadOp )
18341           && ( storeOp == rhs.storeOp )
18342           && ( stencilLoadOp == rhs.stencilLoadOp )
18343           && ( stencilStoreOp == rhs.stencilStoreOp )
18344           && ( initialLayout == rhs.initialLayout )
18345           && ( finalLayout == rhs.finalLayout );
18346     }
18347 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription218348     bool operator!=( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18349     {
18350       return !operator==( rhs );
18351     }
18352 #endif
18353 
18354 
18355 
18356   public:
18357     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2;
18358     const void* pNext = {};
18359     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
18360     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
18361     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
18362     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18363     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18364     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18365     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18366     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18367     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18368 
18369   };
18370   static_assert( sizeof( AttachmentDescription2 ) == sizeof( VkAttachmentDescription2 ), "struct and wrapper have different size!" );
18371   static_assert( std::is_standard_layout<AttachmentDescription2>::value, "struct wrapper is not a standard layout!" );
18372 
18373   template <>
18374   struct CppType<StructureType, StructureType::eAttachmentDescription2>
18375   {
18376     using Type = AttachmentDescription2;
18377   };
18378   using AttachmentDescription2KHR = AttachmentDescription2;
18379 
18380   struct AttachmentDescriptionStencilLayout
18381   {
18382     static const bool allowDuplicate = false;
18383     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescriptionStencilLayout;
18384 
18385 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18386     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
18387     : stencilInitialLayout( stencilInitialLayout_ ), stencilFinalLayout( stencilFinalLayout_ )
18388     {}
18389 
18390     VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18391 
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18392     AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18393     {
18394       *this = rhs;
18395     }
18396 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18397 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18398     AttachmentDescriptionStencilLayout & operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18399     {
18400       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout const *>( &rhs );
18401       return *this;
18402     }
18403 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18404     AttachmentDescriptionStencilLayout & operator=( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18405     {
18406       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentDescriptionStencilLayout ) );
18407       return *this;
18408     }
18409 
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18410     AttachmentDescriptionStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
18411     {
18412       pNext = pNext_;
18413       return *this;
18414     }
18415 
setStencilInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18416     AttachmentDescriptionStencilLayout & setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT
18417     {
18418       stencilInitialLayout = stencilInitialLayout_;
18419       return *this;
18420     }
18421 
setStencilFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18422     AttachmentDescriptionStencilLayout & setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT
18423     {
18424       stencilFinalLayout = stencilFinalLayout_;
18425       return *this;
18426     }
18427 
18428 
operator VkAttachmentDescriptionStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18429     operator VkAttachmentDescriptionStencilLayout const&() const VULKAN_HPP_NOEXCEPT
18430     {
18431       return *reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>( this );
18432     }
18433 
operator VkAttachmentDescriptionStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18434     operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT
18435     {
18436       return *reinterpret_cast<VkAttachmentDescriptionStencilLayout*>( this );
18437     }
18438 
18439 
18440 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18441     auto operator<=>( AttachmentDescriptionStencilLayout const& ) const = default;
18442 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18443     bool operator==( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18444     {
18445       return ( sType == rhs.sType )
18446           && ( pNext == rhs.pNext )
18447           && ( stencilInitialLayout == rhs.stencilInitialLayout )
18448           && ( stencilFinalLayout == rhs.stencilFinalLayout );
18449     }
18450 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18451     bool operator!=( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18452     {
18453       return !operator==( rhs );
18454     }
18455 #endif
18456 
18457 
18458 
18459   public:
18460     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout;
18461     void* pNext = {};
18462     VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18463     VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18464 
18465   };
18466   static_assert( sizeof( AttachmentDescriptionStencilLayout ) == sizeof( VkAttachmentDescriptionStencilLayout ), "struct and wrapper have different size!" );
18467   static_assert( std::is_standard_layout<AttachmentDescriptionStencilLayout>::value, "struct wrapper is not a standard layout!" );
18468 
18469   template <>
18470   struct CppType<StructureType, StructureType::eAttachmentDescriptionStencilLayout>
18471   {
18472     using Type = AttachmentDescriptionStencilLayout;
18473   };
18474   using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
18475 
18476   struct AttachmentReference
18477   {
18478 
18479 
18480 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference18481     VULKAN_HPP_CONSTEXPR AttachmentReference(uint32_t attachment_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
18482     : attachment( attachment_ ), layout( layout_ )
18483     {}
18484 
18485     VULKAN_HPP_CONSTEXPR AttachmentReference( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18486 
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference18487     AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
18488     {
18489       *this = rhs;
18490     }
18491 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18492 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference18493     AttachmentReference & operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
18494     {
18495       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference const *>( &rhs );
18496       return *this;
18497     }
18498 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference18499     AttachmentReference & operator=( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
18500     {
18501       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentReference ) );
18502       return *this;
18503     }
18504 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference18505     AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
18506     {
18507       attachment = attachment_;
18508       return *this;
18509     }
18510 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference18511     AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
18512     {
18513       layout = layout_;
18514       return *this;
18515     }
18516 
18517 
operator VkAttachmentReference const&VULKAN_HPP_NAMESPACE::AttachmentReference18518     operator VkAttachmentReference const&() const VULKAN_HPP_NOEXCEPT
18519     {
18520       return *reinterpret_cast<const VkAttachmentReference*>( this );
18521     }
18522 
operator VkAttachmentReference&VULKAN_HPP_NAMESPACE::AttachmentReference18523     operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT
18524     {
18525       return *reinterpret_cast<VkAttachmentReference*>( this );
18526     }
18527 
18528 
18529 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18530     auto operator<=>( AttachmentReference const& ) const = default;
18531 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference18532     bool operator==( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT
18533     {
18534       return ( attachment == rhs.attachment )
18535           && ( layout == rhs.layout );
18536     }
18537 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference18538     bool operator!=( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT
18539     {
18540       return !operator==( rhs );
18541     }
18542 #endif
18543 
18544 
18545 
18546   public:
18547     uint32_t attachment = {};
18548     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18549 
18550   };
18551   static_assert( sizeof( AttachmentReference ) == sizeof( VkAttachmentReference ), "struct and wrapper have different size!" );
18552   static_assert( std::is_standard_layout<AttachmentReference>::value, "struct wrapper is not a standard layout!" );
18553 
18554   struct AttachmentReference2
18555   {
18556     static const bool allowDuplicate = false;
18557     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReference2;
18558 
18559 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference218560     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
18561     : attachment( attachment_ ), layout( layout_ ), aspectMask( aspectMask_ )
18562     {}
18563 
18564     VULKAN_HPP_CONSTEXPR AttachmentReference2( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18565 
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference218566     AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
18567     {
18568       *this = rhs;
18569     }
18570 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18571 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference218572     AttachmentReference2 & operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
18573     {
18574       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference2 const *>( &rhs );
18575       return *this;
18576     }
18577 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference218578     AttachmentReference2 & operator=( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
18579     {
18580       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentReference2 ) );
18581       return *this;
18582     }
18583 
setPNextVULKAN_HPP_NAMESPACE::AttachmentReference218584     AttachmentReference2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18585     {
18586       pNext = pNext_;
18587       return *this;
18588     }
18589 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference218590     AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
18591     {
18592       attachment = attachment_;
18593       return *this;
18594     }
18595 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference218596     AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
18597     {
18598       layout = layout_;
18599       return *this;
18600     }
18601 
setAspectMaskVULKAN_HPP_NAMESPACE::AttachmentReference218602     AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
18603     {
18604       aspectMask = aspectMask_;
18605       return *this;
18606     }
18607 
18608 
operator VkAttachmentReference2 const&VULKAN_HPP_NAMESPACE::AttachmentReference218609     operator VkAttachmentReference2 const&() const VULKAN_HPP_NOEXCEPT
18610     {
18611       return *reinterpret_cast<const VkAttachmentReference2*>( this );
18612     }
18613 
operator VkAttachmentReference2&VULKAN_HPP_NAMESPACE::AttachmentReference218614     operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT
18615     {
18616       return *reinterpret_cast<VkAttachmentReference2*>( this );
18617     }
18618 
18619 
18620 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18621     auto operator<=>( AttachmentReference2 const& ) const = default;
18622 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference218623     bool operator==( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18624     {
18625       return ( sType == rhs.sType )
18626           && ( pNext == rhs.pNext )
18627           && ( attachment == rhs.attachment )
18628           && ( layout == rhs.layout )
18629           && ( aspectMask == rhs.aspectMask );
18630     }
18631 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference218632     bool operator!=( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18633     {
18634       return !operator==( rhs );
18635     }
18636 #endif
18637 
18638 
18639 
18640   public:
18641     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2;
18642     const void* pNext = {};
18643     uint32_t attachment = {};
18644     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18645     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
18646 
18647   };
18648   static_assert( sizeof( AttachmentReference2 ) == sizeof( VkAttachmentReference2 ), "struct and wrapper have different size!" );
18649   static_assert( std::is_standard_layout<AttachmentReference2>::value, "struct wrapper is not a standard layout!" );
18650 
18651   template <>
18652   struct CppType<StructureType, StructureType::eAttachmentReference2>
18653   {
18654     using Type = AttachmentReference2;
18655   };
18656   using AttachmentReference2KHR = AttachmentReference2;
18657 
18658   struct AttachmentReferenceStencilLayout
18659   {
18660     static const bool allowDuplicate = false;
18661     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReferenceStencilLayout;
18662 
18663 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18664     VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout(VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
18665     : stencilLayout( stencilLayout_ )
18666     {}
18667 
18668     VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18669 
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18670     AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18671     {
18672       *this = rhs;
18673     }
18674 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18675 
operator =VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18676     AttachmentReferenceStencilLayout & operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18677     {
18678       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout const *>( &rhs );
18679       return *this;
18680     }
18681 
operator =VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18682     AttachmentReferenceStencilLayout & operator=( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18683     {
18684       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentReferenceStencilLayout ) );
18685       return *this;
18686     }
18687 
setPNextVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18688     AttachmentReferenceStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
18689     {
18690       pNext = pNext_;
18691       return *this;
18692     }
18693 
setStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18694     AttachmentReferenceStencilLayout & setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT
18695     {
18696       stencilLayout = stencilLayout_;
18697       return *this;
18698     }
18699 
18700 
operator VkAttachmentReferenceStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18701     operator VkAttachmentReferenceStencilLayout const&() const VULKAN_HPP_NOEXCEPT
18702     {
18703       return *reinterpret_cast<const VkAttachmentReferenceStencilLayout*>( this );
18704     }
18705 
operator VkAttachmentReferenceStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18706     operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT
18707     {
18708       return *reinterpret_cast<VkAttachmentReferenceStencilLayout*>( this );
18709     }
18710 
18711 
18712 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18713     auto operator<=>( AttachmentReferenceStencilLayout const& ) const = default;
18714 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18715     bool operator==( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18716     {
18717       return ( sType == rhs.sType )
18718           && ( pNext == rhs.pNext )
18719           && ( stencilLayout == rhs.stencilLayout );
18720     }
18721 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18722     bool operator!=( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18723     {
18724       return !operator==( rhs );
18725     }
18726 #endif
18727 
18728 
18729 
18730   public:
18731     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout;
18732     void* pNext = {};
18733     VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18734 
18735   };
18736   static_assert( sizeof( AttachmentReferenceStencilLayout ) == sizeof( VkAttachmentReferenceStencilLayout ), "struct and wrapper have different size!" );
18737   static_assert( std::is_standard_layout<AttachmentReferenceStencilLayout>::value, "struct wrapper is not a standard layout!" );
18738 
18739   template <>
18740   struct CppType<StructureType, StructureType::eAttachmentReferenceStencilLayout>
18741   {
18742     using Type = AttachmentReferenceStencilLayout;
18743   };
18744   using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
18745 
18746   struct Extent2D
18747   {
18748 
18749 
18750 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Extent2DVULKAN_HPP_NAMESPACE::Extent2D18751     VULKAN_HPP_CONSTEXPR Extent2D(uint32_t width_ = {}, uint32_t height_ = {}) VULKAN_HPP_NOEXCEPT
18752     : width( width_ ), height( height_ )
18753     {}
18754 
18755     VULKAN_HPP_CONSTEXPR Extent2D( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18756 
Extent2DVULKAN_HPP_NAMESPACE::Extent2D18757     Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
18758     {
18759       *this = rhs;
18760     }
18761 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18762 
operator =VULKAN_HPP_NAMESPACE::Extent2D18763     Extent2D & operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
18764     {
18765       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent2D const *>( &rhs );
18766       return *this;
18767     }
18768 
operator =VULKAN_HPP_NAMESPACE::Extent2D18769     Extent2D & operator=( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT
18770     {
18771       memcpy( static_cast<void *>( this ), &rhs, sizeof( Extent2D ) );
18772       return *this;
18773     }
18774 
setWidthVULKAN_HPP_NAMESPACE::Extent2D18775     Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
18776     {
18777       width = width_;
18778       return *this;
18779     }
18780 
setHeightVULKAN_HPP_NAMESPACE::Extent2D18781     Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
18782     {
18783       height = height_;
18784       return *this;
18785     }
18786 
18787 
operator VkExtent2D const&VULKAN_HPP_NAMESPACE::Extent2D18788     operator VkExtent2D const&() const VULKAN_HPP_NOEXCEPT
18789     {
18790       return *reinterpret_cast<const VkExtent2D*>( this );
18791     }
18792 
operator VkExtent2D&VULKAN_HPP_NAMESPACE::Extent2D18793     operator VkExtent2D &() VULKAN_HPP_NOEXCEPT
18794     {
18795       return *reinterpret_cast<VkExtent2D*>( this );
18796     }
18797 
18798 
18799 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18800     auto operator<=>( Extent2D const& ) const = default;
18801 #else
operator ==VULKAN_HPP_NAMESPACE::Extent2D18802     bool operator==( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT
18803     {
18804       return ( width == rhs.width )
18805           && ( height == rhs.height );
18806     }
18807 
operator !=VULKAN_HPP_NAMESPACE::Extent2D18808     bool operator!=( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT
18809     {
18810       return !operator==( rhs );
18811     }
18812 #endif
18813 
18814 
18815 
18816   public:
18817     uint32_t width = {};
18818     uint32_t height = {};
18819 
18820   };
18821   static_assert( sizeof( Extent2D ) == sizeof( VkExtent2D ), "struct and wrapper have different size!" );
18822   static_assert( std::is_standard_layout<Extent2D>::value, "struct wrapper is not a standard layout!" );
18823 
18824   struct SampleLocationEXT
18825   {
18826 
18827 
18828 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT18829     VULKAN_HPP_CONSTEXPR SampleLocationEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT
18830     : x( x_ ), y( y_ )
18831     {}
18832 
18833     VULKAN_HPP_CONSTEXPR SampleLocationEXT( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18834 
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT18835     SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18836     {
18837       *this = rhs;
18838     }
18839 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18840 
operator =VULKAN_HPP_NAMESPACE::SampleLocationEXT18841     SampleLocationEXT & operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18842     {
18843       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationEXT const *>( &rhs );
18844       return *this;
18845     }
18846 
operator =VULKAN_HPP_NAMESPACE::SampleLocationEXT18847     SampleLocationEXT & operator=( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18848     {
18849       memcpy( static_cast<void *>( this ), &rhs, sizeof( SampleLocationEXT ) );
18850       return *this;
18851     }
18852 
setXVULKAN_HPP_NAMESPACE::SampleLocationEXT18853     SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
18854     {
18855       x = x_;
18856       return *this;
18857     }
18858 
setYVULKAN_HPP_NAMESPACE::SampleLocationEXT18859     SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
18860     {
18861       y = y_;
18862       return *this;
18863     }
18864 
18865 
operator VkSampleLocationEXT const&VULKAN_HPP_NAMESPACE::SampleLocationEXT18866     operator VkSampleLocationEXT const&() const VULKAN_HPP_NOEXCEPT
18867     {
18868       return *reinterpret_cast<const VkSampleLocationEXT*>( this );
18869     }
18870 
operator VkSampleLocationEXT&VULKAN_HPP_NAMESPACE::SampleLocationEXT18871     operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT
18872     {
18873       return *reinterpret_cast<VkSampleLocationEXT*>( this );
18874     }
18875 
18876 
18877 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18878     auto operator<=>( SampleLocationEXT const& ) const = default;
18879 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationEXT18880     bool operator==( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
18881     {
18882       return ( x == rhs.x )
18883           && ( y == rhs.y );
18884     }
18885 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationEXT18886     bool operator!=( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
18887     {
18888       return !operator==( rhs );
18889     }
18890 #endif
18891 
18892 
18893 
18894   public:
18895     float x = {};
18896     float y = {};
18897 
18898   };
18899   static_assert( sizeof( SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), "struct and wrapper have different size!" );
18900   static_assert( std::is_standard_layout<SampleLocationEXT>::value, "struct wrapper is not a standard layout!" );
18901 
18902   struct SampleLocationsInfoEXT
18903   {
18904     static const bool allowDuplicate = false;
18905     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSampleLocationsInfoEXT;
18906 
18907 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18908     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
18909     : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( sampleLocationsCount_ ), pSampleLocations( pSampleLocations_ )
18910     {}
18911 
18912     VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18913 
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18914     SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18915     {
18916       *this = rhs;
18917     }
18918 
18919 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18920     SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_, VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_ )
18921     : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( static_cast<uint32_t>( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() )
18922     {}
18923 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
18924 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18925 
operator =VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18926     SampleLocationsInfoEXT & operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18927     {
18928       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const *>( &rhs );
18929       return *this;
18930     }
18931 
operator =VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18932     SampleLocationsInfoEXT & operator=( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18933     {
18934       memcpy( static_cast<void *>( this ), &rhs, sizeof( SampleLocationsInfoEXT ) );
18935       return *this;
18936     }
18937 
setPNextVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18938     SampleLocationsInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18939     {
18940       pNext = pNext_;
18941       return *this;
18942     }
18943 
setSampleLocationsPerPixelVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18944     SampleLocationsInfoEXT & setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT
18945     {
18946       sampleLocationsPerPixel = sampleLocationsPerPixel_;
18947       return *this;
18948     }
18949 
setSampleLocationGridSizeVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18950     SampleLocationsInfoEXT & setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT
18951     {
18952       sampleLocationGridSize = sampleLocationGridSize_;
18953       return *this;
18954     }
18955 
setSampleLocationsCountVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18956     SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
18957     {
18958       sampleLocationsCount = sampleLocationsCount_;
18959       return *this;
18960     }
18961 
setPSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18962     SampleLocationsInfoEXT & setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
18963     {
18964       pSampleLocations = pSampleLocations_;
18965       return *this;
18966     }
18967 
18968 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18969     SampleLocationsInfoEXT & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
18970     {
18971       sampleLocationsCount = static_cast<uint32_t>( sampleLocations_.size() );
18972       pSampleLocations = sampleLocations_.data();
18973       return *this;
18974     }
18975 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
18976 
18977 
operator VkSampleLocationsInfoEXT const&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18978     operator VkSampleLocationsInfoEXT const&() const VULKAN_HPP_NOEXCEPT
18979     {
18980       return *reinterpret_cast<const VkSampleLocationsInfoEXT*>( this );
18981     }
18982 
operator VkSampleLocationsInfoEXT&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18983     operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT
18984     {
18985       return *reinterpret_cast<VkSampleLocationsInfoEXT*>( this );
18986     }
18987 
18988 
18989 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18990     auto operator<=>( SampleLocationsInfoEXT const& ) const = default;
18991 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18992     bool operator==( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
18993     {
18994       return ( sType == rhs.sType )
18995           && ( pNext == rhs.pNext )
18996           && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel )
18997           && ( sampleLocationGridSize == rhs.sampleLocationGridSize )
18998           && ( sampleLocationsCount == rhs.sampleLocationsCount )
18999           && ( pSampleLocations == rhs.pSampleLocations );
19000     }
19001 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19002     bool operator!=( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
19003     {
19004       return !operator==( rhs );
19005     }
19006 #endif
19007 
19008 
19009 
19010   public:
19011     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT;
19012     const void* pNext = {};
19013     VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
19014     VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {};
19015     uint32_t sampleLocationsCount = {};
19016     const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations = {};
19017 
19018   };
19019   static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), "struct and wrapper have different size!" );
19020   static_assert( std::is_standard_layout<SampleLocationsInfoEXT>::value, "struct wrapper is not a standard layout!" );
19021 
19022   template <>
19023   struct CppType<StructureType, StructureType::eSampleLocationsInfoEXT>
19024   {
19025     using Type = SampleLocationsInfoEXT;
19026   };
19027 
19028   struct AttachmentSampleLocationsEXT
19029   {
19030 
19031 
19032 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19033     VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT(uint32_t attachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
19034     : attachmentIndex( attachmentIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ )
19035     {}
19036 
19037     VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19038 
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19039     AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19040     {
19041       *this = rhs;
19042     }
19043 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19044 
operator =VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19045     AttachmentSampleLocationsEXT & operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19046     {
19047       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT const *>( &rhs );
19048       return *this;
19049     }
19050 
operator =VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19051     AttachmentSampleLocationsEXT & operator=( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19052     {
19053       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentSampleLocationsEXT ) );
19054       return *this;
19055     }
19056 
setAttachmentIndexVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19057     AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT
19058     {
19059       attachmentIndex = attachmentIndex_;
19060       return *this;
19061     }
19062 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19063     AttachmentSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
19064     {
19065       sampleLocationsInfo = sampleLocationsInfo_;
19066       return *this;
19067     }
19068 
19069 
operator VkAttachmentSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19070     operator VkAttachmentSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT
19071     {
19072       return *reinterpret_cast<const VkAttachmentSampleLocationsEXT*>( this );
19073     }
19074 
operator VkAttachmentSampleLocationsEXT&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19075     operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
19076     {
19077       return *reinterpret_cast<VkAttachmentSampleLocationsEXT*>( this );
19078     }
19079 
19080 
19081 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19082     auto operator<=>( AttachmentSampleLocationsEXT const& ) const = default;
19083 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19084     bool operator==( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
19085     {
19086       return ( attachmentIndex == rhs.attachmentIndex )
19087           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
19088     }
19089 
operator !=VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19090     bool operator!=( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
19091     {
19092       return !operator==( rhs );
19093     }
19094 #endif
19095 
19096 
19097 
19098   public:
19099     uint32_t attachmentIndex = {};
19100     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
19101 
19102   };
19103   static_assert( sizeof( AttachmentSampleLocationsEXT ) == sizeof( VkAttachmentSampleLocationsEXT ), "struct and wrapper have different size!" );
19104   static_assert( std::is_standard_layout<AttachmentSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
19105 
19106   struct BaseInStructure
19107   {
19108 
19109 
19110 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure19111     BaseInStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT
19112     : sType( sType_ )
19113     {}
19114 
19115     BaseInStructure( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19116 
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure19117     BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19118     {
19119       *this = rhs;
19120     }
19121 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19122 
operator =VULKAN_HPP_NAMESPACE::BaseInStructure19123     BaseInStructure & operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19124     {
19125       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseInStructure const *>( &rhs );
19126       return *this;
19127     }
19128 
operator =VULKAN_HPP_NAMESPACE::BaseInStructure19129     BaseInStructure & operator=( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19130     {
19131       memcpy( static_cast<void *>( this ), &rhs, sizeof( BaseInStructure ) );
19132       return *this;
19133     }
19134 
setPNextVULKAN_HPP_NAMESPACE::BaseInStructure19135     BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext_ ) VULKAN_HPP_NOEXCEPT
19136     {
19137       pNext = pNext_;
19138       return *this;
19139     }
19140 
19141 
operator VkBaseInStructure const&VULKAN_HPP_NAMESPACE::BaseInStructure19142     operator VkBaseInStructure const&() const VULKAN_HPP_NOEXCEPT
19143     {
19144       return *reinterpret_cast<const VkBaseInStructure*>( this );
19145     }
19146 
operator VkBaseInStructure&VULKAN_HPP_NAMESPACE::BaseInStructure19147     operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT
19148     {
19149       return *reinterpret_cast<VkBaseInStructure*>( this );
19150     }
19151 
19152 
19153 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19154     auto operator<=>( BaseInStructure const& ) const = default;
19155 #else
operator ==VULKAN_HPP_NAMESPACE::BaseInStructure19156     bool operator==( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19157     {
19158       return ( sType == rhs.sType )
19159           && ( pNext == rhs.pNext );
19160     }
19161 
operator !=VULKAN_HPP_NAMESPACE::BaseInStructure19162     bool operator!=( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19163     {
19164       return !operator==( rhs );
19165     }
19166 #endif
19167 
19168 
19169 
19170   public:
19171     VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
19172     const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext = {};
19173 
19174   };
19175   static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "struct and wrapper have different size!" );
19176   static_assert( std::is_standard_layout<BaseInStructure>::value, "struct wrapper is not a standard layout!" );
19177 
19178   struct BaseOutStructure
19179   {
19180 
19181 
19182 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure19183     BaseOutStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT
19184     : sType( sType_ )
19185     {}
19186 
19187     BaseOutStructure( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19188 
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure19189     BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19190     {
19191       *this = rhs;
19192     }
19193 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19194 
operator =VULKAN_HPP_NAMESPACE::BaseOutStructure19195     BaseOutStructure & operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19196     {
19197       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseOutStructure const *>( &rhs );
19198       return *this;
19199     }
19200 
operator =VULKAN_HPP_NAMESPACE::BaseOutStructure19201     BaseOutStructure & operator=( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19202     {
19203       memcpy( static_cast<void *>( this ), &rhs, sizeof( BaseOutStructure ) );
19204       return *this;
19205     }
19206 
setPNextVULKAN_HPP_NAMESPACE::BaseOutStructure19207     BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext_ ) VULKAN_HPP_NOEXCEPT
19208     {
19209       pNext = pNext_;
19210       return *this;
19211     }
19212 
19213 
operator VkBaseOutStructure const&VULKAN_HPP_NAMESPACE::BaseOutStructure19214     operator VkBaseOutStructure const&() const VULKAN_HPP_NOEXCEPT
19215     {
19216       return *reinterpret_cast<const VkBaseOutStructure*>( this );
19217     }
19218 
operator VkBaseOutStructure&VULKAN_HPP_NAMESPACE::BaseOutStructure19219     operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT
19220     {
19221       return *reinterpret_cast<VkBaseOutStructure*>( this );
19222     }
19223 
19224 
19225 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19226     auto operator<=>( BaseOutStructure const& ) const = default;
19227 #else
operator ==VULKAN_HPP_NAMESPACE::BaseOutStructure19228     bool operator==( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19229     {
19230       return ( sType == rhs.sType )
19231           && ( pNext == rhs.pNext );
19232     }
19233 
operator !=VULKAN_HPP_NAMESPACE::BaseOutStructure19234     bool operator!=( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19235     {
19236       return !operator==( rhs );
19237     }
19238 #endif
19239 
19240 
19241 
19242   public:
19243     VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
19244     struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext = {};
19245 
19246   };
19247   static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), "struct and wrapper have different size!" );
19248   static_assert( std::is_standard_layout<BaseOutStructure>::value, "struct wrapper is not a standard layout!" );
19249 
19250   class DeviceMemory
19251   {
19252   public:
19253     using CType = VkDeviceMemory;
19254 
19255     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory;
19256     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory;
19257 
19258   public:
DeviceMemory()19259     VULKAN_HPP_CONSTEXPR DeviceMemory() VULKAN_HPP_NOEXCEPT
19260       : m_deviceMemory(VK_NULL_HANDLE)
19261     {}
19262 
DeviceMemory(std::nullptr_t)19263     VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
19264       : m_deviceMemory(VK_NULL_HANDLE)
19265     {}
19266 
DeviceMemory(VkDeviceMemory deviceMemory)19267     VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory ) VULKAN_HPP_NOEXCEPT
19268       : m_deviceMemory( deviceMemory )
19269     {}
19270 
19271 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDeviceMemory deviceMemory)19272     DeviceMemory & operator=(VkDeviceMemory deviceMemory) VULKAN_HPP_NOEXCEPT
19273     {
19274       m_deviceMemory = deviceMemory;
19275       return *this;
19276     }
19277 #endif
19278 
operator =(std::nullptr_t)19279     DeviceMemory & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
19280     {
19281       m_deviceMemory = VK_NULL_HANDLE;
19282       return *this;
19283     }
19284 
19285 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19286     auto operator<=>( DeviceMemory const& ) const = default;
19287 #else
operator ==(DeviceMemory const & rhs) const19288     bool operator==( DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
19289     {
19290       return m_deviceMemory == rhs.m_deviceMemory;
19291     }
19292 
operator !=(DeviceMemory const & rhs) const19293     bool operator!=(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
19294     {
19295       return m_deviceMemory != rhs.m_deviceMemory;
19296     }
19297 
operator <(DeviceMemory const & rhs) const19298     bool operator<(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
19299     {
19300       return m_deviceMemory < rhs.m_deviceMemory;
19301     }
19302 #endif
19303 
operator VkDeviceMemory() const19304     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeviceMemory() const VULKAN_HPP_NOEXCEPT
19305     {
19306       return m_deviceMemory;
19307     }
19308 
operator bool() const19309     explicit operator bool() const VULKAN_HPP_NOEXCEPT
19310     {
19311       return m_deviceMemory != VK_NULL_HANDLE;
19312     }
19313 
operator !() const19314     bool operator!() const VULKAN_HPP_NOEXCEPT
19315     {
19316       return m_deviceMemory == VK_NULL_HANDLE;
19317     }
19318 
19319   private:
19320     VkDeviceMemory m_deviceMemory;
19321   };
19322   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeviceMemory ) == sizeof( VkDeviceMemory ), "handle and wrapper have different size!" );
19323 
19324   template <>
19325   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDeviceMemory>
19326   {
19327     using type = VULKAN_HPP_NAMESPACE::DeviceMemory;
19328   };
19329 
19330   template <>
19331   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory>
19332   {
19333     using Type = VULKAN_HPP_NAMESPACE::DeviceMemory;
19334   };
19335 
19336 
19337   template <>
19338   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory>
19339   {
19340     using Type = VULKAN_HPP_NAMESPACE::DeviceMemory;
19341   };
19342 
19343 
19344   template <>
19345   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DeviceMemory>
19346   {
19347     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
19348   };
19349 
19350   struct BindAccelerationStructureMemoryInfoKHR
19351   {
19352     static const bool allowDuplicate = false;
19353     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindAccelerationStructureMemoryInfoKHR;
19354 
19355 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindAccelerationStructureMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19356     VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT
19357     : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ )
19358     {}
19359 
19360     VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoKHR( BindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19361 
BindAccelerationStructureMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19362     BindAccelerationStructureMemoryInfoKHR( VkBindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
19363     {
19364       *this = rhs;
19365     }
19366 
19367 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindAccelerationStructureMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19368     BindAccelerationStructureMemoryInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_, VULKAN_HPP_NAMESPACE::DeviceMemory memory_, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ )
19369     : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
19370     {}
19371 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19372 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19373 
operator =VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19374     BindAccelerationStructureMemoryInfoKHR & operator=( VkBindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
19375     {
19376       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR const *>( &rhs );
19377       return *this;
19378     }
19379 
operator =VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19380     BindAccelerationStructureMemoryInfoKHR & operator=( BindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
19381     {
19382       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindAccelerationStructureMemoryInfoKHR ) );
19383       return *this;
19384     }
19385 
setPNextVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19386     BindAccelerationStructureMemoryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19387     {
19388       pNext = pNext_;
19389       return *this;
19390     }
19391 
setAccelerationStructureVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19392     BindAccelerationStructureMemoryInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
19393     {
19394       accelerationStructure = accelerationStructure_;
19395       return *this;
19396     }
19397 
setMemoryVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19398     BindAccelerationStructureMemoryInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
19399     {
19400       memory = memory_;
19401       return *this;
19402     }
19403 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19404     BindAccelerationStructureMemoryInfoKHR & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
19405     {
19406       memoryOffset = memoryOffset_;
19407       return *this;
19408     }
19409 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19410     BindAccelerationStructureMemoryInfoKHR & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
19411     {
19412       deviceIndexCount = deviceIndexCount_;
19413       return *this;
19414     }
19415 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19416     BindAccelerationStructureMemoryInfoKHR & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
19417     {
19418       pDeviceIndices = pDeviceIndices_;
19419       return *this;
19420     }
19421 
19422 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19423     BindAccelerationStructureMemoryInfoKHR & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
19424     {
19425       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
19426       pDeviceIndices = deviceIndices_.data();
19427       return *this;
19428     }
19429 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19430 
19431 
operator VkBindAccelerationStructureMemoryInfoKHR const&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19432     operator VkBindAccelerationStructureMemoryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
19433     {
19434       return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR*>( this );
19435     }
19436 
operator VkBindAccelerationStructureMemoryInfoKHR&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19437     operator VkBindAccelerationStructureMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
19438     {
19439       return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoKHR*>( this );
19440     }
19441 
19442 
19443 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19444     auto operator<=>( BindAccelerationStructureMemoryInfoKHR const& ) const = default;
19445 #else
operator ==VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19446     bool operator==( BindAccelerationStructureMemoryInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
19447     {
19448       return ( sType == rhs.sType )
19449           && ( pNext == rhs.pNext )
19450           && ( accelerationStructure == rhs.accelerationStructure )
19451           && ( memory == rhs.memory )
19452           && ( memoryOffset == rhs.memoryOffset )
19453           && ( deviceIndexCount == rhs.deviceIndexCount )
19454           && ( pDeviceIndices == rhs.pDeviceIndices );
19455     }
19456 
operator !=VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19457     bool operator!=( BindAccelerationStructureMemoryInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
19458     {
19459       return !operator==( rhs );
19460     }
19461 #endif
19462 
19463 
19464 
19465   public:
19466     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoKHR;
19467     const void* pNext = {};
19468     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
19469     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
19470     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
19471     uint32_t deviceIndexCount = {};
19472     const uint32_t* pDeviceIndices = {};
19473 
19474   };
19475   static_assert( sizeof( BindAccelerationStructureMemoryInfoKHR ) == sizeof( VkBindAccelerationStructureMemoryInfoKHR ), "struct and wrapper have different size!" );
19476   static_assert( std::is_standard_layout<BindAccelerationStructureMemoryInfoKHR>::value, "struct wrapper is not a standard layout!" );
19477 
19478   template <>
19479   struct CppType<StructureType, StructureType::eBindAccelerationStructureMemoryInfoKHR>
19480   {
19481     using Type = BindAccelerationStructureMemoryInfoKHR;
19482   };
19483   using BindAccelerationStructureMemoryInfoNV = BindAccelerationStructureMemoryInfoKHR;
19484 
19485   struct BindBufferMemoryDeviceGroupInfo
19486   {
19487     static const bool allowDuplicate = false;
19488     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryDeviceGroupInfo;
19489 
19490 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19491     VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT
19492     : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ )
19493     {}
19494 
19495     VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19496 
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19497     BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19498     {
19499       *this = rhs;
19500     }
19501 
19502 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19503     BindBufferMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ )
19504     : deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
19505     {}
19506 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19507 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19508 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19509     BindBufferMemoryDeviceGroupInfo & operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19510     {
19511       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo const *>( &rhs );
19512       return *this;
19513     }
19514 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19515     BindBufferMemoryDeviceGroupInfo & operator=( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19516     {
19517       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindBufferMemoryDeviceGroupInfo ) );
19518       return *this;
19519     }
19520 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19521     BindBufferMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19522     {
19523       pNext = pNext_;
19524       return *this;
19525     }
19526 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19527     BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
19528     {
19529       deviceIndexCount = deviceIndexCount_;
19530       return *this;
19531     }
19532 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19533     BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
19534     {
19535       pDeviceIndices = pDeviceIndices_;
19536       return *this;
19537     }
19538 
19539 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19540     BindBufferMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
19541     {
19542       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
19543       pDeviceIndices = deviceIndices_.data();
19544       return *this;
19545     }
19546 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19547 
19548 
operator VkBindBufferMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19549     operator VkBindBufferMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT
19550     {
19551       return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>( this );
19552     }
19553 
operator VkBindBufferMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19554     operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
19555     {
19556       return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>( this );
19557     }
19558 
19559 
19560 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19561     auto operator<=>( BindBufferMemoryDeviceGroupInfo const& ) const = default;
19562 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19563     bool operator==( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19564     {
19565       return ( sType == rhs.sType )
19566           && ( pNext == rhs.pNext )
19567           && ( deviceIndexCount == rhs.deviceIndexCount )
19568           && ( pDeviceIndices == rhs.pDeviceIndices );
19569     }
19570 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19571     bool operator!=( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19572     {
19573       return !operator==( rhs );
19574     }
19575 #endif
19576 
19577 
19578 
19579   public:
19580     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo;
19581     const void* pNext = {};
19582     uint32_t deviceIndexCount = {};
19583     const uint32_t* pDeviceIndices = {};
19584 
19585   };
19586   static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
19587   static_assert( std::is_standard_layout<BindBufferMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
19588 
19589   template <>
19590   struct CppType<StructureType, StructureType::eBindBufferMemoryDeviceGroupInfo>
19591   {
19592     using Type = BindBufferMemoryDeviceGroupInfo;
19593   };
19594   using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
19595 
19596   struct BindBufferMemoryInfo
19597   {
19598     static const bool allowDuplicate = false;
19599     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryInfo;
19600 
19601 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19602     VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT
19603     : buffer( buffer_ ), memory( memory_ ), memoryOffset( memoryOffset_ )
19604     {}
19605 
19606     VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19607 
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19608     BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19609     {
19610       *this = rhs;
19611     }
19612 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19613 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19614     BindBufferMemoryInfo & operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19615     {
19616       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo const *>( &rhs );
19617       return *this;
19618     }
19619 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19620     BindBufferMemoryInfo & operator=( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19621     {
19622       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindBufferMemoryInfo ) );
19623       return *this;
19624     }
19625 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19626     BindBufferMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19627     {
19628       pNext = pNext_;
19629       return *this;
19630     }
19631 
setBufferVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19632     BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
19633     {
19634       buffer = buffer_;
19635       return *this;
19636     }
19637 
setMemoryVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19638     BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
19639     {
19640       memory = memory_;
19641       return *this;
19642     }
19643 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19644     BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
19645     {
19646       memoryOffset = memoryOffset_;
19647       return *this;
19648     }
19649 
19650 
operator VkBindBufferMemoryInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19651     operator VkBindBufferMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
19652     {
19653       return *reinterpret_cast<const VkBindBufferMemoryInfo*>( this );
19654     }
19655 
operator VkBindBufferMemoryInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19656     operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT
19657     {
19658       return *reinterpret_cast<VkBindBufferMemoryInfo*>( this );
19659     }
19660 
19661 
19662 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19663     auto operator<=>( BindBufferMemoryInfo const& ) const = default;
19664 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19665     bool operator==( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19666     {
19667       return ( sType == rhs.sType )
19668           && ( pNext == rhs.pNext )
19669           && ( buffer == rhs.buffer )
19670           && ( memory == rhs.memory )
19671           && ( memoryOffset == rhs.memoryOffset );
19672     }
19673 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19674     bool operator!=( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19675     {
19676       return !operator==( rhs );
19677     }
19678 #endif
19679 
19680 
19681 
19682   public:
19683     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo;
19684     const void* pNext = {};
19685     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
19686     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
19687     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
19688 
19689   };
19690   static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), "struct and wrapper have different size!" );
19691   static_assert( std::is_standard_layout<BindBufferMemoryInfo>::value, "struct wrapper is not a standard layout!" );
19692 
19693   template <>
19694   struct CppType<StructureType, StructureType::eBindBufferMemoryInfo>
19695   {
19696     using Type = BindBufferMemoryInfo;
19697   };
19698   using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
19699 
19700   struct Offset2D
19701   {
19702 
19703 
19704 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Offset2DVULKAN_HPP_NAMESPACE::Offset2D19705     VULKAN_HPP_CONSTEXPR Offset2D(int32_t x_ = {}, int32_t y_ = {}) VULKAN_HPP_NOEXCEPT
19706     : x( x_ ), y( y_ )
19707     {}
19708 
19709     VULKAN_HPP_CONSTEXPR Offset2D( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19710 
Offset2DVULKAN_HPP_NAMESPACE::Offset2D19711     Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
19712     {
19713       *this = rhs;
19714     }
19715 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19716 
operator =VULKAN_HPP_NAMESPACE::Offset2D19717     Offset2D & operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
19718     {
19719       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset2D const *>( &rhs );
19720       return *this;
19721     }
19722 
operator =VULKAN_HPP_NAMESPACE::Offset2D19723     Offset2D & operator=( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT
19724     {
19725       memcpy( static_cast<void *>( this ), &rhs, sizeof( Offset2D ) );
19726       return *this;
19727     }
19728 
setXVULKAN_HPP_NAMESPACE::Offset2D19729     Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
19730     {
19731       x = x_;
19732       return *this;
19733     }
19734 
setYVULKAN_HPP_NAMESPACE::Offset2D19735     Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
19736     {
19737       y = y_;
19738       return *this;
19739     }
19740 
19741 
operator VkOffset2D const&VULKAN_HPP_NAMESPACE::Offset2D19742     operator VkOffset2D const&() const VULKAN_HPP_NOEXCEPT
19743     {
19744       return *reinterpret_cast<const VkOffset2D*>( this );
19745     }
19746 
operator VkOffset2D&VULKAN_HPP_NAMESPACE::Offset2D19747     operator VkOffset2D &() VULKAN_HPP_NOEXCEPT
19748     {
19749       return *reinterpret_cast<VkOffset2D*>( this );
19750     }
19751 
19752 
19753 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19754     auto operator<=>( Offset2D const& ) const = default;
19755 #else
operator ==VULKAN_HPP_NAMESPACE::Offset2D19756     bool operator==( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19757     {
19758       return ( x == rhs.x )
19759           && ( y == rhs.y );
19760     }
19761 
operator !=VULKAN_HPP_NAMESPACE::Offset2D19762     bool operator!=( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19763     {
19764       return !operator==( rhs );
19765     }
19766 #endif
19767 
19768 
19769 
19770   public:
19771     int32_t x = {};
19772     int32_t y = {};
19773 
19774   };
19775   static_assert( sizeof( Offset2D ) == sizeof( VkOffset2D ), "struct and wrapper have different size!" );
19776   static_assert( std::is_standard_layout<Offset2D>::value, "struct wrapper is not a standard layout!" );
19777 
19778   struct Rect2D
19779   {
19780 
19781 
19782 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Rect2DVULKAN_HPP_NAMESPACE::Rect2D19783     VULKAN_HPP_CONSTEXPR Rect2D(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}) VULKAN_HPP_NOEXCEPT
19784     : offset( offset_ ), extent( extent_ )
19785     {}
19786 
19787     VULKAN_HPP_CONSTEXPR Rect2D( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19788 
Rect2DVULKAN_HPP_NAMESPACE::Rect2D19789     Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
19790     {
19791       *this = rhs;
19792     }
19793 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19794 
operator =VULKAN_HPP_NAMESPACE::Rect2D19795     Rect2D & operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
19796     {
19797       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Rect2D const *>( &rhs );
19798       return *this;
19799     }
19800 
operator =VULKAN_HPP_NAMESPACE::Rect2D19801     Rect2D & operator=( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT
19802     {
19803       memcpy( static_cast<void *>( this ), &rhs, sizeof( Rect2D ) );
19804       return *this;
19805     }
19806 
setOffsetVULKAN_HPP_NAMESPACE::Rect2D19807     Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
19808     {
19809       offset = offset_;
19810       return *this;
19811     }
19812 
setExtentVULKAN_HPP_NAMESPACE::Rect2D19813     Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
19814     {
19815       extent = extent_;
19816       return *this;
19817     }
19818 
19819 
operator VkRect2D const&VULKAN_HPP_NAMESPACE::Rect2D19820     operator VkRect2D const&() const VULKAN_HPP_NOEXCEPT
19821     {
19822       return *reinterpret_cast<const VkRect2D*>( this );
19823     }
19824 
operator VkRect2D&VULKAN_HPP_NAMESPACE::Rect2D19825     operator VkRect2D &() VULKAN_HPP_NOEXCEPT
19826     {
19827       return *reinterpret_cast<VkRect2D*>( this );
19828     }
19829 
19830 
19831 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19832     auto operator<=>( Rect2D const& ) const = default;
19833 #else
operator ==VULKAN_HPP_NAMESPACE::Rect2D19834     bool operator==( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19835     {
19836       return ( offset == rhs.offset )
19837           && ( extent == rhs.extent );
19838     }
19839 
operator !=VULKAN_HPP_NAMESPACE::Rect2D19840     bool operator!=( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19841     {
19842       return !operator==( rhs );
19843     }
19844 #endif
19845 
19846 
19847 
19848   public:
19849     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
19850     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
19851 
19852   };
19853   static_assert( sizeof( Rect2D ) == sizeof( VkRect2D ), "struct and wrapper have different size!" );
19854   static_assert( std::is_standard_layout<Rect2D>::value, "struct wrapper is not a standard layout!" );
19855 
19856   struct BindImageMemoryDeviceGroupInfo
19857   {
19858     static const bool allowDuplicate = false;
19859     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryDeviceGroupInfo;
19860 
19861 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19862     VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}, uint32_t splitInstanceBindRegionCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ = {}) VULKAN_HPP_NOEXCEPT
19863     : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ ), splitInstanceBindRegionCount( splitInstanceBindRegionCount_ ), pSplitInstanceBindRegions( pSplitInstanceBindRegions_ )
19864     {}
19865 
19866     VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19867 
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19868     BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19869     {
19870       *this = rhs;
19871     }
19872 
19873 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19874     BindImageMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ = {} )
19875     : deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ), splitInstanceBindRegionCount( static_cast<uint32_t>( splitInstanceBindRegions_.size() ) ), pSplitInstanceBindRegions( splitInstanceBindRegions_.data() )
19876     {}
19877 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19878 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19879 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19880     BindImageMemoryDeviceGroupInfo & operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19881     {
19882       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo const *>( &rhs );
19883       return *this;
19884     }
19885 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19886     BindImageMemoryDeviceGroupInfo & operator=( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19887     {
19888       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImageMemoryDeviceGroupInfo ) );
19889       return *this;
19890     }
19891 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19892     BindImageMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19893     {
19894       pNext = pNext_;
19895       return *this;
19896     }
19897 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19898     BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
19899     {
19900       deviceIndexCount = deviceIndexCount_;
19901       return *this;
19902     }
19903 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19904     BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
19905     {
19906       pDeviceIndices = pDeviceIndices_;
19907       return *this;
19908     }
19909 
19910 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19911     BindImageMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
19912     {
19913       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
19914       pDeviceIndices = deviceIndices_.data();
19915       return *this;
19916     }
19917 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19918 
setSplitInstanceBindRegionCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19919     BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT
19920     {
19921       splitInstanceBindRegionCount = splitInstanceBindRegionCount_;
19922       return *this;
19923     }
19924 
setPSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19925     BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
19926     {
19927       pSplitInstanceBindRegions = pSplitInstanceBindRegions_;
19928       return *this;
19929     }
19930 
19931 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19932     BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
19933     {
19934       splitInstanceBindRegionCount = static_cast<uint32_t>( splitInstanceBindRegions_.size() );
19935       pSplitInstanceBindRegions = splitInstanceBindRegions_.data();
19936       return *this;
19937     }
19938 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19939 
19940 
operator VkBindImageMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19941     operator VkBindImageMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT
19942     {
19943       return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>( this );
19944     }
19945 
operator VkBindImageMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19946     operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
19947     {
19948       return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>( this );
19949     }
19950 
19951 
19952 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19953     auto operator<=>( BindImageMemoryDeviceGroupInfo const& ) const = default;
19954 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19955     bool operator==( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19956     {
19957       return ( sType == rhs.sType )
19958           && ( pNext == rhs.pNext )
19959           && ( deviceIndexCount == rhs.deviceIndexCount )
19960           && ( pDeviceIndices == rhs.pDeviceIndices )
19961           && ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount )
19962           && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions );
19963     }
19964 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19965     bool operator!=( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19966     {
19967       return !operator==( rhs );
19968     }
19969 #endif
19970 
19971 
19972 
19973   public:
19974     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo;
19975     const void* pNext = {};
19976     uint32_t deviceIndexCount = {};
19977     const uint32_t* pDeviceIndices = {};
19978     uint32_t splitInstanceBindRegionCount = {};
19979     const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions = {};
19980 
19981   };
19982   static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
19983   static_assert( std::is_standard_layout<BindImageMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
19984 
19985   template <>
19986   struct CppType<StructureType, StructureType::eBindImageMemoryDeviceGroupInfo>
19987   {
19988     using Type = BindImageMemoryDeviceGroupInfo;
19989   };
19990   using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
19991 
19992   class Image
19993   {
19994   public:
19995     using CType = VkImage;
19996 
19997     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImage;
19998     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage;
19999 
20000   public:
Image()20001     VULKAN_HPP_CONSTEXPR Image() VULKAN_HPP_NOEXCEPT
20002       : m_image(VK_NULL_HANDLE)
20003     {}
20004 
Image(std::nullptr_t)20005     VULKAN_HPP_CONSTEXPR Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20006       : m_image(VK_NULL_HANDLE)
20007     {}
20008 
Image(VkImage image)20009     VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image ) VULKAN_HPP_NOEXCEPT
20010       : m_image( image )
20011     {}
20012 
20013 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImage image)20014     Image & operator=(VkImage image) VULKAN_HPP_NOEXCEPT
20015     {
20016       m_image = image;
20017       return *this;
20018     }
20019 #endif
20020 
operator =(std::nullptr_t)20021     Image & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20022     {
20023       m_image = VK_NULL_HANDLE;
20024       return *this;
20025     }
20026 
20027 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20028     auto operator<=>( Image const& ) const = default;
20029 #else
operator ==(Image const & rhs) const20030     bool operator==( Image const & rhs ) const VULKAN_HPP_NOEXCEPT
20031     {
20032       return m_image == rhs.m_image;
20033     }
20034 
operator !=(Image const & rhs) const20035     bool operator!=(Image const & rhs ) const VULKAN_HPP_NOEXCEPT
20036     {
20037       return m_image != rhs.m_image;
20038     }
20039 
operator <(Image const & rhs) const20040     bool operator<(Image const & rhs ) const VULKAN_HPP_NOEXCEPT
20041     {
20042       return m_image < rhs.m_image;
20043     }
20044 #endif
20045 
operator VkImage() const20046     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImage() const VULKAN_HPP_NOEXCEPT
20047     {
20048       return m_image;
20049     }
20050 
operator bool() const20051     explicit operator bool() const VULKAN_HPP_NOEXCEPT
20052     {
20053       return m_image != VK_NULL_HANDLE;
20054     }
20055 
operator !() const20056     bool operator!() const VULKAN_HPP_NOEXCEPT
20057     {
20058       return m_image == VK_NULL_HANDLE;
20059     }
20060 
20061   private:
20062     VkImage m_image;
20063   };
20064   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Image ) == sizeof( VkImage ), "handle and wrapper have different size!" );
20065 
20066   template <>
20067   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eImage>
20068   {
20069     using type = VULKAN_HPP_NAMESPACE::Image;
20070   };
20071 
20072   template <>
20073   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eImage>
20074   {
20075     using Type = VULKAN_HPP_NAMESPACE::Image;
20076   };
20077 
20078 
20079   template <>
20080   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage>
20081   {
20082     using Type = VULKAN_HPP_NAMESPACE::Image;
20083   };
20084 
20085 
20086   template <>
20087   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Image>
20088   {
20089     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
20090   };
20091 
20092   struct BindImageMemoryInfo
20093   {
20094     static const bool allowDuplicate = false;
20095     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryInfo;
20096 
20097 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20098     VULKAN_HPP_CONSTEXPR BindImageMemoryInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT
20099     : image( image_ ), memory( memory_ ), memoryOffset( memoryOffset_ )
20100     {}
20101 
20102     VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20103 
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20104     BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20105     {
20106       *this = rhs;
20107     }
20108 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20109 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20110     BindImageMemoryInfo & operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20111     {
20112       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryInfo const *>( &rhs );
20113       return *this;
20114     }
20115 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20116     BindImageMemoryInfo & operator=( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20117     {
20118       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImageMemoryInfo ) );
20119       return *this;
20120     }
20121 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20122     BindImageMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20123     {
20124       pNext = pNext_;
20125       return *this;
20126     }
20127 
setImageVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20128     BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
20129     {
20130       image = image_;
20131       return *this;
20132     }
20133 
setMemoryVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20134     BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
20135     {
20136       memory = memory_;
20137       return *this;
20138     }
20139 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20140     BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
20141     {
20142       memoryOffset = memoryOffset_;
20143       return *this;
20144     }
20145 
20146 
operator VkBindImageMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20147     operator VkBindImageMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
20148     {
20149       return *reinterpret_cast<const VkBindImageMemoryInfo*>( this );
20150     }
20151 
operator VkBindImageMemoryInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20152     operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT
20153     {
20154       return *reinterpret_cast<VkBindImageMemoryInfo*>( this );
20155     }
20156 
20157 
20158 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20159     auto operator<=>( BindImageMemoryInfo const& ) const = default;
20160 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20161     bool operator==( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20162     {
20163       return ( sType == rhs.sType )
20164           && ( pNext == rhs.pNext )
20165           && ( image == rhs.image )
20166           && ( memory == rhs.memory )
20167           && ( memoryOffset == rhs.memoryOffset );
20168     }
20169 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20170     bool operator!=( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20171     {
20172       return !operator==( rhs );
20173     }
20174 #endif
20175 
20176 
20177 
20178   public:
20179     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo;
20180     const void* pNext = {};
20181     VULKAN_HPP_NAMESPACE::Image image = {};
20182     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
20183     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
20184 
20185   };
20186   static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), "struct and wrapper have different size!" );
20187   static_assert( std::is_standard_layout<BindImageMemoryInfo>::value, "struct wrapper is not a standard layout!" );
20188 
20189   template <>
20190   struct CppType<StructureType, StructureType::eBindImageMemoryInfo>
20191   {
20192     using Type = BindImageMemoryInfo;
20193   };
20194   using BindImageMemoryInfoKHR = BindImageMemoryInfo;
20195 
20196   struct BindImageMemorySwapchainInfoKHR
20197   {
20198     static const bool allowDuplicate = false;
20199     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemorySwapchainInfoKHR;
20200 
20201 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20202     VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint32_t imageIndex_ = {}) VULKAN_HPP_NOEXCEPT
20203     : swapchain( swapchain_ ), imageIndex( imageIndex_ )
20204     {}
20205 
20206     VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20207 
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20208     BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
20209     {
20210       *this = rhs;
20211     }
20212 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20213 
operator =VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20214     BindImageMemorySwapchainInfoKHR & operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
20215     {
20216       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR const *>( &rhs );
20217       return *this;
20218     }
20219 
operator =VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20220     BindImageMemorySwapchainInfoKHR & operator=( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
20221     {
20222       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImageMemorySwapchainInfoKHR ) );
20223       return *this;
20224     }
20225 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20226     BindImageMemorySwapchainInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20227     {
20228       pNext = pNext_;
20229       return *this;
20230     }
20231 
setSwapchainVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20232     BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
20233     {
20234       swapchain = swapchain_;
20235       return *this;
20236     }
20237 
setImageIndexVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20238     BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT
20239     {
20240       imageIndex = imageIndex_;
20241       return *this;
20242     }
20243 
20244 
operator VkBindImageMemorySwapchainInfoKHR const&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20245     operator VkBindImageMemorySwapchainInfoKHR const&() const VULKAN_HPP_NOEXCEPT
20246     {
20247       return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>( this );
20248     }
20249 
operator VkBindImageMemorySwapchainInfoKHR&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20250     operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT
20251     {
20252       return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>( this );
20253     }
20254 
20255 
20256 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20257     auto operator<=>( BindImageMemorySwapchainInfoKHR const& ) const = default;
20258 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20259     bool operator==( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
20260     {
20261       return ( sType == rhs.sType )
20262           && ( pNext == rhs.pNext )
20263           && ( swapchain == rhs.swapchain )
20264           && ( imageIndex == rhs.imageIndex );
20265     }
20266 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20267     bool operator!=( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
20268     {
20269       return !operator==( rhs );
20270     }
20271 #endif
20272 
20273 
20274 
20275   public:
20276     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR;
20277     const void* pNext = {};
20278     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
20279     uint32_t imageIndex = {};
20280 
20281   };
20282   static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), "struct and wrapper have different size!" );
20283   static_assert( std::is_standard_layout<BindImageMemorySwapchainInfoKHR>::value, "struct wrapper is not a standard layout!" );
20284 
20285   template <>
20286   struct CppType<StructureType, StructureType::eBindImageMemorySwapchainInfoKHR>
20287   {
20288     using Type = BindImageMemorySwapchainInfoKHR;
20289   };
20290 
20291   struct BindImagePlaneMemoryInfo
20292   {
20293     static const bool allowDuplicate = false;
20294     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImagePlaneMemoryInfo;
20295 
20296 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20297     VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT
20298     : planeAspect( planeAspect_ )
20299     {}
20300 
20301     VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20302 
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20303     BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20304     {
20305       *this = rhs;
20306     }
20307 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20308 
operator =VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20309     BindImagePlaneMemoryInfo & operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20310     {
20311       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo const *>( &rhs );
20312       return *this;
20313     }
20314 
operator =VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20315     BindImagePlaneMemoryInfo & operator=( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20316     {
20317       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImagePlaneMemoryInfo ) );
20318       return *this;
20319     }
20320 
setPNextVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20321     BindImagePlaneMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20322     {
20323       pNext = pNext_;
20324       return *this;
20325     }
20326 
setPlaneAspectVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20327     BindImagePlaneMemoryInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
20328     {
20329       planeAspect = planeAspect_;
20330       return *this;
20331     }
20332 
20333 
operator VkBindImagePlaneMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20334     operator VkBindImagePlaneMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
20335     {
20336       return *reinterpret_cast<const VkBindImagePlaneMemoryInfo*>( this );
20337     }
20338 
operator VkBindImagePlaneMemoryInfo&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20339     operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT
20340     {
20341       return *reinterpret_cast<VkBindImagePlaneMemoryInfo*>( this );
20342     }
20343 
20344 
20345 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20346     auto operator<=>( BindImagePlaneMemoryInfo const& ) const = default;
20347 #else
operator ==VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20348     bool operator==( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20349     {
20350       return ( sType == rhs.sType )
20351           && ( pNext == rhs.pNext )
20352           && ( planeAspect == rhs.planeAspect );
20353     }
20354 
operator !=VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20355     bool operator!=( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20356     {
20357       return !operator==( rhs );
20358     }
20359 #endif
20360 
20361 
20362 
20363   public:
20364     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo;
20365     const void* pNext = {};
20366     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
20367 
20368   };
20369   static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), "struct and wrapper have different size!" );
20370   static_assert( std::is_standard_layout<BindImagePlaneMemoryInfo>::value, "struct wrapper is not a standard layout!" );
20371 
20372   template <>
20373   struct CppType<StructureType, StructureType::eBindImagePlaneMemoryInfo>
20374   {
20375     using Type = BindImagePlaneMemoryInfo;
20376   };
20377   using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
20378 
20379   struct BindIndexBufferIndirectCommandNV
20380   {
20381 
20382 
20383 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20384     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
20385     : bufferAddress( bufferAddress_ ), size( size_ ), indexType( indexType_ )
20386     {}
20387 
20388     VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20389 
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20390     BindIndexBufferIndirectCommandNV( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20391     {
20392       *this = rhs;
20393     }
20394 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20395 
operator =VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20396     BindIndexBufferIndirectCommandNV & operator=( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20397     {
20398       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV const *>( &rhs );
20399       return *this;
20400     }
20401 
operator =VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20402     BindIndexBufferIndirectCommandNV & operator=( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20403     {
20404       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindIndexBufferIndirectCommandNV ) );
20405       return *this;
20406     }
20407 
setBufferAddressVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20408     BindIndexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
20409     {
20410       bufferAddress = bufferAddress_;
20411       return *this;
20412     }
20413 
setSizeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20414     BindIndexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
20415     {
20416       size = size_;
20417       return *this;
20418     }
20419 
setIndexTypeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20420     BindIndexBufferIndirectCommandNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
20421     {
20422       indexType = indexType_;
20423       return *this;
20424     }
20425 
20426 
operator VkBindIndexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20427     operator VkBindIndexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
20428     {
20429       return *reinterpret_cast<const VkBindIndexBufferIndirectCommandNV*>( this );
20430     }
20431 
operator VkBindIndexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20432     operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
20433     {
20434       return *reinterpret_cast<VkBindIndexBufferIndirectCommandNV*>( this );
20435     }
20436 
20437 
20438 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20439     auto operator<=>( BindIndexBufferIndirectCommandNV const& ) const = default;
20440 #else
operator ==VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20441     bool operator==( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20442     {
20443       return ( bufferAddress == rhs.bufferAddress )
20444           && ( size == rhs.size )
20445           && ( indexType == rhs.indexType );
20446     }
20447 
operator !=VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20448     bool operator!=( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20449     {
20450       return !operator==( rhs );
20451     }
20452 #endif
20453 
20454 
20455 
20456   public:
20457     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
20458     uint32_t size = {};
20459     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
20460 
20461   };
20462   static_assert( sizeof( BindIndexBufferIndirectCommandNV ) == sizeof( VkBindIndexBufferIndirectCommandNV ), "struct and wrapper have different size!" );
20463   static_assert( std::is_standard_layout<BindIndexBufferIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
20464 
20465   struct BindShaderGroupIndirectCommandNV
20466   {
20467 
20468 
20469 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20470     VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV(uint32_t groupIndex_ = {}) VULKAN_HPP_NOEXCEPT
20471     : groupIndex( groupIndex_ )
20472     {}
20473 
20474     VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20475 
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20476     BindShaderGroupIndirectCommandNV( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20477     {
20478       *this = rhs;
20479     }
20480 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20481 
operator =VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20482     BindShaderGroupIndirectCommandNV & operator=( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20483     {
20484       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV const *>( &rhs );
20485       return *this;
20486     }
20487 
operator =VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20488     BindShaderGroupIndirectCommandNV & operator=( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20489     {
20490       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindShaderGroupIndirectCommandNV ) );
20491       return *this;
20492     }
20493 
setGroupIndexVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20494     BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT
20495     {
20496       groupIndex = groupIndex_;
20497       return *this;
20498     }
20499 
20500 
operator VkBindShaderGroupIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20501     operator VkBindShaderGroupIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
20502     {
20503       return *reinterpret_cast<const VkBindShaderGroupIndirectCommandNV*>( this );
20504     }
20505 
operator VkBindShaderGroupIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20506     operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
20507     {
20508       return *reinterpret_cast<VkBindShaderGroupIndirectCommandNV*>( this );
20509     }
20510 
20511 
20512 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20513     auto operator<=>( BindShaderGroupIndirectCommandNV const& ) const = default;
20514 #else
operator ==VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20515     bool operator==( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20516     {
20517       return ( groupIndex == rhs.groupIndex );
20518     }
20519 
operator !=VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20520     bool operator!=( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20521     {
20522       return !operator==( rhs );
20523     }
20524 #endif
20525 
20526 
20527 
20528   public:
20529     uint32_t groupIndex = {};
20530 
20531   };
20532   static_assert( sizeof( BindShaderGroupIndirectCommandNV ) == sizeof( VkBindShaderGroupIndirectCommandNV ), "struct and wrapper have different size!" );
20533   static_assert( std::is_standard_layout<BindShaderGroupIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
20534 
20535   struct SparseMemoryBind
20536   {
20537 
20538 
20539 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind20540     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
20541     : resourceOffset( resourceOffset_ ), size( size_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ )
20542     {}
20543 
20544     VULKAN_HPP_CONSTEXPR SparseMemoryBind( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20545 
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind20546     SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
20547     {
20548       *this = rhs;
20549     }
20550 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20551 
operator =VULKAN_HPP_NAMESPACE::SparseMemoryBind20552     SparseMemoryBind & operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
20553     {
20554       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseMemoryBind const *>( &rhs );
20555       return *this;
20556     }
20557 
operator =VULKAN_HPP_NAMESPACE::SparseMemoryBind20558     SparseMemoryBind & operator=( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
20559     {
20560       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseMemoryBind ) );
20561       return *this;
20562     }
20563 
setResourceOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind20564     SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT
20565     {
20566       resourceOffset = resourceOffset_;
20567       return *this;
20568     }
20569 
setSizeVULKAN_HPP_NAMESPACE::SparseMemoryBind20570     SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
20571     {
20572       size = size_;
20573       return *this;
20574     }
20575 
setMemoryVULKAN_HPP_NAMESPACE::SparseMemoryBind20576     SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
20577     {
20578       memory = memory_;
20579       return *this;
20580     }
20581 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind20582     SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
20583     {
20584       memoryOffset = memoryOffset_;
20585       return *this;
20586     }
20587 
setFlagsVULKAN_HPP_NAMESPACE::SparseMemoryBind20588     SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
20589     {
20590       flags = flags_;
20591       return *this;
20592     }
20593 
20594 
operator VkSparseMemoryBind const&VULKAN_HPP_NAMESPACE::SparseMemoryBind20595     operator VkSparseMemoryBind const&() const VULKAN_HPP_NOEXCEPT
20596     {
20597       return *reinterpret_cast<const VkSparseMemoryBind*>( this );
20598     }
20599 
operator VkSparseMemoryBind&VULKAN_HPP_NAMESPACE::SparseMemoryBind20600     operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT
20601     {
20602       return *reinterpret_cast<VkSparseMemoryBind*>( this );
20603     }
20604 
20605 
20606 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20607     auto operator<=>( SparseMemoryBind const& ) const = default;
20608 #else
operator ==VULKAN_HPP_NAMESPACE::SparseMemoryBind20609     bool operator==( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
20610     {
20611       return ( resourceOffset == rhs.resourceOffset )
20612           && ( size == rhs.size )
20613           && ( memory == rhs.memory )
20614           && ( memoryOffset == rhs.memoryOffset )
20615           && ( flags == rhs.flags );
20616     }
20617 
operator !=VULKAN_HPP_NAMESPACE::SparseMemoryBind20618     bool operator!=( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
20619     {
20620       return !operator==( rhs );
20621     }
20622 #endif
20623 
20624 
20625 
20626   public:
20627     VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {};
20628     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
20629     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
20630     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
20631     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
20632 
20633   };
20634   static_assert( sizeof( SparseMemoryBind ) == sizeof( VkSparseMemoryBind ), "struct and wrapper have different size!" );
20635   static_assert( std::is_standard_layout<SparseMemoryBind>::value, "struct wrapper is not a standard layout!" );
20636 
20637   struct SparseBufferMemoryBindInfo
20638   {
20639 
20640 
20641 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20642     VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
20643     : buffer( buffer_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
20644     {}
20645 
20646     VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20647 
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20648     SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20649     {
20650       *this = rhs;
20651     }
20652 
20653 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20654     SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
20655     : buffer( buffer_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
20656     {}
20657 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20658 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20659 
operator =VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20660     SparseBufferMemoryBindInfo & operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20661     {
20662       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo const *>( &rhs );
20663       return *this;
20664     }
20665 
operator =VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20666     SparseBufferMemoryBindInfo & operator=( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20667     {
20668       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseBufferMemoryBindInfo ) );
20669       return *this;
20670     }
20671 
setBufferVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20672     SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
20673     {
20674       buffer = buffer_;
20675       return *this;
20676     }
20677 
setBindCountVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20678     SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
20679     {
20680       bindCount = bindCount_;
20681       return *this;
20682     }
20683 
setPBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20684     SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
20685     {
20686       pBinds = pBinds_;
20687       return *this;
20688     }
20689 
20690 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20691     SparseBufferMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
20692     {
20693       bindCount = static_cast<uint32_t>( binds_.size() );
20694       pBinds = binds_.data();
20695       return *this;
20696     }
20697 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20698 
20699 
operator VkSparseBufferMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20700     operator VkSparseBufferMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
20701     {
20702       return *reinterpret_cast<const VkSparseBufferMemoryBindInfo*>( this );
20703     }
20704 
operator VkSparseBufferMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20705     operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
20706     {
20707       return *reinterpret_cast<VkSparseBufferMemoryBindInfo*>( this );
20708     }
20709 
20710 
20711 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20712     auto operator<=>( SparseBufferMemoryBindInfo const& ) const = default;
20713 #else
operator ==VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20714     bool operator==( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20715     {
20716       return ( buffer == rhs.buffer )
20717           && ( bindCount == rhs.bindCount )
20718           && ( pBinds == rhs.pBinds );
20719     }
20720 
operator !=VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20721     bool operator!=( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20722     {
20723       return !operator==( rhs );
20724     }
20725 #endif
20726 
20727 
20728 
20729   public:
20730     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
20731     uint32_t bindCount = {};
20732     const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {};
20733 
20734   };
20735   static_assert( sizeof( SparseBufferMemoryBindInfo ) == sizeof( VkSparseBufferMemoryBindInfo ), "struct and wrapper have different size!" );
20736   static_assert( std::is_standard_layout<SparseBufferMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
20737 
20738   struct SparseImageOpaqueMemoryBindInfo
20739   {
20740 
20741 
20742 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20743     VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
20744     : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
20745     {}
20746 
20747     VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20748 
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20749     SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20750     {
20751       *this = rhs;
20752     }
20753 
20754 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20755     SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
20756     : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
20757     {}
20758 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20759 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20760 
operator =VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20761     SparseImageOpaqueMemoryBindInfo & operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20762     {
20763       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo const *>( &rhs );
20764       return *this;
20765     }
20766 
operator =VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20767     SparseImageOpaqueMemoryBindInfo & operator=( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20768     {
20769       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageOpaqueMemoryBindInfo ) );
20770       return *this;
20771     }
20772 
setImageVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20773     SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
20774     {
20775       image = image_;
20776       return *this;
20777     }
20778 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20779     SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
20780     {
20781       bindCount = bindCount_;
20782       return *this;
20783     }
20784 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20785     SparseImageOpaqueMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
20786     {
20787       pBinds = pBinds_;
20788       return *this;
20789     }
20790 
20791 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20792     SparseImageOpaqueMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
20793     {
20794       bindCount = static_cast<uint32_t>( binds_.size() );
20795       pBinds = binds_.data();
20796       return *this;
20797     }
20798 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20799 
20800 
operator VkSparseImageOpaqueMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20801     operator VkSparseImageOpaqueMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
20802     {
20803       return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo*>( this );
20804     }
20805 
operator VkSparseImageOpaqueMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20806     operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
20807     {
20808       return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>( this );
20809     }
20810 
20811 
20812 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20813     auto operator<=>( SparseImageOpaqueMemoryBindInfo const& ) const = default;
20814 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20815     bool operator==( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20816     {
20817       return ( image == rhs.image )
20818           && ( bindCount == rhs.bindCount )
20819           && ( pBinds == rhs.pBinds );
20820     }
20821 
operator !=VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20822     bool operator!=( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20823     {
20824       return !operator==( rhs );
20825     }
20826 #endif
20827 
20828 
20829 
20830   public:
20831     VULKAN_HPP_NAMESPACE::Image image = {};
20832     uint32_t bindCount = {};
20833     const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {};
20834 
20835   };
20836   static_assert( sizeof( SparseImageOpaqueMemoryBindInfo ) == sizeof( VkSparseImageOpaqueMemoryBindInfo ), "struct and wrapper have different size!" );
20837   static_assert( std::is_standard_layout<SparseImageOpaqueMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
20838 
20839   struct ImageSubresource
20840   {
20841 
20842 
20843 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource20844     VULKAN_HPP_CONSTEXPR ImageSubresource(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t arrayLayer_ = {}) VULKAN_HPP_NOEXCEPT
20845     : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), arrayLayer( arrayLayer_ )
20846     {}
20847 
20848     VULKAN_HPP_CONSTEXPR ImageSubresource( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20849 
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource20850     ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
20851     {
20852       *this = rhs;
20853     }
20854 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20855 
operator =VULKAN_HPP_NAMESPACE::ImageSubresource20856     ImageSubresource & operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
20857     {
20858       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource const *>( &rhs );
20859       return *this;
20860     }
20861 
operator =VULKAN_HPP_NAMESPACE::ImageSubresource20862     ImageSubresource & operator=( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
20863     {
20864       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSubresource ) );
20865       return *this;
20866     }
20867 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresource20868     ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
20869     {
20870       aspectMask = aspectMask_;
20871       return *this;
20872     }
20873 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresource20874     ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
20875     {
20876       mipLevel = mipLevel_;
20877       return *this;
20878     }
20879 
setArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresource20880     ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT
20881     {
20882       arrayLayer = arrayLayer_;
20883       return *this;
20884     }
20885 
20886 
operator VkImageSubresource const&VULKAN_HPP_NAMESPACE::ImageSubresource20887     operator VkImageSubresource const&() const VULKAN_HPP_NOEXCEPT
20888     {
20889       return *reinterpret_cast<const VkImageSubresource*>( this );
20890     }
20891 
operator VkImageSubresource&VULKAN_HPP_NAMESPACE::ImageSubresource20892     operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT
20893     {
20894       return *reinterpret_cast<VkImageSubresource*>( this );
20895     }
20896 
20897 
20898 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20899     auto operator<=>( ImageSubresource const& ) const = default;
20900 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresource20901     bool operator==( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT
20902     {
20903       return ( aspectMask == rhs.aspectMask )
20904           && ( mipLevel == rhs.mipLevel )
20905           && ( arrayLayer == rhs.arrayLayer );
20906     }
20907 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresource20908     bool operator!=( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT
20909     {
20910       return !operator==( rhs );
20911     }
20912 #endif
20913 
20914 
20915 
20916   public:
20917     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
20918     uint32_t mipLevel = {};
20919     uint32_t arrayLayer = {};
20920 
20921   };
20922   static_assert( sizeof( ImageSubresource ) == sizeof( VkImageSubresource ), "struct and wrapper have different size!" );
20923   static_assert( std::is_standard_layout<ImageSubresource>::value, "struct wrapper is not a standard layout!" );
20924 
20925   struct Offset3D
20926   {
20927 
20928 
20929 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Offset3DVULKAN_HPP_NAMESPACE::Offset3D20930     VULKAN_HPP_CONSTEXPR Offset3D(int32_t x_ = {}, int32_t y_ = {}, int32_t z_ = {}) VULKAN_HPP_NOEXCEPT
20931     : x( x_ ), y( y_ ), z( z_ )
20932     {}
20933 
20934     VULKAN_HPP_CONSTEXPR Offset3D( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20935 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D20936     Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
20937     {
20938       *this = rhs;
20939     }
20940 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D20941     explicit Offset3D( Offset2D const& offset2D, int32_t z_ = {} )
20942       : x( offset2D.x )
20943       , y( offset2D.y )
20944       , z( z_ )
20945     {}
20946 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20947 
operator =VULKAN_HPP_NAMESPACE::Offset3D20948     Offset3D & operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
20949     {
20950       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset3D const *>( &rhs );
20951       return *this;
20952     }
20953 
operator =VULKAN_HPP_NAMESPACE::Offset3D20954     Offset3D & operator=( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT
20955     {
20956       memcpy( static_cast<void *>( this ), &rhs, sizeof( Offset3D ) );
20957       return *this;
20958     }
20959 
setXVULKAN_HPP_NAMESPACE::Offset3D20960     Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
20961     {
20962       x = x_;
20963       return *this;
20964     }
20965 
setYVULKAN_HPP_NAMESPACE::Offset3D20966     Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
20967     {
20968       y = y_;
20969       return *this;
20970     }
20971 
setZVULKAN_HPP_NAMESPACE::Offset3D20972     Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT
20973     {
20974       z = z_;
20975       return *this;
20976     }
20977 
20978 
operator VkOffset3D const&VULKAN_HPP_NAMESPACE::Offset3D20979     operator VkOffset3D const&() const VULKAN_HPP_NOEXCEPT
20980     {
20981       return *reinterpret_cast<const VkOffset3D*>( this );
20982     }
20983 
operator VkOffset3D&VULKAN_HPP_NAMESPACE::Offset3D20984     operator VkOffset3D &() VULKAN_HPP_NOEXCEPT
20985     {
20986       return *reinterpret_cast<VkOffset3D*>( this );
20987     }
20988 
20989 
20990 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20991     auto operator<=>( Offset3D const& ) const = default;
20992 #else
operator ==VULKAN_HPP_NAMESPACE::Offset3D20993     bool operator==( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT
20994     {
20995       return ( x == rhs.x )
20996           && ( y == rhs.y )
20997           && ( z == rhs.z );
20998     }
20999 
operator !=VULKAN_HPP_NAMESPACE::Offset3D21000     bool operator!=( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT
21001     {
21002       return !operator==( rhs );
21003     }
21004 #endif
21005 
21006 
21007 
21008   public:
21009     int32_t x = {};
21010     int32_t y = {};
21011     int32_t z = {};
21012 
21013   };
21014   static_assert( sizeof( Offset3D ) == sizeof( VkOffset3D ), "struct and wrapper have different size!" );
21015   static_assert( std::is_standard_layout<Offset3D>::value, "struct wrapper is not a standard layout!" );
21016 
21017   struct Extent3D
21018   {
21019 
21020 
21021 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Extent3DVULKAN_HPP_NAMESPACE::Extent3D21022     VULKAN_HPP_CONSTEXPR Extent3D(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT
21023     : width( width_ ), height( height_ ), depth( depth_ )
21024     {}
21025 
21026     VULKAN_HPP_CONSTEXPR Extent3D( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21027 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D21028     Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
21029     {
21030       *this = rhs;
21031     }
21032 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D21033     explicit Extent3D( Extent2D const& extent2D, uint32_t depth_ = {} )
21034       : width( extent2D.width )
21035       , height( extent2D.height )
21036       , depth( depth_ )
21037     {}
21038 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21039 
operator =VULKAN_HPP_NAMESPACE::Extent3D21040     Extent3D & operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
21041     {
21042       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent3D const *>( &rhs );
21043       return *this;
21044     }
21045 
operator =VULKAN_HPP_NAMESPACE::Extent3D21046     Extent3D & operator=( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT
21047     {
21048       memcpy( static_cast<void *>( this ), &rhs, sizeof( Extent3D ) );
21049       return *this;
21050     }
21051 
setWidthVULKAN_HPP_NAMESPACE::Extent3D21052     Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
21053     {
21054       width = width_;
21055       return *this;
21056     }
21057 
setHeightVULKAN_HPP_NAMESPACE::Extent3D21058     Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
21059     {
21060       height = height_;
21061       return *this;
21062     }
21063 
setDepthVULKAN_HPP_NAMESPACE::Extent3D21064     Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
21065     {
21066       depth = depth_;
21067       return *this;
21068     }
21069 
21070 
operator VkExtent3D const&VULKAN_HPP_NAMESPACE::Extent3D21071     operator VkExtent3D const&() const VULKAN_HPP_NOEXCEPT
21072     {
21073       return *reinterpret_cast<const VkExtent3D*>( this );
21074     }
21075 
operator VkExtent3D&VULKAN_HPP_NAMESPACE::Extent3D21076     operator VkExtent3D &() VULKAN_HPP_NOEXCEPT
21077     {
21078       return *reinterpret_cast<VkExtent3D*>( this );
21079     }
21080 
21081 
21082 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21083     auto operator<=>( Extent3D const& ) const = default;
21084 #else
operator ==VULKAN_HPP_NAMESPACE::Extent3D21085     bool operator==( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT
21086     {
21087       return ( width == rhs.width )
21088           && ( height == rhs.height )
21089           && ( depth == rhs.depth );
21090     }
21091 
operator !=VULKAN_HPP_NAMESPACE::Extent3D21092     bool operator!=( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT
21093     {
21094       return !operator==( rhs );
21095     }
21096 #endif
21097 
21098 
21099 
21100   public:
21101     uint32_t width = {};
21102     uint32_t height = {};
21103     uint32_t depth = {};
21104 
21105   };
21106   static_assert( sizeof( Extent3D ) == sizeof( VkExtent3D ), "struct and wrapper have different size!" );
21107   static_assert( std::is_standard_layout<Extent3D>::value, "struct wrapper is not a standard layout!" );
21108 
21109   struct SparseImageMemoryBind
21110   {
21111 
21112 
21113 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21114     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
21115     : subresource( subresource_ ), offset( offset_ ), extent( extent_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ )
21116     {}
21117 
21118     VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21119 
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21120     SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
21121     {
21122       *this = rhs;
21123     }
21124 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21125 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21126     SparseImageMemoryBind & operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
21127     {
21128       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBind const *>( &rhs );
21129       return *this;
21130     }
21131 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21132     SparseImageMemoryBind & operator=( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
21133     {
21134       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryBind ) );
21135       return *this;
21136     }
21137 
setSubresourceVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21138     SparseImageMemoryBind & setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT
21139     {
21140       subresource = subresource_;
21141       return *this;
21142     }
21143 
setOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21144     SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D const & offset_ ) VULKAN_HPP_NOEXCEPT
21145     {
21146       offset = offset_;
21147       return *this;
21148     }
21149 
setExtentVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21150     SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
21151     {
21152       extent = extent_;
21153       return *this;
21154     }
21155 
setMemoryVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21156     SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
21157     {
21158       memory = memory_;
21159       return *this;
21160     }
21161 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21162     SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
21163     {
21164       memoryOffset = memoryOffset_;
21165       return *this;
21166     }
21167 
setFlagsVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21168     SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
21169     {
21170       flags = flags_;
21171       return *this;
21172     }
21173 
21174 
operator VkSparseImageMemoryBind const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21175     operator VkSparseImageMemoryBind const&() const VULKAN_HPP_NOEXCEPT
21176     {
21177       return *reinterpret_cast<const VkSparseImageMemoryBind*>( this );
21178     }
21179 
operator VkSparseImageMemoryBind&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21180     operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT
21181     {
21182       return *reinterpret_cast<VkSparseImageMemoryBind*>( this );
21183     }
21184 
21185 
21186 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21187     auto operator<=>( SparseImageMemoryBind const& ) const = default;
21188 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21189     bool operator==( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
21190     {
21191       return ( subresource == rhs.subresource )
21192           && ( offset == rhs.offset )
21193           && ( extent == rhs.extent )
21194           && ( memory == rhs.memory )
21195           && ( memoryOffset == rhs.memoryOffset )
21196           && ( flags == rhs.flags );
21197     }
21198 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21199     bool operator!=( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
21200     {
21201       return !operator==( rhs );
21202     }
21203 #endif
21204 
21205 
21206 
21207   public:
21208     VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {};
21209     VULKAN_HPP_NAMESPACE::Offset3D offset = {};
21210     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
21211     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
21212     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
21213     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
21214 
21215   };
21216   static_assert( sizeof( SparseImageMemoryBind ) == sizeof( VkSparseImageMemoryBind ), "struct and wrapper have different size!" );
21217   static_assert( std::is_standard_layout<SparseImageMemoryBind>::value, "struct wrapper is not a standard layout!" );
21218 
21219   struct SparseImageMemoryBindInfo
21220   {
21221 
21222 
21223 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21224     VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
21225     : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
21226     {}
21227 
21228     VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21229 
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21230     SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21231     {
21232       *this = rhs;
21233     }
21234 
21235 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21236     SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ )
21237     : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
21238     {}
21239 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21240 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21241 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21242     SparseImageMemoryBindInfo & operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21243     {
21244       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo const *>( &rhs );
21245       return *this;
21246     }
21247 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21248     SparseImageMemoryBindInfo & operator=( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21249     {
21250       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryBindInfo ) );
21251       return *this;
21252     }
21253 
setImageVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21254     SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
21255     {
21256       image = image_;
21257       return *this;
21258     }
21259 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21260     SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
21261     {
21262       bindCount = bindCount_;
21263       return *this;
21264     }
21265 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21266     SparseImageMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
21267     {
21268       pBinds = pBinds_;
21269       return *this;
21270     }
21271 
21272 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21273     SparseImageMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
21274     {
21275       bindCount = static_cast<uint32_t>( binds_.size() );
21276       pBinds = binds_.data();
21277       return *this;
21278     }
21279 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21280 
21281 
operator VkSparseImageMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21282     operator VkSparseImageMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
21283     {
21284       return *reinterpret_cast<const VkSparseImageMemoryBindInfo*>( this );
21285     }
21286 
operator VkSparseImageMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21287     operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
21288     {
21289       return *reinterpret_cast<VkSparseImageMemoryBindInfo*>( this );
21290     }
21291 
21292 
21293 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21294     auto operator<=>( SparseImageMemoryBindInfo const& ) const = default;
21295 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21296     bool operator==( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21297     {
21298       return ( image == rhs.image )
21299           && ( bindCount == rhs.bindCount )
21300           && ( pBinds == rhs.pBinds );
21301     }
21302 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21303     bool operator!=( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21304     {
21305       return !operator==( rhs );
21306     }
21307 #endif
21308 
21309 
21310 
21311   public:
21312     VULKAN_HPP_NAMESPACE::Image image = {};
21313     uint32_t bindCount = {};
21314     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds = {};
21315 
21316   };
21317   static_assert( sizeof( SparseImageMemoryBindInfo ) == sizeof( VkSparseImageMemoryBindInfo ), "struct and wrapper have different size!" );
21318   static_assert( std::is_standard_layout<SparseImageMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
21319 
21320   struct BindSparseInfo
21321   {
21322     static const bool allowDuplicate = false;
21323     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindSparseInfo;
21324 
21325 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo21326     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
21327     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), bufferBindCount( bufferBindCount_ ), pBufferBinds( pBufferBinds_ ), imageOpaqueBindCount( imageOpaqueBindCount_ ), pImageOpaqueBinds( pImageOpaqueBinds_ ), imageBindCount( imageBindCount_ ), pImageBinds( pImageBinds_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ )
21328     {}
21329 
21330     VULKAN_HPP_CONSTEXPR BindSparseInfo( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21331 
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo21332     BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21333     {
21334       *this = rhs;
21335     }
21336 
21337 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo21338     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_ = {} )
21339     : 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() )
21340     {}
21341 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21342 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21343 
operator =VULKAN_HPP_NAMESPACE::BindSparseInfo21344     BindSparseInfo & operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21345     {
21346       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindSparseInfo const *>( &rhs );
21347       return *this;
21348     }
21349 
operator =VULKAN_HPP_NAMESPACE::BindSparseInfo21350     BindSparseInfo & operator=( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21351     {
21352       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindSparseInfo ) );
21353       return *this;
21354     }
21355 
setPNextVULKAN_HPP_NAMESPACE::BindSparseInfo21356     BindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21357     {
21358       pNext = pNext_;
21359       return *this;
21360     }
21361 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo21362     BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
21363     {
21364       waitSemaphoreCount = waitSemaphoreCount_;
21365       return *this;
21366     }
21367 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21368     BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
21369     {
21370       pWaitSemaphores = pWaitSemaphores_;
21371       return *this;
21372     }
21373 
21374 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21375     BindSparseInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
21376     {
21377       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
21378       pWaitSemaphores = waitSemaphores_.data();
21379       return *this;
21380     }
21381 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21382 
setBufferBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21383     BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT
21384     {
21385       bufferBindCount = bufferBindCount_;
21386       return *this;
21387     }
21388 
setPBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21389     BindSparseInfo & setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ ) VULKAN_HPP_NOEXCEPT
21390     {
21391       pBufferBinds = pBufferBinds_;
21392       return *this;
21393     }
21394 
21395 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21396     BindSparseInfo & setBufferBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const & bufferBinds_ ) VULKAN_HPP_NOEXCEPT
21397     {
21398       bufferBindCount = static_cast<uint32_t>( bufferBinds_.size() );
21399       pBufferBinds = bufferBinds_.data();
21400       return *this;
21401     }
21402 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21403 
setImageOpaqueBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21404     BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT
21405     {
21406       imageOpaqueBindCount = imageOpaqueBindCount_;
21407       return *this;
21408     }
21409 
setPImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21410     BindSparseInfo & setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
21411     {
21412       pImageOpaqueBinds = pImageOpaqueBinds_;
21413       return *this;
21414     }
21415 
21416 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21417     BindSparseInfo & setImageOpaqueBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const & imageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
21418     {
21419       imageOpaqueBindCount = static_cast<uint32_t>( imageOpaqueBinds_.size() );
21420       pImageOpaqueBinds = imageOpaqueBinds_.data();
21421       return *this;
21422     }
21423 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21424 
setImageBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21425     BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT
21426     {
21427       imageBindCount = imageBindCount_;
21428       return *this;
21429     }
21430 
setPImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21431     BindSparseInfo & setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ ) VULKAN_HPP_NOEXCEPT
21432     {
21433       pImageBinds = pImageBinds_;
21434       return *this;
21435     }
21436 
21437 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21438     BindSparseInfo & setImageBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const & imageBinds_ ) VULKAN_HPP_NOEXCEPT
21439     {
21440       imageBindCount = static_cast<uint32_t>( imageBinds_.size() );
21441       pImageBinds = imageBinds_.data();
21442       return *this;
21443     }
21444 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21445 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo21446     BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
21447     {
21448       signalSemaphoreCount = signalSemaphoreCount_;
21449       return *this;
21450     }
21451 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21452     BindSparseInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
21453     {
21454       pSignalSemaphores = pSignalSemaphores_;
21455       return *this;
21456     }
21457 
21458 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21459     BindSparseInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
21460     {
21461       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
21462       pSignalSemaphores = signalSemaphores_.data();
21463       return *this;
21464     }
21465 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21466 
21467 
operator VkBindSparseInfo const&VULKAN_HPP_NAMESPACE::BindSparseInfo21468     operator VkBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT
21469     {
21470       return *reinterpret_cast<const VkBindSparseInfo*>( this );
21471     }
21472 
operator VkBindSparseInfo&VULKAN_HPP_NAMESPACE::BindSparseInfo21473     operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT
21474     {
21475       return *reinterpret_cast<VkBindSparseInfo*>( this );
21476     }
21477 
21478 
21479 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21480     auto operator<=>( BindSparseInfo const& ) const = default;
21481 #else
operator ==VULKAN_HPP_NAMESPACE::BindSparseInfo21482     bool operator==( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21483     {
21484       return ( sType == rhs.sType )
21485           && ( pNext == rhs.pNext )
21486           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
21487           && ( pWaitSemaphores == rhs.pWaitSemaphores )
21488           && ( bufferBindCount == rhs.bufferBindCount )
21489           && ( pBufferBinds == rhs.pBufferBinds )
21490           && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount )
21491           && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds )
21492           && ( imageBindCount == rhs.imageBindCount )
21493           && ( pImageBinds == rhs.pImageBinds )
21494           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
21495           && ( pSignalSemaphores == rhs.pSignalSemaphores );
21496     }
21497 
operator !=VULKAN_HPP_NAMESPACE::BindSparseInfo21498     bool operator!=( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21499     {
21500       return !operator==( rhs );
21501     }
21502 #endif
21503 
21504 
21505 
21506   public:
21507     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo;
21508     const void* pNext = {};
21509     uint32_t waitSemaphoreCount = {};
21510     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
21511     uint32_t bufferBindCount = {};
21512     const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds = {};
21513     uint32_t imageOpaqueBindCount = {};
21514     const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds = {};
21515     uint32_t imageBindCount = {};
21516     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds = {};
21517     uint32_t signalSemaphoreCount = {};
21518     const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {};
21519 
21520   };
21521   static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "struct and wrapper have different size!" );
21522   static_assert( std::is_standard_layout<BindSparseInfo>::value, "struct wrapper is not a standard layout!" );
21523 
21524   template <>
21525   struct CppType<StructureType, StructureType::eBindSparseInfo>
21526   {
21527     using Type = BindSparseInfo;
21528   };
21529 
21530   struct BindVertexBufferIndirectCommandNV
21531   {
21532 
21533 
21534 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21535     VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, uint32_t size_ = {}, uint32_t stride_ = {}) VULKAN_HPP_NOEXCEPT
21536     : bufferAddress( bufferAddress_ ), size( size_ ), stride( stride_ )
21537     {}
21538 
21539     VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21540 
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21541     BindVertexBufferIndirectCommandNV( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21542     {
21543       *this = rhs;
21544     }
21545 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21546 
operator =VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21547     BindVertexBufferIndirectCommandNV & operator=( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21548     {
21549       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV const *>( &rhs );
21550       return *this;
21551     }
21552 
operator =VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21553     BindVertexBufferIndirectCommandNV & operator=( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21554     {
21555       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindVertexBufferIndirectCommandNV ) );
21556       return *this;
21557     }
21558 
setBufferAddressVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21559     BindVertexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
21560     {
21561       bufferAddress = bufferAddress_;
21562       return *this;
21563     }
21564 
setSizeVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21565     BindVertexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
21566     {
21567       size = size_;
21568       return *this;
21569     }
21570 
setStrideVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21571     BindVertexBufferIndirectCommandNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
21572     {
21573       stride = stride_;
21574       return *this;
21575     }
21576 
21577 
operator VkBindVertexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21578     operator VkBindVertexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
21579     {
21580       return *reinterpret_cast<const VkBindVertexBufferIndirectCommandNV*>( this );
21581     }
21582 
operator VkBindVertexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21583     operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
21584     {
21585       return *reinterpret_cast<VkBindVertexBufferIndirectCommandNV*>( this );
21586     }
21587 
21588 
21589 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21590     auto operator<=>( BindVertexBufferIndirectCommandNV const& ) const = default;
21591 #else
operator ==VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21592     bool operator==( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
21593     {
21594       return ( bufferAddress == rhs.bufferAddress )
21595           && ( size == rhs.size )
21596           && ( stride == rhs.stride );
21597     }
21598 
operator !=VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21599     bool operator!=( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
21600     {
21601       return !operator==( rhs );
21602     }
21603 #endif
21604 
21605 
21606 
21607   public:
21608     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
21609     uint32_t size = {};
21610     uint32_t stride = {};
21611 
21612   };
21613   static_assert( sizeof( BindVertexBufferIndirectCommandNV ) == sizeof( VkBindVertexBufferIndirectCommandNV ), "struct and wrapper have different size!" );
21614   static_assert( std::is_standard_layout<BindVertexBufferIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
21615 
21616   struct ImageSubresourceLayers
21617   {
21618 
21619 
21620 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21621     VULKAN_HPP_CONSTEXPR ImageSubresourceLayers(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
21622     : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
21623     {}
21624 
21625     VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21626 
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21627     ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
21628     {
21629       *this = rhs;
21630     }
21631 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21632 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21633     ImageSubresourceLayers & operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
21634     {
21635       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const *>( &rhs );
21636       return *this;
21637     }
21638 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21639     ImageSubresourceLayers & operator=( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
21640     {
21641       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSubresourceLayers ) );
21642       return *this;
21643     }
21644 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21645     ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
21646     {
21647       aspectMask = aspectMask_;
21648       return *this;
21649     }
21650 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21651     ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
21652     {
21653       mipLevel = mipLevel_;
21654       return *this;
21655     }
21656 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21657     ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
21658     {
21659       baseArrayLayer = baseArrayLayer_;
21660       return *this;
21661     }
21662 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21663     ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
21664     {
21665       layerCount = layerCount_;
21666       return *this;
21667     }
21668 
21669 
operator VkImageSubresourceLayers const&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21670     operator VkImageSubresourceLayers const&() const VULKAN_HPP_NOEXCEPT
21671     {
21672       return *reinterpret_cast<const VkImageSubresourceLayers*>( this );
21673     }
21674 
operator VkImageSubresourceLayers&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21675     operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT
21676     {
21677       return *reinterpret_cast<VkImageSubresourceLayers*>( this );
21678     }
21679 
21680 
21681 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21682     auto operator<=>( ImageSubresourceLayers const& ) const = default;
21683 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21684     bool operator==( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT
21685     {
21686       return ( aspectMask == rhs.aspectMask )
21687           && ( mipLevel == rhs.mipLevel )
21688           && ( baseArrayLayer == rhs.baseArrayLayer )
21689           && ( layerCount == rhs.layerCount );
21690     }
21691 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21692     bool operator!=( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT
21693     {
21694       return !operator==( rhs );
21695     }
21696 #endif
21697 
21698 
21699 
21700   public:
21701     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
21702     uint32_t mipLevel = {};
21703     uint32_t baseArrayLayer = {};
21704     uint32_t layerCount = {};
21705 
21706   };
21707   static_assert( sizeof( ImageSubresourceLayers ) == sizeof( VkImageSubresourceLayers ), "struct and wrapper have different size!" );
21708   static_assert( std::is_standard_layout<ImageSubresourceLayers>::value, "struct wrapper is not a standard layout!" );
21709 
21710   struct ImageBlit2KHR
21711   {
21712     static const bool allowDuplicate = false;
21713     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageBlit2KHR;
21714 
21715 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageBlit2KHRVULKAN_HPP_NAMESPACE::ImageBlit2KHR21716     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
21717     : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ )
21718     {}
21719 
21720     VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21721 
ImageBlit2KHRVULKAN_HPP_NAMESPACE::ImageBlit2KHR21722     ImageBlit2KHR( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21723     {
21724       *this = rhs;
21725     }
21726 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21727 
operator =VULKAN_HPP_NAMESPACE::ImageBlit2KHR21728     ImageBlit2KHR & operator=( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21729     {
21730       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit2KHR const *>( &rhs );
21731       return *this;
21732     }
21733 
operator =VULKAN_HPP_NAMESPACE::ImageBlit2KHR21734     ImageBlit2KHR & operator=( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21735     {
21736       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageBlit2KHR ) );
21737       return *this;
21738     }
21739 
setPNextVULKAN_HPP_NAMESPACE::ImageBlit2KHR21740     ImageBlit2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21741     {
21742       pNext = pNext_;
21743       return *this;
21744     }
21745 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit2KHR21746     ImageBlit2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
21747     {
21748       srcSubresource = srcSubresource_;
21749       return *this;
21750     }
21751 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit2KHR21752     ImageBlit2KHR & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
21753     {
21754       srcOffsets = srcOffsets_;
21755       return *this;
21756     }
21757 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit2KHR21758     ImageBlit2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
21759     {
21760       dstSubresource = dstSubresource_;
21761       return *this;
21762     }
21763 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit2KHR21764     ImageBlit2KHR & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
21765     {
21766       dstOffsets = dstOffsets_;
21767       return *this;
21768     }
21769 
21770 
operator VkImageBlit2KHR const&VULKAN_HPP_NAMESPACE::ImageBlit2KHR21771     operator VkImageBlit2KHR const&() const VULKAN_HPP_NOEXCEPT
21772     {
21773       return *reinterpret_cast<const VkImageBlit2KHR*>( this );
21774     }
21775 
operator VkImageBlit2KHR&VULKAN_HPP_NAMESPACE::ImageBlit2KHR21776     operator VkImageBlit2KHR &() VULKAN_HPP_NOEXCEPT
21777     {
21778       return *reinterpret_cast<VkImageBlit2KHR*>( this );
21779     }
21780 
21781 
21782 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21783     auto operator<=>( ImageBlit2KHR const& ) const = default;
21784 #else
operator ==VULKAN_HPP_NAMESPACE::ImageBlit2KHR21785     bool operator==( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21786     {
21787       return ( sType == rhs.sType )
21788           && ( pNext == rhs.pNext )
21789           && ( srcSubresource == rhs.srcSubresource )
21790           && ( srcOffsets == rhs.srcOffsets )
21791           && ( dstSubresource == rhs.dstSubresource )
21792           && ( dstOffsets == rhs.dstOffsets );
21793     }
21794 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit2KHR21795     bool operator!=( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21796     {
21797       return !operator==( rhs );
21798     }
21799 #endif
21800 
21801 
21802 
21803   public:
21804     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageBlit2KHR;
21805     const void* pNext = {};
21806     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
21807     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
21808     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
21809     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
21810 
21811   };
21812   static_assert( sizeof( ImageBlit2KHR ) == sizeof( VkImageBlit2KHR ), "struct and wrapper have different size!" );
21813   static_assert( std::is_standard_layout<ImageBlit2KHR>::value, "struct wrapper is not a standard layout!" );
21814 
21815   template <>
21816   struct CppType<StructureType, StructureType::eImageBlit2KHR>
21817   {
21818     using Type = ImageBlit2KHR;
21819   };
21820 
21821   struct BlitImageInfo2KHR
21822   {
21823     static const bool allowDuplicate = false;
21824     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageInfo2KHR;
21825 
21826 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21827     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
21828     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ), filter( filter_ )
21829     {}
21830 
21831     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21832 
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21833     BlitImageInfo2KHR( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21834     {
21835       *this = rhs;
21836     }
21837 
21838 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21839     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 )
21840     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() ), filter( filter_ )
21841     {}
21842 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21843 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21844 
operator =VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21845     BlitImageInfo2KHR & operator=( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21846     {
21847       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR const *>( &rhs );
21848       return *this;
21849     }
21850 
operator =VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21851     BlitImageInfo2KHR & operator=( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21852     {
21853       memcpy( static_cast<void *>( this ), &rhs, sizeof( BlitImageInfo2KHR ) );
21854       return *this;
21855     }
21856 
setPNextVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21857     BlitImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21858     {
21859       pNext = pNext_;
21860       return *this;
21861     }
21862 
setSrcImageVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21863     BlitImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
21864     {
21865       srcImage = srcImage_;
21866       return *this;
21867     }
21868 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21869     BlitImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
21870     {
21871       srcImageLayout = srcImageLayout_;
21872       return *this;
21873     }
21874 
setDstImageVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21875     BlitImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
21876     {
21877       dstImage = dstImage_;
21878       return *this;
21879     }
21880 
setDstImageLayoutVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21881     BlitImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
21882     {
21883       dstImageLayout = dstImageLayout_;
21884       return *this;
21885     }
21886 
setRegionCountVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21887     BlitImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
21888     {
21889       regionCount = regionCount_;
21890       return *this;
21891     }
21892 
setPRegionsVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21893     BlitImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
21894     {
21895       pRegions = pRegions_;
21896       return *this;
21897     }
21898 
21899 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21900     BlitImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
21901     {
21902       regionCount = static_cast<uint32_t>( regions_.size() );
21903       pRegions = regions_.data();
21904       return *this;
21905     }
21906 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21907 
setFilterVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21908     BlitImageInfo2KHR & setFilter( VULKAN_HPP_NAMESPACE::Filter filter_ ) VULKAN_HPP_NOEXCEPT
21909     {
21910       filter = filter_;
21911       return *this;
21912     }
21913 
21914 
operator VkBlitImageInfo2KHR const&VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21915     operator VkBlitImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
21916     {
21917       return *reinterpret_cast<const VkBlitImageInfo2KHR*>( this );
21918     }
21919 
operator VkBlitImageInfo2KHR&VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21920     operator VkBlitImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
21921     {
21922       return *reinterpret_cast<VkBlitImageInfo2KHR*>( this );
21923     }
21924 
21925 
21926 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21927     auto operator<=>( BlitImageInfo2KHR const& ) const = default;
21928 #else
operator ==VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21929     bool operator==( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21930     {
21931       return ( sType == rhs.sType )
21932           && ( pNext == rhs.pNext )
21933           && ( srcImage == rhs.srcImage )
21934           && ( srcImageLayout == rhs.srcImageLayout )
21935           && ( dstImage == rhs.dstImage )
21936           && ( dstImageLayout == rhs.dstImageLayout )
21937           && ( regionCount == rhs.regionCount )
21938           && ( pRegions == rhs.pRegions )
21939           && ( filter == rhs.filter );
21940     }
21941 
operator !=VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21942     bool operator!=( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21943     {
21944       return !operator==( rhs );
21945     }
21946 #endif
21947 
21948 
21949 
21950   public:
21951     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageInfo2KHR;
21952     const void* pNext = {};
21953     VULKAN_HPP_NAMESPACE::Image srcImage = {};
21954     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
21955     VULKAN_HPP_NAMESPACE::Image dstImage = {};
21956     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
21957     uint32_t regionCount = {};
21958     const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions = {};
21959     VULKAN_HPP_NAMESPACE::Filter filter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
21960 
21961   };
21962   static_assert( sizeof( BlitImageInfo2KHR ) == sizeof( VkBlitImageInfo2KHR ), "struct and wrapper have different size!" );
21963   static_assert( std::is_standard_layout<BlitImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
21964 
21965   template <>
21966   struct CppType<StructureType, StructureType::eBlitImageInfo2KHR>
21967   {
21968     using Type = BlitImageInfo2KHR;
21969   };
21970 
21971   struct BufferCopy
21972   {
21973 
21974 
21975 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy21976     VULKAN_HPP_CONSTEXPR BufferCopy(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
21977     : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ )
21978     {}
21979 
21980     VULKAN_HPP_CONSTEXPR BufferCopy( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21981 
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy21982     BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
21983     {
21984       *this = rhs;
21985     }
21986 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21987 
operator =VULKAN_HPP_NAMESPACE::BufferCopy21988     BufferCopy & operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
21989     {
21990       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy const *>( &rhs );
21991       return *this;
21992     }
21993 
operator =VULKAN_HPP_NAMESPACE::BufferCopy21994     BufferCopy & operator=( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
21995     {
21996       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferCopy ) );
21997       return *this;
21998     }
21999 
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy22000     BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
22001     {
22002       srcOffset = srcOffset_;
22003       return *this;
22004     }
22005 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy22006     BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
22007     {
22008       dstOffset = dstOffset_;
22009       return *this;
22010     }
22011 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy22012     BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22013     {
22014       size = size_;
22015       return *this;
22016     }
22017 
22018 
operator VkBufferCopy const&VULKAN_HPP_NAMESPACE::BufferCopy22019     operator VkBufferCopy const&() const VULKAN_HPP_NOEXCEPT
22020     {
22021       return *reinterpret_cast<const VkBufferCopy*>( this );
22022     }
22023 
operator VkBufferCopy&VULKAN_HPP_NAMESPACE::BufferCopy22024     operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT
22025     {
22026       return *reinterpret_cast<VkBufferCopy*>( this );
22027     }
22028 
22029 
22030 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22031     auto operator<=>( BufferCopy const& ) const = default;
22032 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCopy22033     bool operator==( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22034     {
22035       return ( srcOffset == rhs.srcOffset )
22036           && ( dstOffset == rhs.dstOffset )
22037           && ( size == rhs.size );
22038     }
22039 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy22040     bool operator!=( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22041     {
22042       return !operator==( rhs );
22043     }
22044 #endif
22045 
22046 
22047 
22048   public:
22049     VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
22050     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
22051     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
22052 
22053   };
22054   static_assert( sizeof( BufferCopy ) == sizeof( VkBufferCopy ), "struct and wrapper have different size!" );
22055   static_assert( std::is_standard_layout<BufferCopy>::value, "struct wrapper is not a standard layout!" );
22056 
22057   struct BufferCopy2KHR
22058   {
22059     static const bool allowDuplicate = false;
22060     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCopy2KHR;
22061 
22062 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCopy2KHRVULKAN_HPP_NAMESPACE::BufferCopy2KHR22063     VULKAN_HPP_CONSTEXPR BufferCopy2KHR(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
22064     : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ )
22065     {}
22066 
22067     VULKAN_HPP_CONSTEXPR BufferCopy2KHR( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22068 
BufferCopy2KHRVULKAN_HPP_NAMESPACE::BufferCopy2KHR22069     BufferCopy2KHR( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22070     {
22071       *this = rhs;
22072     }
22073 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22074 
operator =VULKAN_HPP_NAMESPACE::BufferCopy2KHR22075     BufferCopy2KHR & operator=( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22076     {
22077       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy2KHR const *>( &rhs );
22078       return *this;
22079     }
22080 
operator =VULKAN_HPP_NAMESPACE::BufferCopy2KHR22081     BufferCopy2KHR & operator=( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22082     {
22083       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferCopy2KHR ) );
22084       return *this;
22085     }
22086 
setPNextVULKAN_HPP_NAMESPACE::BufferCopy2KHR22087     BufferCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22088     {
22089       pNext = pNext_;
22090       return *this;
22091     }
22092 
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy2KHR22093     BufferCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
22094     {
22095       srcOffset = srcOffset_;
22096       return *this;
22097     }
22098 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy2KHR22099     BufferCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
22100     {
22101       dstOffset = dstOffset_;
22102       return *this;
22103     }
22104 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy2KHR22105     BufferCopy2KHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22106     {
22107       size = size_;
22108       return *this;
22109     }
22110 
22111 
operator VkBufferCopy2KHR const&VULKAN_HPP_NAMESPACE::BufferCopy2KHR22112     operator VkBufferCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
22113     {
22114       return *reinterpret_cast<const VkBufferCopy2KHR*>( this );
22115     }
22116 
operator VkBufferCopy2KHR&VULKAN_HPP_NAMESPACE::BufferCopy2KHR22117     operator VkBufferCopy2KHR &() VULKAN_HPP_NOEXCEPT
22118     {
22119       return *reinterpret_cast<VkBufferCopy2KHR*>( this );
22120     }
22121 
22122 
22123 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22124     auto operator<=>( BufferCopy2KHR const& ) const = default;
22125 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCopy2KHR22126     bool operator==( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22127     {
22128       return ( sType == rhs.sType )
22129           && ( pNext == rhs.pNext )
22130           && ( srcOffset == rhs.srcOffset )
22131           && ( dstOffset == rhs.dstOffset )
22132           && ( size == rhs.size );
22133     }
22134 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy2KHR22135     bool operator!=( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22136     {
22137       return !operator==( rhs );
22138     }
22139 #endif
22140 
22141 
22142 
22143   public:
22144     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCopy2KHR;
22145     const void* pNext = {};
22146     VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
22147     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
22148     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
22149 
22150   };
22151   static_assert( sizeof( BufferCopy2KHR ) == sizeof( VkBufferCopy2KHR ), "struct and wrapper have different size!" );
22152   static_assert( std::is_standard_layout<BufferCopy2KHR>::value, "struct wrapper is not a standard layout!" );
22153 
22154   template <>
22155   struct CppType<StructureType, StructureType::eBufferCopy2KHR>
22156   {
22157     using Type = BufferCopy2KHR;
22158   };
22159 
22160   struct BufferCreateInfo
22161   {
22162     static const bool allowDuplicate = false;
22163     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCreateInfo;
22164 
22165 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo22166     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
22167     : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ )
22168     {}
22169 
22170     VULKAN_HPP_CONSTEXPR BufferCreateInfo( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22171 
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo22172     BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22173     {
22174       *this = rhs;
22175     }
22176 
22177 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo22178     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_ )
22179     : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() )
22180     {}
22181 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22182 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22183 
operator =VULKAN_HPP_NAMESPACE::BufferCreateInfo22184     BufferCreateInfo & operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22185     {
22186       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCreateInfo const *>( &rhs );
22187       return *this;
22188     }
22189 
operator =VULKAN_HPP_NAMESPACE::BufferCreateInfo22190     BufferCreateInfo & operator=( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22191     {
22192       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferCreateInfo ) );
22193       return *this;
22194     }
22195 
setPNextVULKAN_HPP_NAMESPACE::BufferCreateInfo22196     BufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22197     {
22198       pNext = pNext_;
22199       return *this;
22200     }
22201 
setFlagsVULKAN_HPP_NAMESPACE::BufferCreateInfo22202     BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
22203     {
22204       flags = flags_;
22205       return *this;
22206     }
22207 
setSizeVULKAN_HPP_NAMESPACE::BufferCreateInfo22208     BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22209     {
22210       size = size_;
22211       return *this;
22212     }
22213 
setUsageVULKAN_HPP_NAMESPACE::BufferCreateInfo22214     BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
22215     {
22216       usage = usage_;
22217       return *this;
22218     }
22219 
setSharingModeVULKAN_HPP_NAMESPACE::BufferCreateInfo22220     BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
22221     {
22222       sharingMode = sharingMode_;
22223       return *this;
22224     }
22225 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::BufferCreateInfo22226     BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
22227     {
22228       queueFamilyIndexCount = queueFamilyIndexCount_;
22229       return *this;
22230     }
22231 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo22232     BufferCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
22233     {
22234       pQueueFamilyIndices = pQueueFamilyIndices_;
22235       return *this;
22236     }
22237 
22238 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo22239     BufferCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
22240     {
22241       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
22242       pQueueFamilyIndices = queueFamilyIndices_.data();
22243       return *this;
22244     }
22245 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22246 
22247 
operator VkBufferCreateInfo const&VULKAN_HPP_NAMESPACE::BufferCreateInfo22248     operator VkBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
22249     {
22250       return *reinterpret_cast<const VkBufferCreateInfo*>( this );
22251     }
22252 
operator VkBufferCreateInfo&VULKAN_HPP_NAMESPACE::BufferCreateInfo22253     operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
22254     {
22255       return *reinterpret_cast<VkBufferCreateInfo*>( this );
22256     }
22257 
22258 
22259 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22260     auto operator<=>( BufferCreateInfo const& ) const = default;
22261 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCreateInfo22262     bool operator==( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22263     {
22264       return ( sType == rhs.sType )
22265           && ( pNext == rhs.pNext )
22266           && ( flags == rhs.flags )
22267           && ( size == rhs.size )
22268           && ( usage == rhs.usage )
22269           && ( sharingMode == rhs.sharingMode )
22270           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
22271           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
22272     }
22273 
operator !=VULKAN_HPP_NAMESPACE::BufferCreateInfo22274     bool operator!=( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22275     {
22276       return !operator==( rhs );
22277     }
22278 #endif
22279 
22280 
22281 
22282   public:
22283     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo;
22284     const void* pNext = {};
22285     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
22286     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
22287     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
22288     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
22289     uint32_t queueFamilyIndexCount = {};
22290     const uint32_t* pQueueFamilyIndices = {};
22291 
22292   };
22293   static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "struct and wrapper have different size!" );
22294   static_assert( std::is_standard_layout<BufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
22295 
22296   template <>
22297   struct CppType<StructureType, StructureType::eBufferCreateInfo>
22298   {
22299     using Type = BufferCreateInfo;
22300   };
22301 
22302   struct BufferDeviceAddressCreateInfoEXT
22303   {
22304     static const bool allowDuplicate = false;
22305     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressCreateInfoEXT;
22306 
22307 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22308     VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}) VULKAN_HPP_NOEXCEPT
22309     : deviceAddress( deviceAddress_ )
22310     {}
22311 
22312     VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22313 
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22314     BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
22315     {
22316       *this = rhs;
22317     }
22318 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22319 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22320     BufferDeviceAddressCreateInfoEXT & operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
22321     {
22322       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT const *>( &rhs );
22323       return *this;
22324     }
22325 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22326     BufferDeviceAddressCreateInfoEXT & operator=( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
22327     {
22328       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferDeviceAddressCreateInfoEXT ) );
22329       return *this;
22330     }
22331 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22332     BufferDeviceAddressCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22333     {
22334       pNext = pNext_;
22335       return *this;
22336     }
22337 
setDeviceAddressVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22338     BufferDeviceAddressCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
22339     {
22340       deviceAddress = deviceAddress_;
22341       return *this;
22342     }
22343 
22344 
operator VkBufferDeviceAddressCreateInfoEXT const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22345     operator VkBufferDeviceAddressCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
22346     {
22347       return *reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>( this );
22348     }
22349 
operator VkBufferDeviceAddressCreateInfoEXT&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22350     operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
22351     {
22352       return *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>( this );
22353     }
22354 
22355 
22356 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22357     auto operator<=>( BufferDeviceAddressCreateInfoEXT const& ) const = default;
22358 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22359     bool operator==( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
22360     {
22361       return ( sType == rhs.sType )
22362           && ( pNext == rhs.pNext )
22363           && ( deviceAddress == rhs.deviceAddress );
22364     }
22365 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22366     bool operator!=( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
22367     {
22368       return !operator==( rhs );
22369     }
22370 #endif
22371 
22372 
22373 
22374   public:
22375     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT;
22376     const void* pNext = {};
22377     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
22378 
22379   };
22380   static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), "struct and wrapper have different size!" );
22381   static_assert( std::is_standard_layout<BufferDeviceAddressCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
22382 
22383   template <>
22384   struct CppType<StructureType, StructureType::eBufferDeviceAddressCreateInfoEXT>
22385   {
22386     using Type = BufferDeviceAddressCreateInfoEXT;
22387   };
22388 
22389   struct BufferDeviceAddressInfo
22390   {
22391     static const bool allowDuplicate = false;
22392     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressInfo;
22393 
22394 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22395     VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
22396     : buffer( buffer_ )
22397     {}
22398 
22399     VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22400 
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22401     BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22402     {
22403       *this = rhs;
22404     }
22405 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22406 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22407     BufferDeviceAddressInfo & operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22408     {
22409       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo const *>( &rhs );
22410       return *this;
22411     }
22412 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22413     BufferDeviceAddressInfo & operator=( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22414     {
22415       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferDeviceAddressInfo ) );
22416       return *this;
22417     }
22418 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22419     BufferDeviceAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22420     {
22421       pNext = pNext_;
22422       return *this;
22423     }
22424 
setBufferVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22425     BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
22426     {
22427       buffer = buffer_;
22428       return *this;
22429     }
22430 
22431 
operator VkBufferDeviceAddressInfo const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22432     operator VkBufferDeviceAddressInfo const&() const VULKAN_HPP_NOEXCEPT
22433     {
22434       return *reinterpret_cast<const VkBufferDeviceAddressInfo*>( this );
22435     }
22436 
operator VkBufferDeviceAddressInfo&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22437     operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT
22438     {
22439       return *reinterpret_cast<VkBufferDeviceAddressInfo*>( this );
22440     }
22441 
22442 
22443 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22444     auto operator<=>( BufferDeviceAddressInfo const& ) const = default;
22445 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22446     bool operator==( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22447     {
22448       return ( sType == rhs.sType )
22449           && ( pNext == rhs.pNext )
22450           && ( buffer == rhs.buffer );
22451     }
22452 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22453     bool operator!=( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22454     {
22455       return !operator==( rhs );
22456     }
22457 #endif
22458 
22459 
22460 
22461   public:
22462     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo;
22463     const void* pNext = {};
22464     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
22465 
22466   };
22467   static_assert( sizeof( BufferDeviceAddressInfo ) == sizeof( VkBufferDeviceAddressInfo ), "struct and wrapper have different size!" );
22468   static_assert( std::is_standard_layout<BufferDeviceAddressInfo>::value, "struct wrapper is not a standard layout!" );
22469 
22470   template <>
22471   struct CppType<StructureType, StructureType::eBufferDeviceAddressInfo>
22472   {
22473     using Type = BufferDeviceAddressInfo;
22474   };
22475   using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
22476   using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
22477 
22478   struct BufferImageCopy
22479   {
22480 
22481 
22482 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy22483     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
22484     : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
22485     {}
22486 
22487     VULKAN_HPP_CONSTEXPR BufferImageCopy( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22488 
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy22489     BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22490     {
22491       *this = rhs;
22492     }
22493 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22494 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy22495     BufferImageCopy & operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22496     {
22497       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy const *>( &rhs );
22498       return *this;
22499     }
22500 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy22501     BufferImageCopy & operator=( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22502     {
22503       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferImageCopy ) );
22504       return *this;
22505     }
22506 
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy22507     BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
22508     {
22509       bufferOffset = bufferOffset_;
22510       return *this;
22511     }
22512 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy22513     BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
22514     {
22515       bufferRowLength = bufferRowLength_;
22516       return *this;
22517     }
22518 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy22519     BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
22520     {
22521       bufferImageHeight = bufferImageHeight_;
22522       return *this;
22523     }
22524 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy22525     BufferImageCopy & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
22526     {
22527       imageSubresource = imageSubresource_;
22528       return *this;
22529     }
22530 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy22531     BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
22532     {
22533       imageOffset = imageOffset_;
22534       return *this;
22535     }
22536 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy22537     BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
22538     {
22539       imageExtent = imageExtent_;
22540       return *this;
22541     }
22542 
22543 
operator VkBufferImageCopy const&VULKAN_HPP_NAMESPACE::BufferImageCopy22544     operator VkBufferImageCopy const&() const VULKAN_HPP_NOEXCEPT
22545     {
22546       return *reinterpret_cast<const VkBufferImageCopy*>( this );
22547     }
22548 
operator VkBufferImageCopy&VULKAN_HPP_NAMESPACE::BufferImageCopy22549     operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT
22550     {
22551       return *reinterpret_cast<VkBufferImageCopy*>( this );
22552     }
22553 
22554 
22555 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22556     auto operator<=>( BufferImageCopy const& ) const = default;
22557 #else
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy22558     bool operator==( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22559     {
22560       return ( bufferOffset == rhs.bufferOffset )
22561           && ( bufferRowLength == rhs.bufferRowLength )
22562           && ( bufferImageHeight == rhs.bufferImageHeight )
22563           && ( imageSubresource == rhs.imageSubresource )
22564           && ( imageOffset == rhs.imageOffset )
22565           && ( imageExtent == rhs.imageExtent );
22566     }
22567 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy22568     bool operator!=( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22569     {
22570       return !operator==( rhs );
22571     }
22572 #endif
22573 
22574 
22575 
22576   public:
22577     VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
22578     uint32_t bufferRowLength = {};
22579     uint32_t bufferImageHeight = {};
22580     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
22581     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
22582     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
22583 
22584   };
22585   static_assert( sizeof( BufferImageCopy ) == sizeof( VkBufferImageCopy ), "struct and wrapper have different size!" );
22586   static_assert( std::is_standard_layout<BufferImageCopy>::value, "struct wrapper is not a standard layout!" );
22587 
22588   struct BufferImageCopy2KHR
22589   {
22590     static const bool allowDuplicate = false;
22591     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferImageCopy2KHR;
22592 
22593 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferImageCopy2KHRVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22594     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
22595     : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
22596     {}
22597 
22598     VULKAN_HPP_CONSTEXPR BufferImageCopy2KHR( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22599 
BufferImageCopy2KHRVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22600     BufferImageCopy2KHR( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22601     {
22602       *this = rhs;
22603     }
22604 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22605 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22606     BufferImageCopy2KHR & operator=( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22607     {
22608       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR const *>( &rhs );
22609       return *this;
22610     }
22611 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22612     BufferImageCopy2KHR & operator=( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22613     {
22614       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferImageCopy2KHR ) );
22615       return *this;
22616     }
22617 
setPNextVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22618     BufferImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22619     {
22620       pNext = pNext_;
22621       return *this;
22622     }
22623 
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22624     BufferImageCopy2KHR & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
22625     {
22626       bufferOffset = bufferOffset_;
22627       return *this;
22628     }
22629 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22630     BufferImageCopy2KHR & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
22631     {
22632       bufferRowLength = bufferRowLength_;
22633       return *this;
22634     }
22635 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22636     BufferImageCopy2KHR & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
22637     {
22638       bufferImageHeight = bufferImageHeight_;
22639       return *this;
22640     }
22641 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22642     BufferImageCopy2KHR & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
22643     {
22644       imageSubresource = imageSubresource_;
22645       return *this;
22646     }
22647 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22648     BufferImageCopy2KHR & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
22649     {
22650       imageOffset = imageOffset_;
22651       return *this;
22652     }
22653 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22654     BufferImageCopy2KHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
22655     {
22656       imageExtent = imageExtent_;
22657       return *this;
22658     }
22659 
22660 
operator VkBufferImageCopy2KHR const&VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22661     operator VkBufferImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
22662     {
22663       return *reinterpret_cast<const VkBufferImageCopy2KHR*>( this );
22664     }
22665 
operator VkBufferImageCopy2KHR&VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22666     operator VkBufferImageCopy2KHR &() VULKAN_HPP_NOEXCEPT
22667     {
22668       return *reinterpret_cast<VkBufferImageCopy2KHR*>( this );
22669     }
22670 
22671 
22672 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22673     auto operator<=>( BufferImageCopy2KHR const& ) const = default;
22674 #else
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22675     bool operator==( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22676     {
22677       return ( sType == rhs.sType )
22678           && ( pNext == rhs.pNext )
22679           && ( bufferOffset == rhs.bufferOffset )
22680           && ( bufferRowLength == rhs.bufferRowLength )
22681           && ( bufferImageHeight == rhs.bufferImageHeight )
22682           && ( imageSubresource == rhs.imageSubresource )
22683           && ( imageOffset == rhs.imageOffset )
22684           && ( imageExtent == rhs.imageExtent );
22685     }
22686 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22687     bool operator!=( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22688     {
22689       return !operator==( rhs );
22690     }
22691 #endif
22692 
22693 
22694 
22695   public:
22696     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferImageCopy2KHR;
22697     const void* pNext = {};
22698     VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
22699     uint32_t bufferRowLength = {};
22700     uint32_t bufferImageHeight = {};
22701     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
22702     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
22703     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
22704 
22705   };
22706   static_assert( sizeof( BufferImageCopy2KHR ) == sizeof( VkBufferImageCopy2KHR ), "struct and wrapper have different size!" );
22707   static_assert( std::is_standard_layout<BufferImageCopy2KHR>::value, "struct wrapper is not a standard layout!" );
22708 
22709   template <>
22710   struct CppType<StructureType, StructureType::eBufferImageCopy2KHR>
22711   {
22712     using Type = BufferImageCopy2KHR;
22713   };
22714 
22715   struct BufferMemoryBarrier
22716   {
22717     static const bool allowDuplicate = false;
22718     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier;
22719 
22720 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22721     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
22722     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), buffer( buffer_ ), offset( offset_ ), size( size_ )
22723     {}
22724 
22725     VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22726 
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22727     BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
22728     {
22729       *this = rhs;
22730     }
22731 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22732 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22733     BufferMemoryBarrier & operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
22734     {
22735       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier const *>( &rhs );
22736       return *this;
22737     }
22738 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22739     BufferMemoryBarrier & operator=( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
22740     {
22741       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferMemoryBarrier ) );
22742       return *this;
22743     }
22744 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22745     BufferMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22746     {
22747       pNext = pNext_;
22748       return *this;
22749     }
22750 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22751     BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
22752     {
22753       srcAccessMask = srcAccessMask_;
22754       return *this;
22755     }
22756 
setDstAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22757     BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
22758     {
22759       dstAccessMask = dstAccessMask_;
22760       return *this;
22761     }
22762 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22763     BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
22764     {
22765       srcQueueFamilyIndex = srcQueueFamilyIndex_;
22766       return *this;
22767     }
22768 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22769     BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
22770     {
22771       dstQueueFamilyIndex = dstQueueFamilyIndex_;
22772       return *this;
22773     }
22774 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22775     BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
22776     {
22777       buffer = buffer_;
22778       return *this;
22779     }
22780 
setOffsetVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22781     BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
22782     {
22783       offset = offset_;
22784       return *this;
22785     }
22786 
setSizeVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22787     BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22788     {
22789       size = size_;
22790       return *this;
22791     }
22792 
22793 
operator VkBufferMemoryBarrier const&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22794     operator VkBufferMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
22795     {
22796       return *reinterpret_cast<const VkBufferMemoryBarrier*>( this );
22797     }
22798 
operator VkBufferMemoryBarrier&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22799     operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT
22800     {
22801       return *reinterpret_cast<VkBufferMemoryBarrier*>( this );
22802     }
22803 
22804 
22805 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22806     auto operator<=>( BufferMemoryBarrier const& ) const = default;
22807 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22808     bool operator==( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
22809     {
22810       return ( sType == rhs.sType )
22811           && ( pNext == rhs.pNext )
22812           && ( srcAccessMask == rhs.srcAccessMask )
22813           && ( dstAccessMask == rhs.dstAccessMask )
22814           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
22815           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
22816           && ( buffer == rhs.buffer )
22817           && ( offset == rhs.offset )
22818           && ( size == rhs.size );
22819     }
22820 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22821     bool operator!=( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
22822     {
22823       return !operator==( rhs );
22824     }
22825 #endif
22826 
22827 
22828 
22829   public:
22830     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier;
22831     const void* pNext = {};
22832     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
22833     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
22834     uint32_t srcQueueFamilyIndex = {};
22835     uint32_t dstQueueFamilyIndex = {};
22836     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
22837     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
22838     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
22839 
22840   };
22841   static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), "struct and wrapper have different size!" );
22842   static_assert( std::is_standard_layout<BufferMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
22843 
22844   template <>
22845   struct CppType<StructureType, StructureType::eBufferMemoryBarrier>
22846   {
22847     using Type = BufferMemoryBarrier;
22848   };
22849 
22850   struct BufferMemoryRequirementsInfo2
22851   {
22852     static const bool allowDuplicate = false;
22853     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryRequirementsInfo2;
22854 
22855 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222856     VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
22857     : buffer( buffer_ )
22858     {}
22859 
22860     VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22861 
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222862     BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
22863     {
22864       *this = rhs;
22865     }
22866 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22867 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222868     BufferMemoryRequirementsInfo2 & operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
22869     {
22870       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 const *>( &rhs );
22871       return *this;
22872     }
22873 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222874     BufferMemoryRequirementsInfo2 & operator=( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
22875     {
22876       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferMemoryRequirementsInfo2 ) );
22877       return *this;
22878     }
22879 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222880     BufferMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22881     {
22882       pNext = pNext_;
22883       return *this;
22884     }
22885 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222886     BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
22887     {
22888       buffer = buffer_;
22889       return *this;
22890     }
22891 
22892 
operator VkBufferMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222893     operator VkBufferMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
22894     {
22895       return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( this );
22896     }
22897 
operator VkBufferMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222898     operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
22899     {
22900       return *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>( this );
22901     }
22902 
22903 
22904 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22905     auto operator<=>( BufferMemoryRequirementsInfo2 const& ) const = default;
22906 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222907     bool operator==( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
22908     {
22909       return ( sType == rhs.sType )
22910           && ( pNext == rhs.pNext )
22911           && ( buffer == rhs.buffer );
22912     }
22913 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222914     bool operator!=( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
22915     {
22916       return !operator==( rhs );
22917     }
22918 #endif
22919 
22920 
22921 
22922   public:
22923     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2;
22924     const void* pNext = {};
22925     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
22926 
22927   };
22928   static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
22929   static_assert( std::is_standard_layout<BufferMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
22930 
22931   template <>
22932   struct CppType<StructureType, StructureType::eBufferMemoryRequirementsInfo2>
22933   {
22934     using Type = BufferMemoryRequirementsInfo2;
22935   };
22936   using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
22937 
22938   struct BufferOpaqueCaptureAddressCreateInfo
22939   {
22940     static const bool allowDuplicate = false;
22941     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
22942 
22943 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22944     VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT
22945     : opaqueCaptureAddress( opaqueCaptureAddress_ )
22946     {}
22947 
22948     VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22949 
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22950     BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22951     {
22952       *this = rhs;
22953     }
22954 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22955 
operator =VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22956     BufferOpaqueCaptureAddressCreateInfo & operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22957     {
22958       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo const *>( &rhs );
22959       return *this;
22960     }
22961 
operator =VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22962     BufferOpaqueCaptureAddressCreateInfo & operator=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22963     {
22964       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferOpaqueCaptureAddressCreateInfo ) );
22965       return *this;
22966     }
22967 
setPNextVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22968     BufferOpaqueCaptureAddressCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22969     {
22970       pNext = pNext_;
22971       return *this;
22972     }
22973 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22974     BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
22975     {
22976       opaqueCaptureAddress = opaqueCaptureAddress_;
22977       return *this;
22978     }
22979 
22980 
operator VkBufferOpaqueCaptureAddressCreateInfo const&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22981     operator VkBufferOpaqueCaptureAddressCreateInfo const&() const VULKAN_HPP_NOEXCEPT
22982     {
22983       return *reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>( this );
22984     }
22985 
operator VkBufferOpaqueCaptureAddressCreateInfo&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22986     operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT
22987     {
22988       return *reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>( this );
22989     }
22990 
22991 
22992 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22993     auto operator<=>( BufferOpaqueCaptureAddressCreateInfo const& ) const = default;
22994 #else
operator ==VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22995     bool operator==( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22996     {
22997       return ( sType == rhs.sType )
22998           && ( pNext == rhs.pNext )
22999           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
23000     }
23001 
operator !=VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo23002     bool operator!=( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23003     {
23004       return !operator==( rhs );
23005     }
23006 #endif
23007 
23008 
23009 
23010   public:
23011     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
23012     const void* pNext = {};
23013     uint64_t opaqueCaptureAddress = {};
23014 
23015   };
23016   static_assert( sizeof( BufferOpaqueCaptureAddressCreateInfo ) == sizeof( VkBufferOpaqueCaptureAddressCreateInfo ), "struct and wrapper have different size!" );
23017   static_assert( std::is_standard_layout<BufferOpaqueCaptureAddressCreateInfo>::value, "struct wrapper is not a standard layout!" );
23018 
23019   template <>
23020   struct CppType<StructureType, StructureType::eBufferOpaqueCaptureAddressCreateInfo>
23021   {
23022     using Type = BufferOpaqueCaptureAddressCreateInfo;
23023   };
23024   using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
23025 
23026   struct BufferViewCreateInfo
23027   {
23028     static const bool allowDuplicate = false;
23029     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferViewCreateInfo;
23030 
23031 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23032     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
23033     : flags( flags_ ), buffer( buffer_ ), format( format_ ), offset( offset_ ), range( range_ )
23034     {}
23035 
23036     VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23037 
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23038     BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23039     {
23040       *this = rhs;
23041     }
23042 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23043 
operator =VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23044     BufferViewCreateInfo & operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23045     {
23046       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const *>( &rhs );
23047       return *this;
23048     }
23049 
operator =VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23050     BufferViewCreateInfo & operator=( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23051     {
23052       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferViewCreateInfo ) );
23053       return *this;
23054     }
23055 
setPNextVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23056     BufferViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23057     {
23058       pNext = pNext_;
23059       return *this;
23060     }
23061 
setFlagsVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23062     BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
23063     {
23064       flags = flags_;
23065       return *this;
23066     }
23067 
setBufferVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23068     BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
23069     {
23070       buffer = buffer_;
23071       return *this;
23072     }
23073 
setFormatVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23074     BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
23075     {
23076       format = format_;
23077       return *this;
23078     }
23079 
setOffsetVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23080     BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
23081     {
23082       offset = offset_;
23083       return *this;
23084     }
23085 
setRangeVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23086     BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
23087     {
23088       range = range_;
23089       return *this;
23090     }
23091 
23092 
operator VkBufferViewCreateInfo const&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23093     operator VkBufferViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
23094     {
23095       return *reinterpret_cast<const VkBufferViewCreateInfo*>( this );
23096     }
23097 
operator VkBufferViewCreateInfo&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23098     operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT
23099     {
23100       return *reinterpret_cast<VkBufferViewCreateInfo*>( this );
23101     }
23102 
23103 
23104 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23105     auto operator<=>( BufferViewCreateInfo const& ) const = default;
23106 #else
operator ==VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23107     bool operator==( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23108     {
23109       return ( sType == rhs.sType )
23110           && ( pNext == rhs.pNext )
23111           && ( flags == rhs.flags )
23112           && ( buffer == rhs.buffer )
23113           && ( format == rhs.format )
23114           && ( offset == rhs.offset )
23115           && ( range == rhs.range );
23116     }
23117 
operator !=VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23118     bool operator!=( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23119     {
23120       return !operator==( rhs );
23121     }
23122 #endif
23123 
23124 
23125 
23126   public:
23127     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo;
23128     const void* pNext = {};
23129     VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {};
23130     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
23131     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
23132     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
23133     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
23134 
23135   };
23136   static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "struct and wrapper have different size!" );
23137   static_assert( std::is_standard_layout<BufferViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
23138 
23139   template <>
23140   struct CppType<StructureType, StructureType::eBufferViewCreateInfo>
23141   {
23142     using Type = BufferViewCreateInfo;
23143   };
23144 
23145   struct CalibratedTimestampInfoEXT
23146   {
23147     static const bool allowDuplicate = false;
23148     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCalibratedTimestampInfoEXT;
23149 
23150 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23151     VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT(VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice) VULKAN_HPP_NOEXCEPT
23152     : timeDomain( timeDomain_ )
23153     {}
23154 
23155     VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23156 
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23157     CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23158     {
23159       *this = rhs;
23160     }
23161 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23162 
operator =VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23163     CalibratedTimestampInfoEXT & operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23164     {
23165       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const *>( &rhs );
23166       return *this;
23167     }
23168 
operator =VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23169     CalibratedTimestampInfoEXT & operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23170     {
23171       memcpy( static_cast<void *>( this ), &rhs, sizeof( CalibratedTimestampInfoEXT ) );
23172       return *this;
23173     }
23174 
setPNextVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23175     CalibratedTimestampInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23176     {
23177       pNext = pNext_;
23178       return *this;
23179     }
23180 
setTimeDomainVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23181     CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT
23182     {
23183       timeDomain = timeDomain_;
23184       return *this;
23185     }
23186 
23187 
operator VkCalibratedTimestampInfoEXT const&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23188     operator VkCalibratedTimestampInfoEXT const&() const VULKAN_HPP_NOEXCEPT
23189     {
23190       return *reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( this );
23191     }
23192 
operator VkCalibratedTimestampInfoEXT&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23193     operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT
23194     {
23195       return *reinterpret_cast<VkCalibratedTimestampInfoEXT*>( this );
23196     }
23197 
23198 
23199 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23200     auto operator<=>( CalibratedTimestampInfoEXT const& ) const = default;
23201 #else
operator ==VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23202     bool operator==( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
23203     {
23204       return ( sType == rhs.sType )
23205           && ( pNext == rhs.pNext )
23206           && ( timeDomain == rhs.timeDomain );
23207     }
23208 
operator !=VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23209     bool operator!=( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
23210     {
23211       return !operator==( rhs );
23212     }
23213 #endif
23214 
23215 
23216 
23217   public:
23218     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT;
23219     const void* pNext = {};
23220     VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice;
23221 
23222   };
23223   static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), "struct and wrapper have different size!" );
23224   static_assert( std::is_standard_layout<CalibratedTimestampInfoEXT>::value, "struct wrapper is not a standard layout!" );
23225 
23226   template <>
23227   struct CppType<StructureType, StructureType::eCalibratedTimestampInfoEXT>
23228   {
23229     using Type = CalibratedTimestampInfoEXT;
23230   };
23231 
23232   struct CheckpointDataNV
23233   {
23234     static const bool allowDuplicate = false;
23235     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointDataNV;
23236 
23237 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV23238     VULKAN_HPP_CONSTEXPR CheckpointDataNV(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe, void* pCheckpointMarker_ = {}) VULKAN_HPP_NOEXCEPT
23239     : stage( stage_ ), pCheckpointMarker( pCheckpointMarker_ )
23240     {}
23241 
23242     VULKAN_HPP_CONSTEXPR CheckpointDataNV( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23243 
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV23244     CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
23245     {
23246       *this = rhs;
23247     }
23248 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23249 
operator =VULKAN_HPP_NAMESPACE::CheckpointDataNV23250     CheckpointDataNV & operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
23251     {
23252       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointDataNV const *>( &rhs );
23253       return *this;
23254     }
23255 
operator =VULKAN_HPP_NAMESPACE::CheckpointDataNV23256     CheckpointDataNV & operator=( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
23257     {
23258       memcpy( static_cast<void *>( this ), &rhs, sizeof( CheckpointDataNV ) );
23259       return *this;
23260     }
23261 
23262 
operator VkCheckpointDataNV const&VULKAN_HPP_NAMESPACE::CheckpointDataNV23263     operator VkCheckpointDataNV const&() const VULKAN_HPP_NOEXCEPT
23264     {
23265       return *reinterpret_cast<const VkCheckpointDataNV*>( this );
23266     }
23267 
operator VkCheckpointDataNV&VULKAN_HPP_NAMESPACE::CheckpointDataNV23268     operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT
23269     {
23270       return *reinterpret_cast<VkCheckpointDataNV*>( this );
23271     }
23272 
23273 
23274 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23275     auto operator<=>( CheckpointDataNV const& ) const = default;
23276 #else
operator ==VULKAN_HPP_NAMESPACE::CheckpointDataNV23277     bool operator==( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23278     {
23279       return ( sType == rhs.sType )
23280           && ( pNext == rhs.pNext )
23281           && ( stage == rhs.stage )
23282           && ( pCheckpointMarker == rhs.pCheckpointMarker );
23283     }
23284 
operator !=VULKAN_HPP_NAMESPACE::CheckpointDataNV23285     bool operator!=( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23286     {
23287       return !operator==( rhs );
23288     }
23289 #endif
23290 
23291 
23292 
23293   public:
23294     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV;
23295     void* pNext = {};
23296     VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe;
23297     void* pCheckpointMarker = {};
23298 
23299   };
23300   static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "struct and wrapper have different size!" );
23301   static_assert( std::is_standard_layout<CheckpointDataNV>::value, "struct wrapper is not a standard layout!" );
23302 
23303   template <>
23304   struct CppType<StructureType, StructureType::eCheckpointDataNV>
23305   {
23306     using Type = CheckpointDataNV;
23307   };
23308 
23309   union ClearColorValue
23310   {
ClearColorValue(VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs)23311     ClearColorValue( VULKAN_HPP_NAMESPACE::ClearColorValue const& rhs ) VULKAN_HPP_NOEXCEPT
23312     {
23313       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) );
23314     }
23315 
ClearColorValue(const std::array<float,4> & float32_={} )23316     ClearColorValue( const std::array<float,4>& float32_ = {} )
23317       : float32( float32_ )
23318     {}
23319 
ClearColorValue(const std::array<int32_t,4> & int32_)23320     ClearColorValue( const std::array<int32_t,4>& int32_ )
23321       : int32( int32_ )
23322     {}
23323 
ClearColorValue(const std::array<uint32_t,4> & uint32_)23324     ClearColorValue( const std::array<uint32_t,4>& uint32_ )
23325       : uint32( uint32_ )
23326     {}
23327 
setFloat32(std::array<float,4> float32_)23328     ClearColorValue & setFloat32( std::array<float,4> float32_ ) VULKAN_HPP_NOEXCEPT
23329     {
23330       float32 = float32_;
23331       return *this;
23332     }
23333 
setInt32(std::array<int32_t,4> int32_)23334     ClearColorValue & setInt32( std::array<int32_t,4> int32_ ) VULKAN_HPP_NOEXCEPT
23335     {
23336       int32 = int32_;
23337       return *this;
23338     }
23339 
setUint32(std::array<uint32_t,4> uint32_)23340     ClearColorValue & setUint32( std::array<uint32_t,4> uint32_ ) VULKAN_HPP_NOEXCEPT
23341     {
23342       uint32 = uint32_;
23343       return *this;
23344     }
23345 
operator =(VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs)23346     VULKAN_HPP_NAMESPACE::ClearColorValue & operator=( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT
23347     {
23348       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) );
23349       return *this;
23350     }
23351 
operator VkClearColorValue const&() const23352     operator VkClearColorValue const&() const
23353     {
23354       return *reinterpret_cast<const VkClearColorValue*>(this);
23355     }
23356 
operator VkClearColorValue&()23357     operator VkClearColorValue &()
23358     {
23359       return *reinterpret_cast<VkClearColorValue*>(this);
23360     }
23361 
23362     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> float32;
23363     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, 4> int32;
23364     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 4> uint32;
23365   };
23366 
23367   struct ClearDepthStencilValue
23368   {
23369 
23370 
23371 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23372     VULKAN_HPP_CONSTEXPR ClearDepthStencilValue(float depth_ = {}, uint32_t stencil_ = {}) VULKAN_HPP_NOEXCEPT
23373     : depth( depth_ ), stencil( stencil_ )
23374     {}
23375 
23376     VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23377 
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23378     ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
23379     {
23380       *this = rhs;
23381     }
23382 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23383 
operator =VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23384     ClearDepthStencilValue & operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
23385     {
23386       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const *>( &rhs );
23387       return *this;
23388     }
23389 
operator =VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23390     ClearDepthStencilValue & operator=( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
23391     {
23392       memcpy( static_cast<void *>( this ), &rhs, sizeof( ClearDepthStencilValue ) );
23393       return *this;
23394     }
23395 
setDepthVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23396     ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT
23397     {
23398       depth = depth_;
23399       return *this;
23400     }
23401 
setStencilVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23402     ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT
23403     {
23404       stencil = stencil_;
23405       return *this;
23406     }
23407 
23408 
operator VkClearDepthStencilValue const&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23409     operator VkClearDepthStencilValue const&() const VULKAN_HPP_NOEXCEPT
23410     {
23411       return *reinterpret_cast<const VkClearDepthStencilValue*>( this );
23412     }
23413 
operator VkClearDepthStencilValue&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23414     operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT
23415     {
23416       return *reinterpret_cast<VkClearDepthStencilValue*>( this );
23417     }
23418 
23419 
23420 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23421     auto operator<=>( ClearDepthStencilValue const& ) const = default;
23422 #else
operator ==VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23423     bool operator==( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT
23424     {
23425       return ( depth == rhs.depth )
23426           && ( stencil == rhs.stencil );
23427     }
23428 
operator !=VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23429     bool operator!=( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT
23430     {
23431       return !operator==( rhs );
23432     }
23433 #endif
23434 
23435 
23436 
23437   public:
23438     float depth = {};
23439     uint32_t stencil = {};
23440 
23441   };
23442   static_assert( sizeof( ClearDepthStencilValue ) == sizeof( VkClearDepthStencilValue ), "struct and wrapper have different size!" );
23443   static_assert( std::is_standard_layout<ClearDepthStencilValue>::value, "struct wrapper is not a standard layout!" );
23444 
23445   union ClearValue
23446   {
ClearValue(VULKAN_HPP_NAMESPACE::ClearValue const & rhs)23447     ClearValue( VULKAN_HPP_NAMESPACE::ClearValue const& rhs ) VULKAN_HPP_NOEXCEPT
23448     {
23449       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) );
23450     }
23451 
ClearValue(VULKAN_HPP_NAMESPACE::ClearColorValue color_={} )23452     ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} )
23453       : color( color_ )
23454     {}
23455 
ClearValue(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_)23456     ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ )
23457       : depthStencil( depthStencil_ )
23458     {}
23459 
setColor(VULKAN_HPP_NAMESPACE::ClearColorValue const & color_)23460     ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT
23461     {
23462       color = color_;
23463       return *this;
23464     }
23465 
setDepthStencil(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_)23466     ClearValue & setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_ ) VULKAN_HPP_NOEXCEPT
23467     {
23468       depthStencil = depthStencil_;
23469       return *this;
23470     }
23471 
operator =(VULKAN_HPP_NAMESPACE::ClearValue const & rhs)23472     VULKAN_HPP_NAMESPACE::ClearValue & operator=( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT
23473     {
23474       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) );
23475       return *this;
23476     }
23477 
operator VkClearValue const&() const23478     operator VkClearValue const&() const
23479     {
23480       return *reinterpret_cast<const VkClearValue*>(this);
23481     }
23482 
operator VkClearValue&()23483     operator VkClearValue &()
23484     {
23485       return *reinterpret_cast<VkClearValue*>(this);
23486     }
23487 
23488 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
23489     VULKAN_HPP_NAMESPACE::ClearColorValue color;
23490     VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil;
23491 #else
23492     VkClearColorValue color;
23493     VkClearDepthStencilValue depthStencil;
23494 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
23495   };
23496 
23497   struct ClearAttachment
23498   {
23499 
23500 
23501 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23502     ClearAttachment(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t colorAttachment_ = {}, VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {}) VULKAN_HPP_NOEXCEPT
23503     : aspectMask( aspectMask_ ), colorAttachment( colorAttachment_ ), clearValue( clearValue_ )
23504     {}
23505 
23506     ClearAttachment( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23507 
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23508     ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
23509     {
23510       *this = rhs;
23511     }
23512 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23513 
operator =VULKAN_HPP_NAMESPACE::ClearAttachment23514     ClearAttachment & operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
23515     {
23516       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearAttachment const *>( &rhs );
23517       return *this;
23518     }
23519 
operator =VULKAN_HPP_NAMESPACE::ClearAttachment23520     ClearAttachment & operator=( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
23521     {
23522       memcpy( static_cast<void *>( this ), &rhs, sizeof( ClearAttachment ) );
23523       return *this;
23524     }
23525 
setAspectMaskVULKAN_HPP_NAMESPACE::ClearAttachment23526     ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
23527     {
23528       aspectMask = aspectMask_;
23529       return *this;
23530     }
23531 
setColorAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23532     ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT
23533     {
23534       colorAttachment = colorAttachment_;
23535       return *this;
23536     }
23537 
setClearValueVULKAN_HPP_NAMESPACE::ClearAttachment23538     ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT
23539     {
23540       clearValue = clearValue_;
23541       return *this;
23542     }
23543 
23544 
operator VkClearAttachment const&VULKAN_HPP_NAMESPACE::ClearAttachment23545     operator VkClearAttachment const&() const VULKAN_HPP_NOEXCEPT
23546     {
23547       return *reinterpret_cast<const VkClearAttachment*>( this );
23548     }
23549 
operator VkClearAttachment&VULKAN_HPP_NAMESPACE::ClearAttachment23550     operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT
23551     {
23552       return *reinterpret_cast<VkClearAttachment*>( this );
23553     }
23554 
23555 
23556 
23557 
23558   public:
23559     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
23560     uint32_t colorAttachment = {};
23561     VULKAN_HPP_NAMESPACE::ClearValue clearValue = {};
23562 
23563   };
23564   static_assert( sizeof( ClearAttachment ) == sizeof( VkClearAttachment ), "struct and wrapper have different size!" );
23565   static_assert( std::is_standard_layout<ClearAttachment>::value, "struct wrapper is not a standard layout!" );
23566 
23567   struct ClearRect
23568   {
23569 
23570 
23571 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearRectVULKAN_HPP_NAMESPACE::ClearRect23572     VULKAN_HPP_CONSTEXPR ClearRect(VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
23573     : rect( rect_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
23574     {}
23575 
23576     VULKAN_HPP_CONSTEXPR ClearRect( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23577 
ClearRectVULKAN_HPP_NAMESPACE::ClearRect23578     ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
23579     {
23580       *this = rhs;
23581     }
23582 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23583 
operator =VULKAN_HPP_NAMESPACE::ClearRect23584     ClearRect & operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
23585     {
23586       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearRect const *>( &rhs );
23587       return *this;
23588     }
23589 
operator =VULKAN_HPP_NAMESPACE::ClearRect23590     ClearRect & operator=( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
23591     {
23592       memcpy( static_cast<void *>( this ), &rhs, sizeof( ClearRect ) );
23593       return *this;
23594     }
23595 
setRectVULKAN_HPP_NAMESPACE::ClearRect23596     ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT
23597     {
23598       rect = rect_;
23599       return *this;
23600     }
23601 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ClearRect23602     ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
23603     {
23604       baseArrayLayer = baseArrayLayer_;
23605       return *this;
23606     }
23607 
setLayerCountVULKAN_HPP_NAMESPACE::ClearRect23608     ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
23609     {
23610       layerCount = layerCount_;
23611       return *this;
23612     }
23613 
23614 
operator VkClearRect const&VULKAN_HPP_NAMESPACE::ClearRect23615     operator VkClearRect const&() const VULKAN_HPP_NOEXCEPT
23616     {
23617       return *reinterpret_cast<const VkClearRect*>( this );
23618     }
23619 
operator VkClearRect&VULKAN_HPP_NAMESPACE::ClearRect23620     operator VkClearRect &() VULKAN_HPP_NOEXCEPT
23621     {
23622       return *reinterpret_cast<VkClearRect*>( this );
23623     }
23624 
23625 
23626 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23627     auto operator<=>( ClearRect const& ) const = default;
23628 #else
operator ==VULKAN_HPP_NAMESPACE::ClearRect23629     bool operator==( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT
23630     {
23631       return ( rect == rhs.rect )
23632           && ( baseArrayLayer == rhs.baseArrayLayer )
23633           && ( layerCount == rhs.layerCount );
23634     }
23635 
operator !=VULKAN_HPP_NAMESPACE::ClearRect23636     bool operator!=( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT
23637     {
23638       return !operator==( rhs );
23639     }
23640 #endif
23641 
23642 
23643 
23644   public:
23645     VULKAN_HPP_NAMESPACE::Rect2D rect = {};
23646     uint32_t baseArrayLayer = {};
23647     uint32_t layerCount = {};
23648 
23649   };
23650   static_assert( sizeof( ClearRect ) == sizeof( VkClearRect ), "struct and wrapper have different size!" );
23651   static_assert( std::is_standard_layout<ClearRect>::value, "struct wrapper is not a standard layout!" );
23652 
23653   struct CoarseSampleLocationNV
23654   {
23655 
23656 
23657 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23658     VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV(uint32_t pixelX_ = {}, uint32_t pixelY_ = {}, uint32_t sample_ = {}) VULKAN_HPP_NOEXCEPT
23659     : pixelX( pixelX_ ), pixelY( pixelY_ ), sample( sample_ )
23660     {}
23661 
23662     VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23663 
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23664     CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
23665     {
23666       *this = rhs;
23667     }
23668 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23669 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23670     CoarseSampleLocationNV & operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
23671     {
23672       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV const *>( &rhs );
23673       return *this;
23674     }
23675 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23676     CoarseSampleLocationNV & operator=( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
23677     {
23678       memcpy( static_cast<void *>( this ), &rhs, sizeof( CoarseSampleLocationNV ) );
23679       return *this;
23680     }
23681 
setPixelXVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23682     CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT
23683     {
23684       pixelX = pixelX_;
23685       return *this;
23686     }
23687 
setPixelYVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23688     CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT
23689     {
23690       pixelY = pixelY_;
23691       return *this;
23692     }
23693 
setSampleVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23694     CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT
23695     {
23696       sample = sample_;
23697       return *this;
23698     }
23699 
23700 
operator VkCoarseSampleLocationNV const&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23701     operator VkCoarseSampleLocationNV const&() const VULKAN_HPP_NOEXCEPT
23702     {
23703       return *reinterpret_cast<const VkCoarseSampleLocationNV*>( this );
23704     }
23705 
operator VkCoarseSampleLocationNV&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23706     operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT
23707     {
23708       return *reinterpret_cast<VkCoarseSampleLocationNV*>( this );
23709     }
23710 
23711 
23712 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23713     auto operator<=>( CoarseSampleLocationNV const& ) const = default;
23714 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23715     bool operator==( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23716     {
23717       return ( pixelX == rhs.pixelX )
23718           && ( pixelY == rhs.pixelY )
23719           && ( sample == rhs.sample );
23720     }
23721 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23722     bool operator!=( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23723     {
23724       return !operator==( rhs );
23725     }
23726 #endif
23727 
23728 
23729 
23730   public:
23731     uint32_t pixelX = {};
23732     uint32_t pixelY = {};
23733     uint32_t sample = {};
23734 
23735   };
23736   static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), "struct and wrapper have different size!" );
23737   static_assert( std::is_standard_layout<CoarseSampleLocationNV>::value, "struct wrapper is not a standard layout!" );
23738 
23739   struct CoarseSampleOrderCustomNV
23740   {
23741 
23742 
23743 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23744     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
23745     : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( sampleLocationCount_ ), pSampleLocations( pSampleLocations_ )
23746     {}
23747 
23748     VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23749 
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23750     CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
23751     {
23752       *this = rhs;
23753     }
23754 
23755 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23756     CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_, uint32_t sampleCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ )
23757     : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( static_cast<uint32_t>( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() )
23758     {}
23759 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
23760 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23761 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23762     CoarseSampleOrderCustomNV & operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
23763     {
23764       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV const *>( &rhs );
23765       return *this;
23766     }
23767 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23768     CoarseSampleOrderCustomNV & operator=( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
23769     {
23770       memcpy( static_cast<void *>( this ), &rhs, sizeof( CoarseSampleOrderCustomNV ) );
23771       return *this;
23772     }
23773 
setShadingRateVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23774     CoarseSampleOrderCustomNV & setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
23775     {
23776       shadingRate = shadingRate_;
23777       return *this;
23778     }
23779 
setSampleCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23780     CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT
23781     {
23782       sampleCount = sampleCount_;
23783       return *this;
23784     }
23785 
setSampleLocationCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23786     CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT
23787     {
23788       sampleLocationCount = sampleLocationCount_;
23789       return *this;
23790     }
23791 
setPSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23792     CoarseSampleOrderCustomNV & setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
23793     {
23794       pSampleLocations = pSampleLocations_;
23795       return *this;
23796     }
23797 
23798 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23799     CoarseSampleOrderCustomNV & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
23800     {
23801       sampleLocationCount = static_cast<uint32_t>( sampleLocations_.size() );
23802       pSampleLocations = sampleLocations_.data();
23803       return *this;
23804     }
23805 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
23806 
23807 
operator VkCoarseSampleOrderCustomNV const&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23808     operator VkCoarseSampleOrderCustomNV const&() const VULKAN_HPP_NOEXCEPT
23809     {
23810       return *reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( this );
23811     }
23812 
operator VkCoarseSampleOrderCustomNV&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23813     operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT
23814     {
23815       return *reinterpret_cast<VkCoarseSampleOrderCustomNV*>( this );
23816     }
23817 
23818 
23819 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23820     auto operator<=>( CoarseSampleOrderCustomNV const& ) const = default;
23821 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23822     bool operator==( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23823     {
23824       return ( shadingRate == rhs.shadingRate )
23825           && ( sampleCount == rhs.sampleCount )
23826           && ( sampleLocationCount == rhs.sampleLocationCount )
23827           && ( pSampleLocations == rhs.pSampleLocations );
23828     }
23829 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23830     bool operator!=( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23831     {
23832       return !operator==( rhs );
23833     }
23834 #endif
23835 
23836 
23837 
23838   public:
23839     VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations;
23840     uint32_t sampleCount = {};
23841     uint32_t sampleLocationCount = {};
23842     const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations = {};
23843 
23844   };
23845   static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), "struct and wrapper have different size!" );
23846   static_assert( std::is_standard_layout<CoarseSampleOrderCustomNV>::value, "struct wrapper is not a standard layout!" );
23847 
23848   class CommandPool
23849   {
23850   public:
23851     using CType = VkCommandPool;
23852 
23853     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool;
23854     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool;
23855 
23856   public:
CommandPool()23857     VULKAN_HPP_CONSTEXPR CommandPool() VULKAN_HPP_NOEXCEPT
23858       : m_commandPool(VK_NULL_HANDLE)
23859     {}
23860 
CommandPool(std::nullptr_t)23861     VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
23862       : m_commandPool(VK_NULL_HANDLE)
23863     {}
23864 
CommandPool(VkCommandPool commandPool)23865     VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool ) VULKAN_HPP_NOEXCEPT
23866       : m_commandPool( commandPool )
23867     {}
23868 
23869 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandPool commandPool)23870     CommandPool & operator=(VkCommandPool commandPool) VULKAN_HPP_NOEXCEPT
23871     {
23872       m_commandPool = commandPool;
23873       return *this;
23874     }
23875 #endif
23876 
operator =(std::nullptr_t)23877     CommandPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
23878     {
23879       m_commandPool = VK_NULL_HANDLE;
23880       return *this;
23881     }
23882 
23883 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23884     auto operator<=>( CommandPool const& ) const = default;
23885 #else
operator ==(CommandPool const & rhs) const23886     bool operator==( CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
23887     {
23888       return m_commandPool == rhs.m_commandPool;
23889     }
23890 
operator !=(CommandPool const & rhs) const23891     bool operator!=(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
23892     {
23893       return m_commandPool != rhs.m_commandPool;
23894     }
23895 
operator <(CommandPool const & rhs) const23896     bool operator<(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
23897     {
23898       return m_commandPool < rhs.m_commandPool;
23899     }
23900 #endif
23901 
operator VkCommandPool() const23902     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandPool() const VULKAN_HPP_NOEXCEPT
23903     {
23904       return m_commandPool;
23905     }
23906 
operator bool() const23907     explicit operator bool() const VULKAN_HPP_NOEXCEPT
23908     {
23909       return m_commandPool != VK_NULL_HANDLE;
23910     }
23911 
operator !() const23912     bool operator!() const VULKAN_HPP_NOEXCEPT
23913     {
23914       return m_commandPool == VK_NULL_HANDLE;
23915     }
23916 
23917   private:
23918     VkCommandPool m_commandPool;
23919   };
23920   static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandPool ) == sizeof( VkCommandPool ), "handle and wrapper have different size!" );
23921 
23922   template <>
23923   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eCommandPool>
23924   {
23925     using type = VULKAN_HPP_NAMESPACE::CommandPool;
23926   };
23927 
23928   template <>
23929   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool>
23930   {
23931     using Type = VULKAN_HPP_NAMESPACE::CommandPool;
23932   };
23933 
23934 
23935   template <>
23936   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool>
23937   {
23938     using Type = VULKAN_HPP_NAMESPACE::CommandPool;
23939   };
23940 
23941 
23942   template <>
23943   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CommandPool>
23944   {
23945     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
23946   };
23947 
23948   struct CommandBufferAllocateInfo
23949   {
23950     static const bool allowDuplicate = false;
23951     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferAllocateInfo;
23952 
23953 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23954     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
23955     : commandPool( commandPool_ ), level( level_ ), commandBufferCount( commandBufferCount_ )
23956     {}
23957 
23958     VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23959 
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23960     CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23961     {
23962       *this = rhs;
23963     }
23964 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23965 
operator =VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23966     CommandBufferAllocateInfo & operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23967     {
23968       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const *>( &rhs );
23969       return *this;
23970     }
23971 
operator =VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23972     CommandBufferAllocateInfo & operator=( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23973     {
23974       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferAllocateInfo ) );
23975       return *this;
23976     }
23977 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23978     CommandBufferAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23979     {
23980       pNext = pNext_;
23981       return *this;
23982     }
23983 
setCommandPoolVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23984     CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT
23985     {
23986       commandPool = commandPool_;
23987       return *this;
23988     }
23989 
setLevelVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23990     CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT
23991     {
23992       level = level_;
23993       return *this;
23994     }
23995 
setCommandBufferCountVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23996     CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
23997     {
23998       commandBufferCount = commandBufferCount_;
23999       return *this;
24000     }
24001 
24002 
operator VkCommandBufferAllocateInfo const&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24003     operator VkCommandBufferAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
24004     {
24005       return *reinterpret_cast<const VkCommandBufferAllocateInfo*>( this );
24006     }
24007 
operator VkCommandBufferAllocateInfo&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24008     operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT
24009     {
24010       return *reinterpret_cast<VkCommandBufferAllocateInfo*>( this );
24011     }
24012 
24013 
24014 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24015     auto operator<=>( CommandBufferAllocateInfo const& ) const = default;
24016 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24017     bool operator==( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24018     {
24019       return ( sType == rhs.sType )
24020           && ( pNext == rhs.pNext )
24021           && ( commandPool == rhs.commandPool )
24022           && ( level == rhs.level )
24023           && ( commandBufferCount == rhs.commandBufferCount );
24024     }
24025 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24026     bool operator!=( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24027     {
24028       return !operator==( rhs );
24029     }
24030 #endif
24031 
24032 
24033 
24034   public:
24035     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo;
24036     const void* pNext = {};
24037     VULKAN_HPP_NAMESPACE::CommandPool commandPool = {};
24038     VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary;
24039     uint32_t commandBufferCount = {};
24040 
24041   };
24042   static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), "struct and wrapper have different size!" );
24043   static_assert( std::is_standard_layout<CommandBufferAllocateInfo>::value, "struct wrapper is not a standard layout!" );
24044 
24045   template <>
24046   struct CppType<StructureType, StructureType::eCommandBufferAllocateInfo>
24047   {
24048     using Type = CommandBufferAllocateInfo;
24049   };
24050 
24051   class RenderPass
24052   {
24053   public:
24054     using CType = VkRenderPass;
24055 
24056     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass;
24057     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass;
24058 
24059   public:
RenderPass()24060     VULKAN_HPP_CONSTEXPR RenderPass() VULKAN_HPP_NOEXCEPT
24061       : m_renderPass(VK_NULL_HANDLE)
24062     {}
24063 
RenderPass(std::nullptr_t)24064     VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24065       : m_renderPass(VK_NULL_HANDLE)
24066     {}
24067 
RenderPass(VkRenderPass renderPass)24068     VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass ) VULKAN_HPP_NOEXCEPT
24069       : m_renderPass( renderPass )
24070     {}
24071 
24072 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkRenderPass renderPass)24073     RenderPass & operator=(VkRenderPass renderPass) VULKAN_HPP_NOEXCEPT
24074     {
24075       m_renderPass = renderPass;
24076       return *this;
24077     }
24078 #endif
24079 
operator =(std::nullptr_t)24080     RenderPass & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24081     {
24082       m_renderPass = VK_NULL_HANDLE;
24083       return *this;
24084     }
24085 
24086 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24087     auto operator<=>( RenderPass const& ) const = default;
24088 #else
operator ==(RenderPass const & rhs) const24089     bool operator==( RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
24090     {
24091       return m_renderPass == rhs.m_renderPass;
24092     }
24093 
operator !=(RenderPass const & rhs) const24094     bool operator!=(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
24095     {
24096       return m_renderPass != rhs.m_renderPass;
24097     }
24098 
operator <(RenderPass const & rhs) const24099     bool operator<(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
24100     {
24101       return m_renderPass < rhs.m_renderPass;
24102     }
24103 #endif
24104 
operator VkRenderPass() const24105     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const VULKAN_HPP_NOEXCEPT
24106     {
24107       return m_renderPass;
24108     }
24109 
operator bool() const24110     explicit operator bool() const VULKAN_HPP_NOEXCEPT
24111     {
24112       return m_renderPass != VK_NULL_HANDLE;
24113     }
24114 
operator !() const24115     bool operator!() const VULKAN_HPP_NOEXCEPT
24116     {
24117       return m_renderPass == VK_NULL_HANDLE;
24118     }
24119 
24120   private:
24121     VkRenderPass m_renderPass;
24122   };
24123   static_assert( sizeof( VULKAN_HPP_NAMESPACE::RenderPass ) == sizeof( VkRenderPass ), "handle and wrapper have different size!" );
24124 
24125   template <>
24126   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eRenderPass>
24127   {
24128     using type = VULKAN_HPP_NAMESPACE::RenderPass;
24129   };
24130 
24131   template <>
24132   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass>
24133   {
24134     using Type = VULKAN_HPP_NAMESPACE::RenderPass;
24135   };
24136 
24137 
24138   template <>
24139   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass>
24140   {
24141     using Type = VULKAN_HPP_NAMESPACE::RenderPass;
24142   };
24143 
24144 
24145   template <>
24146   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::RenderPass>
24147   {
24148     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
24149   };
24150 
24151   class Framebuffer
24152   {
24153   public:
24154     using CType = VkFramebuffer;
24155 
24156     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer;
24157     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer;
24158 
24159   public:
Framebuffer()24160     VULKAN_HPP_CONSTEXPR Framebuffer() VULKAN_HPP_NOEXCEPT
24161       : m_framebuffer(VK_NULL_HANDLE)
24162     {}
24163 
Framebuffer(std::nullptr_t)24164     VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24165       : m_framebuffer(VK_NULL_HANDLE)
24166     {}
24167 
Framebuffer(VkFramebuffer framebuffer)24168     VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer ) VULKAN_HPP_NOEXCEPT
24169       : m_framebuffer( framebuffer )
24170     {}
24171 
24172 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFramebuffer framebuffer)24173     Framebuffer & operator=(VkFramebuffer framebuffer) VULKAN_HPP_NOEXCEPT
24174     {
24175       m_framebuffer = framebuffer;
24176       return *this;
24177     }
24178 #endif
24179 
operator =(std::nullptr_t)24180     Framebuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24181     {
24182       m_framebuffer = VK_NULL_HANDLE;
24183       return *this;
24184     }
24185 
24186 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24187     auto operator<=>( Framebuffer const& ) const = default;
24188 #else
operator ==(Framebuffer const & rhs) const24189     bool operator==( Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
24190     {
24191       return m_framebuffer == rhs.m_framebuffer;
24192     }
24193 
operator !=(Framebuffer const & rhs) const24194     bool operator!=(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
24195     {
24196       return m_framebuffer != rhs.m_framebuffer;
24197     }
24198 
operator <(Framebuffer const & rhs) const24199     bool operator<(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
24200     {
24201       return m_framebuffer < rhs.m_framebuffer;
24202     }
24203 #endif
24204 
operator VkFramebuffer() const24205     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFramebuffer() const VULKAN_HPP_NOEXCEPT
24206     {
24207       return m_framebuffer;
24208     }
24209 
operator bool() const24210     explicit operator bool() const VULKAN_HPP_NOEXCEPT
24211     {
24212       return m_framebuffer != VK_NULL_HANDLE;
24213     }
24214 
operator !() const24215     bool operator!() const VULKAN_HPP_NOEXCEPT
24216     {
24217       return m_framebuffer == VK_NULL_HANDLE;
24218     }
24219 
24220   private:
24221     VkFramebuffer m_framebuffer;
24222   };
24223   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Framebuffer ) == sizeof( VkFramebuffer ), "handle and wrapper have different size!" );
24224 
24225   template <>
24226   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eFramebuffer>
24227   {
24228     using type = VULKAN_HPP_NAMESPACE::Framebuffer;
24229   };
24230 
24231   template <>
24232   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer>
24233   {
24234     using Type = VULKAN_HPP_NAMESPACE::Framebuffer;
24235   };
24236 
24237 
24238   template <>
24239   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer>
24240   {
24241     using Type = VULKAN_HPP_NAMESPACE::Framebuffer;
24242   };
24243 
24244 
24245   template <>
24246   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Framebuffer>
24247   {
24248     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
24249   };
24250 
24251   struct CommandBufferInheritanceInfo
24252   {
24253     static const bool allowDuplicate = false;
24254     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceInfo;
24255 
24256 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24257     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
24258     : renderPass( renderPass_ ), subpass( subpass_ ), framebuffer( framebuffer_ ), occlusionQueryEnable( occlusionQueryEnable_ ), queryFlags( queryFlags_ ), pipelineStatistics( pipelineStatistics_ )
24259     {}
24260 
24261     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24262 
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24263     CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24264     {
24265       *this = rhs;
24266     }
24267 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24268 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24269     CommandBufferInheritanceInfo & operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24270     {
24271       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo const *>( &rhs );
24272       return *this;
24273     }
24274 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24275     CommandBufferInheritanceInfo & operator=( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24276     {
24277       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferInheritanceInfo ) );
24278       return *this;
24279     }
24280 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24281     CommandBufferInheritanceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24282     {
24283       pNext = pNext_;
24284       return *this;
24285     }
24286 
setRenderPassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24287     CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
24288     {
24289       renderPass = renderPass_;
24290       return *this;
24291     }
24292 
setSubpassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24293     CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
24294     {
24295       subpass = subpass_;
24296       return *this;
24297     }
24298 
setFramebufferVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24299     CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
24300     {
24301       framebuffer = framebuffer_;
24302       return *this;
24303     }
24304 
setOcclusionQueryEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24305     CommandBufferInheritanceInfo & setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT
24306     {
24307       occlusionQueryEnable = occlusionQueryEnable_;
24308       return *this;
24309     }
24310 
setQueryFlagsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24311     CommandBufferInheritanceInfo & setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT
24312     {
24313       queryFlags = queryFlags_;
24314       return *this;
24315     }
24316 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24317     CommandBufferInheritanceInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
24318     {
24319       pipelineStatistics = pipelineStatistics_;
24320       return *this;
24321     }
24322 
24323 
operator VkCommandBufferInheritanceInfo const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24324     operator VkCommandBufferInheritanceInfo const&() const VULKAN_HPP_NOEXCEPT
24325     {
24326       return *reinterpret_cast<const VkCommandBufferInheritanceInfo*>( this );
24327     }
24328 
operator VkCommandBufferInheritanceInfo&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24329     operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT
24330     {
24331       return *reinterpret_cast<VkCommandBufferInheritanceInfo*>( this );
24332     }
24333 
24334 
24335 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24336     auto operator<=>( CommandBufferInheritanceInfo const& ) const = default;
24337 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24338     bool operator==( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24339     {
24340       return ( sType == rhs.sType )
24341           && ( pNext == rhs.pNext )
24342           && ( renderPass == rhs.renderPass )
24343           && ( subpass == rhs.subpass )
24344           && ( framebuffer == rhs.framebuffer )
24345           && ( occlusionQueryEnable == rhs.occlusionQueryEnable )
24346           && ( queryFlags == rhs.queryFlags )
24347           && ( pipelineStatistics == rhs.pipelineStatistics );
24348     }
24349 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24350     bool operator!=( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24351     {
24352       return !operator==( rhs );
24353     }
24354 #endif
24355 
24356 
24357 
24358   public:
24359     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo;
24360     const void* pNext = {};
24361     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
24362     uint32_t subpass = {};
24363     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
24364     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {};
24365     VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {};
24366     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
24367 
24368   };
24369   static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), "struct and wrapper have different size!" );
24370   static_assert( std::is_standard_layout<CommandBufferInheritanceInfo>::value, "struct wrapper is not a standard layout!" );
24371 
24372   template <>
24373   struct CppType<StructureType, StructureType::eCommandBufferInheritanceInfo>
24374   {
24375     using Type = CommandBufferInheritanceInfo;
24376   };
24377 
24378   struct CommandBufferBeginInfo
24379   {
24380     static const bool allowDuplicate = false;
24381     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferBeginInfo;
24382 
24383 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24384     VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo(VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {}, const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ = {}) VULKAN_HPP_NOEXCEPT
24385     : flags( flags_ ), pInheritanceInfo( pInheritanceInfo_ )
24386     {}
24387 
24388     VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24389 
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24390     CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24391     {
24392       *this = rhs;
24393     }
24394 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24395 
operator =VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24396     CommandBufferBeginInfo & operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24397     {
24398       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo const *>( &rhs );
24399       return *this;
24400     }
24401 
operator =VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24402     CommandBufferBeginInfo & operator=( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24403     {
24404       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferBeginInfo ) );
24405       return *this;
24406     }
24407 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24408     CommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24409     {
24410       pNext = pNext_;
24411       return *this;
24412     }
24413 
setFlagsVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24414     CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT
24415     {
24416       flags = flags_;
24417       return *this;
24418     }
24419 
setPInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24420     CommandBufferBeginInfo & setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT
24421     {
24422       pInheritanceInfo = pInheritanceInfo_;
24423       return *this;
24424     }
24425 
24426 
operator VkCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24427     operator VkCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT
24428     {
24429       return *reinterpret_cast<const VkCommandBufferBeginInfo*>( this );
24430     }
24431 
operator VkCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24432     operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
24433     {
24434       return *reinterpret_cast<VkCommandBufferBeginInfo*>( this );
24435     }
24436 
24437 
24438 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24439     auto operator<=>( CommandBufferBeginInfo const& ) const = default;
24440 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24441     bool operator==( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24442     {
24443       return ( sType == rhs.sType )
24444           && ( pNext == rhs.pNext )
24445           && ( flags == rhs.flags )
24446           && ( pInheritanceInfo == rhs.pInheritanceInfo );
24447     }
24448 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24449     bool operator!=( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24450     {
24451       return !operator==( rhs );
24452     }
24453 #endif
24454 
24455 
24456 
24457   public:
24458     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo;
24459     const void* pNext = {};
24460     VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {};
24461     const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo = {};
24462 
24463   };
24464   static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), "struct and wrapper have different size!" );
24465   static_assert( std::is_standard_layout<CommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
24466 
24467   template <>
24468   struct CppType<StructureType, StructureType::eCommandBufferBeginInfo>
24469   {
24470     using Type = CommandBufferBeginInfo;
24471   };
24472 
24473   struct CommandBufferInheritanceConditionalRenderingInfoEXT
24474   {
24475     static const bool allowDuplicate = false;
24476     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
24477 
24478 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24479     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {}) VULKAN_HPP_NOEXCEPT
24480     : conditionalRenderingEnable( conditionalRenderingEnable_ )
24481     {}
24482 
24483     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24484 
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24485     CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24486     {
24487       *this = rhs;
24488     }
24489 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24490 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24491     CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24492     {
24493       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT const *>( &rhs );
24494       return *this;
24495     }
24496 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24497     CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24498     {
24499       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) );
24500       return *this;
24501     }
24502 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24503     CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24504     {
24505       pNext = pNext_;
24506       return *this;
24507     }
24508 
setConditionalRenderingEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24509     CommandBufferInheritanceConditionalRenderingInfoEXT & setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT
24510     {
24511       conditionalRenderingEnable = conditionalRenderingEnable_;
24512       return *this;
24513     }
24514 
24515 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24516     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&() const VULKAN_HPP_NOEXCEPT
24517     {
24518       return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
24519     }
24520 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24521     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT
24522     {
24523       return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
24524     }
24525 
24526 
24527 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24528     auto operator<=>( CommandBufferInheritanceConditionalRenderingInfoEXT const& ) const = default;
24529 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24530     bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
24531     {
24532       return ( sType == rhs.sType )
24533           && ( pNext == rhs.pNext )
24534           && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable );
24535     }
24536 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24537     bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
24538     {
24539       return !operator==( rhs );
24540     }
24541 #endif
24542 
24543 
24544 
24545   public:
24546     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
24547     const void* pNext = {};
24548     VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {};
24549 
24550   };
24551   static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "struct and wrapper have different size!" );
24552   static_assert( std::is_standard_layout<CommandBufferInheritanceConditionalRenderingInfoEXT>::value, "struct wrapper is not a standard layout!" );
24553 
24554   template <>
24555   struct CppType<StructureType, StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT>
24556   {
24557     using Type = CommandBufferInheritanceConditionalRenderingInfoEXT;
24558   };
24559 
24560   struct CommandBufferInheritanceRenderPassTransformInfoQCOM
24561   {
24562     static const bool allowDuplicate = false;
24563     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
24564 
24565 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24566     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}) VULKAN_HPP_NOEXCEPT
24567     : transform( transform_ ), renderArea( renderArea_ )
24568     {}
24569 
24570     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24571 
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24572     CommandBufferInheritanceRenderPassTransformInfoQCOM( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
24573     {
24574       *this = rhs;
24575     }
24576 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24577 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24578     CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
24579     {
24580       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM const *>( &rhs );
24581       return *this;
24582     }
24583 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24584     CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
24585     {
24586       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) );
24587       return *this;
24588     }
24589 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24590     CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
24591     {
24592       pNext = pNext_;
24593       return *this;
24594     }
24595 
setTransformVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24596     CommandBufferInheritanceRenderPassTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
24597     {
24598       transform = transform_;
24599       return *this;
24600     }
24601 
setRenderAreaVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24602     CommandBufferInheritanceRenderPassTransformInfoQCOM & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
24603     {
24604       renderArea = renderArea_;
24605       return *this;
24606     }
24607 
24608 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24609     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
24610     {
24611       return *reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
24612     }
24613 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24614     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
24615     {
24616       return *reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
24617     }
24618 
24619 
24620 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24621     auto operator<=>( CommandBufferInheritanceRenderPassTransformInfoQCOM const& ) const = default;
24622 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24623     bool operator==( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
24624     {
24625       return ( sType == rhs.sType )
24626           && ( pNext == rhs.pNext )
24627           && ( transform == rhs.transform )
24628           && ( renderArea == rhs.renderArea );
24629     }
24630 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24631     bool operator!=( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
24632     {
24633       return !operator==( rhs );
24634     }
24635 #endif
24636 
24637 
24638 
24639   public:
24640     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
24641     void* pNext = {};
24642     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
24643     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
24644 
24645   };
24646   static_assert( sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) == sizeof( VkCommandBufferInheritanceRenderPassTransformInfoQCOM ), "struct and wrapper have different size!" );
24647   static_assert( std::is_standard_layout<CommandBufferInheritanceRenderPassTransformInfoQCOM>::value, "struct wrapper is not a standard layout!" );
24648 
24649   template <>
24650   struct CppType<StructureType, StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM>
24651   {
24652     using Type = CommandBufferInheritanceRenderPassTransformInfoQCOM;
24653   };
24654 
24655   struct CommandPoolCreateInfo
24656   {
24657     static const bool allowDuplicate = false;
24658     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandPoolCreateInfo;
24659 
24660 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24661     VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo(VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}) VULKAN_HPP_NOEXCEPT
24662     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ )
24663     {}
24664 
24665     VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24666 
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24667     CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24668     {
24669       *this = rhs;
24670     }
24671 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24672 
operator =VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24673     CommandPoolCreateInfo & operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24674     {
24675       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const *>( &rhs );
24676       return *this;
24677     }
24678 
operator =VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24679     CommandPoolCreateInfo & operator=( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24680     {
24681       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandPoolCreateInfo ) );
24682       return *this;
24683     }
24684 
setPNextVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24685     CommandPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24686     {
24687       pNext = pNext_;
24688       return *this;
24689     }
24690 
setFlagsVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24691     CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
24692     {
24693       flags = flags_;
24694       return *this;
24695     }
24696 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24697     CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
24698     {
24699       queueFamilyIndex = queueFamilyIndex_;
24700       return *this;
24701     }
24702 
24703 
operator VkCommandPoolCreateInfo const&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24704     operator VkCommandPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
24705     {
24706       return *reinterpret_cast<const VkCommandPoolCreateInfo*>( this );
24707     }
24708 
operator VkCommandPoolCreateInfo&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24709     operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
24710     {
24711       return *reinterpret_cast<VkCommandPoolCreateInfo*>( this );
24712     }
24713 
24714 
24715 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24716     auto operator<=>( CommandPoolCreateInfo const& ) const = default;
24717 #else
operator ==VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24718     bool operator==( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24719     {
24720       return ( sType == rhs.sType )
24721           && ( pNext == rhs.pNext )
24722           && ( flags == rhs.flags )
24723           && ( queueFamilyIndex == rhs.queueFamilyIndex );
24724     }
24725 
operator !=VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24726     bool operator!=( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24727     {
24728       return !operator==( rhs );
24729     }
24730 #endif
24731 
24732 
24733 
24734   public:
24735     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo;
24736     const void* pNext = {};
24737     VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {};
24738     uint32_t queueFamilyIndex = {};
24739 
24740   };
24741   static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), "struct and wrapper have different size!" );
24742   static_assert( std::is_standard_layout<CommandPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
24743 
24744   template <>
24745   struct CppType<StructureType, StructureType::eCommandPoolCreateInfo>
24746   {
24747     using Type = CommandPoolCreateInfo;
24748   };
24749 
24750   class ShaderModule
24751   {
24752   public:
24753     using CType = VkShaderModule;
24754 
24755     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule;
24756     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule;
24757 
24758   public:
ShaderModule()24759     VULKAN_HPP_CONSTEXPR ShaderModule() VULKAN_HPP_NOEXCEPT
24760       : m_shaderModule(VK_NULL_HANDLE)
24761     {}
24762 
ShaderModule(std::nullptr_t)24763     VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24764       : m_shaderModule(VK_NULL_HANDLE)
24765     {}
24766 
ShaderModule(VkShaderModule shaderModule)24767     VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule ) VULKAN_HPP_NOEXCEPT
24768       : m_shaderModule( shaderModule )
24769     {}
24770 
24771 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkShaderModule shaderModule)24772     ShaderModule & operator=(VkShaderModule shaderModule) VULKAN_HPP_NOEXCEPT
24773     {
24774       m_shaderModule = shaderModule;
24775       return *this;
24776     }
24777 #endif
24778 
operator =(std::nullptr_t)24779     ShaderModule & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24780     {
24781       m_shaderModule = VK_NULL_HANDLE;
24782       return *this;
24783     }
24784 
24785 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24786     auto operator<=>( ShaderModule const& ) const = default;
24787 #else
operator ==(ShaderModule const & rhs) const24788     bool operator==( ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
24789     {
24790       return m_shaderModule == rhs.m_shaderModule;
24791     }
24792 
operator !=(ShaderModule const & rhs) const24793     bool operator!=(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
24794     {
24795       return m_shaderModule != rhs.m_shaderModule;
24796     }
24797 
operator <(ShaderModule const & rhs) const24798     bool operator<(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
24799     {
24800       return m_shaderModule < rhs.m_shaderModule;
24801     }
24802 #endif
24803 
operator VkShaderModule() const24804     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderModule() const VULKAN_HPP_NOEXCEPT
24805     {
24806       return m_shaderModule;
24807     }
24808 
operator bool() const24809     explicit operator bool() const VULKAN_HPP_NOEXCEPT
24810     {
24811       return m_shaderModule != VK_NULL_HANDLE;
24812     }
24813 
operator !() const24814     bool operator!() const VULKAN_HPP_NOEXCEPT
24815     {
24816       return m_shaderModule == VK_NULL_HANDLE;
24817     }
24818 
24819   private:
24820     VkShaderModule m_shaderModule;
24821   };
24822   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ShaderModule ) == sizeof( VkShaderModule ), "handle and wrapper have different size!" );
24823 
24824   template <>
24825   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eShaderModule>
24826   {
24827     using type = VULKAN_HPP_NAMESPACE::ShaderModule;
24828   };
24829 
24830   template <>
24831   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule>
24832   {
24833     using Type = VULKAN_HPP_NAMESPACE::ShaderModule;
24834   };
24835 
24836 
24837   template <>
24838   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule>
24839   {
24840     using Type = VULKAN_HPP_NAMESPACE::ShaderModule;
24841   };
24842 
24843 
24844   template <>
24845   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ShaderModule>
24846   {
24847     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
24848   };
24849 
24850   struct SpecializationMapEntry
24851   {
24852 
24853 
24854 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry24855     VULKAN_HPP_CONSTEXPR SpecializationMapEntry(uint32_t constantID_ = {}, uint32_t offset_ = {}, size_t size_ = {}) VULKAN_HPP_NOEXCEPT
24856     : constantID( constantID_ ), offset( offset_ ), size( size_ )
24857     {}
24858 
24859     VULKAN_HPP_CONSTEXPR SpecializationMapEntry( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24860 
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry24861     SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
24862     {
24863       *this = rhs;
24864     }
24865 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24866 
operator =VULKAN_HPP_NAMESPACE::SpecializationMapEntry24867     SpecializationMapEntry & operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
24868     {
24869       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationMapEntry const *>( &rhs );
24870       return *this;
24871     }
24872 
operator =VULKAN_HPP_NAMESPACE::SpecializationMapEntry24873     SpecializationMapEntry & operator=( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
24874     {
24875       memcpy( static_cast<void *>( this ), &rhs, sizeof( SpecializationMapEntry ) );
24876       return *this;
24877     }
24878 
setConstantIDVULKAN_HPP_NAMESPACE::SpecializationMapEntry24879     SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT
24880     {
24881       constantID = constantID_;
24882       return *this;
24883     }
24884 
setOffsetVULKAN_HPP_NAMESPACE::SpecializationMapEntry24885     SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
24886     {
24887       offset = offset_;
24888       return *this;
24889     }
24890 
setSizeVULKAN_HPP_NAMESPACE::SpecializationMapEntry24891     SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT
24892     {
24893       size = size_;
24894       return *this;
24895     }
24896 
24897 
operator VkSpecializationMapEntry const&VULKAN_HPP_NAMESPACE::SpecializationMapEntry24898     operator VkSpecializationMapEntry const&() const VULKAN_HPP_NOEXCEPT
24899     {
24900       return *reinterpret_cast<const VkSpecializationMapEntry*>( this );
24901     }
24902 
operator VkSpecializationMapEntry&VULKAN_HPP_NAMESPACE::SpecializationMapEntry24903     operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT
24904     {
24905       return *reinterpret_cast<VkSpecializationMapEntry*>( this );
24906     }
24907 
24908 
24909 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24910     auto operator<=>( SpecializationMapEntry const& ) const = default;
24911 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationMapEntry24912     bool operator==( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
24913     {
24914       return ( constantID == rhs.constantID )
24915           && ( offset == rhs.offset )
24916           && ( size == rhs.size );
24917     }
24918 
operator !=VULKAN_HPP_NAMESPACE::SpecializationMapEntry24919     bool operator!=( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
24920     {
24921       return !operator==( rhs );
24922     }
24923 #endif
24924 
24925 
24926 
24927   public:
24928     uint32_t constantID = {};
24929     uint32_t offset = {};
24930     size_t size = {};
24931 
24932   };
24933   static_assert( sizeof( SpecializationMapEntry ) == sizeof( VkSpecializationMapEntry ), "struct and wrapper have different size!" );
24934   static_assert( std::is_standard_layout<SpecializationMapEntry>::value, "struct wrapper is not a standard layout!" );
24935 
24936   struct SpecializationInfo
24937   {
24938 
24939 
24940 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo24941     VULKAN_HPP_CONSTEXPR SpecializationInfo(uint32_t mapEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ = {}, size_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT
24942     : mapEntryCount( mapEntryCount_ ), pMapEntries( pMapEntries_ ), dataSize( dataSize_ ), pData( pData_ )
24943     {}
24944 
24945     VULKAN_HPP_CONSTEXPR SpecializationInfo( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24946 
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo24947     SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24948     {
24949       *this = rhs;
24950     }
24951 
24952 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
24953     template <typename T>
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo24954     SpecializationInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ = {} )
24955     : mapEntryCount( static_cast<uint32_t>( mapEntries_.size() ) ), pMapEntries( mapEntries_.data() ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() )
24956     {}
24957 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
24958 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24959 
operator =VULKAN_HPP_NAMESPACE::SpecializationInfo24960     SpecializationInfo & operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24961     {
24962       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationInfo const *>( &rhs );
24963       return *this;
24964     }
24965 
operator =VULKAN_HPP_NAMESPACE::SpecializationInfo24966     SpecializationInfo & operator=( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24967     {
24968       memcpy( static_cast<void *>( this ), &rhs, sizeof( SpecializationInfo ) );
24969       return *this;
24970     }
24971 
setMapEntryCountVULKAN_HPP_NAMESPACE::SpecializationInfo24972     SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT
24973     {
24974       mapEntryCount = mapEntryCount_;
24975       return *this;
24976     }
24977 
setPMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo24978     SpecializationInfo & setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ ) VULKAN_HPP_NOEXCEPT
24979     {
24980       pMapEntries = pMapEntries_;
24981       return *this;
24982     }
24983 
24984 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo24985     SpecializationInfo & setMapEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_ ) VULKAN_HPP_NOEXCEPT
24986     {
24987       mapEntryCount = static_cast<uint32_t>( mapEntries_.size() );
24988       pMapEntries = mapEntries_.data();
24989       return *this;
24990     }
24991 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
24992 
setDataSizeVULKAN_HPP_NAMESPACE::SpecializationInfo24993     SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
24994     {
24995       dataSize = dataSize_;
24996       return *this;
24997     }
24998 
setPDataVULKAN_HPP_NAMESPACE::SpecializationInfo24999     SpecializationInfo & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT
25000     {
25001       pData = pData_;
25002       return *this;
25003     }
25004 
25005 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
25006     template <typename T>
setDataVULKAN_HPP_NAMESPACE::SpecializationInfo25007     SpecializationInfo & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
25008     {
25009       dataSize = data_.size() * sizeof(T);
25010       pData = data_.data();
25011       return *this;
25012     }
25013 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
25014 
25015 
operator VkSpecializationInfo const&VULKAN_HPP_NAMESPACE::SpecializationInfo25016     operator VkSpecializationInfo const&() const VULKAN_HPP_NOEXCEPT
25017     {
25018       return *reinterpret_cast<const VkSpecializationInfo*>( this );
25019     }
25020 
operator VkSpecializationInfo&VULKAN_HPP_NAMESPACE::SpecializationInfo25021     operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT
25022     {
25023       return *reinterpret_cast<VkSpecializationInfo*>( this );
25024     }
25025 
25026 
25027 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25028     auto operator<=>( SpecializationInfo const& ) const = default;
25029 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationInfo25030     bool operator==( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25031     {
25032       return ( mapEntryCount == rhs.mapEntryCount )
25033           && ( pMapEntries == rhs.pMapEntries )
25034           && ( dataSize == rhs.dataSize )
25035           && ( pData == rhs.pData );
25036     }
25037 
operator !=VULKAN_HPP_NAMESPACE::SpecializationInfo25038     bool operator!=( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25039     {
25040       return !operator==( rhs );
25041     }
25042 #endif
25043 
25044 
25045 
25046   public:
25047     uint32_t mapEntryCount = {};
25048     const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries = {};
25049     size_t dataSize = {};
25050     const void* pData = {};
25051 
25052   };
25053   static_assert( sizeof( SpecializationInfo ) == sizeof( VkSpecializationInfo ), "struct and wrapper have different size!" );
25054   static_assert( std::is_standard_layout<SpecializationInfo>::value, "struct wrapper is not a standard layout!" );
25055 
25056   struct PipelineShaderStageCreateInfo
25057   {
25058     static const bool allowDuplicate = false;
25059     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageCreateInfo;
25060 
25061 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25062     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
25063     : flags( flags_ ), stage( stage_ ), module( module_ ), pName( pName_ ), pSpecializationInfo( pSpecializationInfo_ )
25064     {}
25065 
25066     VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25067 
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25068     PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25069     {
25070       *this = rhs;
25071     }
25072 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25073 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25074     PipelineShaderStageCreateInfo & operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25075     {
25076       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const *>( &rhs );
25077       return *this;
25078     }
25079 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25080     PipelineShaderStageCreateInfo & operator=( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25081     {
25082       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineShaderStageCreateInfo ) );
25083       return *this;
25084     }
25085 
setPNextVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25086     PipelineShaderStageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25087     {
25088       pNext = pNext_;
25089       return *this;
25090     }
25091 
setFlagsVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25092     PipelineShaderStageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
25093     {
25094       flags = flags_;
25095       return *this;
25096     }
25097 
setStageVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25098     PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT
25099     {
25100       stage = stage_;
25101       return *this;
25102     }
25103 
setModuleVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25104     PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT
25105     {
25106       module = module_;
25107       return *this;
25108     }
25109 
setPNameVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25110     PipelineShaderStageCreateInfo & setPName( const char* pName_ ) VULKAN_HPP_NOEXCEPT
25111     {
25112       pName = pName_;
25113       return *this;
25114     }
25115 
setPSpecializationInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25116     PipelineShaderStageCreateInfo & setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
25117     {
25118       pSpecializationInfo = pSpecializationInfo_;
25119       return *this;
25120     }
25121 
25122 
operator VkPipelineShaderStageCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25123     operator VkPipelineShaderStageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
25124     {
25125       return *reinterpret_cast<const VkPipelineShaderStageCreateInfo*>( this );
25126     }
25127 
operator VkPipelineShaderStageCreateInfo&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25128     operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT
25129     {
25130       return *reinterpret_cast<VkPipelineShaderStageCreateInfo*>( this );
25131     }
25132 
25133 
25134 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25135     auto operator<=>( PipelineShaderStageCreateInfo const& ) const = default;
25136 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25137     bool operator==( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25138     {
25139       return ( sType == rhs.sType )
25140           && ( pNext == rhs.pNext )
25141           && ( flags == rhs.flags )
25142           && ( stage == rhs.stage )
25143           && ( module == rhs.module )
25144           && ( pName == rhs.pName )
25145           && ( pSpecializationInfo == rhs.pSpecializationInfo );
25146     }
25147 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25148     bool operator!=( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25149     {
25150       return !operator==( rhs );
25151     }
25152 #endif
25153 
25154 
25155 
25156   public:
25157     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo;
25158     const void* pNext = {};
25159     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {};
25160     VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex;
25161     VULKAN_HPP_NAMESPACE::ShaderModule module = {};
25162     const char* pName = {};
25163     const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo = {};
25164 
25165   };
25166   static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), "struct and wrapper have different size!" );
25167   static_assert( std::is_standard_layout<PipelineShaderStageCreateInfo>::value, "struct wrapper is not a standard layout!" );
25168 
25169   template <>
25170   struct CppType<StructureType, StructureType::ePipelineShaderStageCreateInfo>
25171   {
25172     using Type = PipelineShaderStageCreateInfo;
25173   };
25174 
25175   class PipelineLayout
25176   {
25177   public:
25178     using CType = VkPipelineLayout;
25179 
25180     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout;
25181     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout;
25182 
25183   public:
PipelineLayout()25184     VULKAN_HPP_CONSTEXPR PipelineLayout() VULKAN_HPP_NOEXCEPT
25185       : m_pipelineLayout(VK_NULL_HANDLE)
25186     {}
25187 
PipelineLayout(std::nullptr_t)25188     VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25189       : m_pipelineLayout(VK_NULL_HANDLE)
25190     {}
25191 
PipelineLayout(VkPipelineLayout pipelineLayout)25192     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout ) VULKAN_HPP_NOEXCEPT
25193       : m_pipelineLayout( pipelineLayout )
25194     {}
25195 
25196 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineLayout pipelineLayout)25197     PipelineLayout & operator=(VkPipelineLayout pipelineLayout) VULKAN_HPP_NOEXCEPT
25198     {
25199       m_pipelineLayout = pipelineLayout;
25200       return *this;
25201     }
25202 #endif
25203 
operator =(std::nullptr_t)25204     PipelineLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25205     {
25206       m_pipelineLayout = VK_NULL_HANDLE;
25207       return *this;
25208     }
25209 
25210 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25211     auto operator<=>( PipelineLayout const& ) const = default;
25212 #else
operator ==(PipelineLayout const & rhs) const25213     bool operator==( PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
25214     {
25215       return m_pipelineLayout == rhs.m_pipelineLayout;
25216     }
25217 
operator !=(PipelineLayout const & rhs) const25218     bool operator!=(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
25219     {
25220       return m_pipelineLayout != rhs.m_pipelineLayout;
25221     }
25222 
operator <(PipelineLayout const & rhs) const25223     bool operator<(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
25224     {
25225       return m_pipelineLayout < rhs.m_pipelineLayout;
25226     }
25227 #endif
25228 
operator VkPipelineLayout() const25229     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineLayout() const VULKAN_HPP_NOEXCEPT
25230     {
25231       return m_pipelineLayout;
25232     }
25233 
operator bool() const25234     explicit operator bool() const VULKAN_HPP_NOEXCEPT
25235     {
25236       return m_pipelineLayout != VK_NULL_HANDLE;
25237     }
25238 
operator !() const25239     bool operator!() const VULKAN_HPP_NOEXCEPT
25240     {
25241       return m_pipelineLayout == VK_NULL_HANDLE;
25242     }
25243 
25244   private:
25245     VkPipelineLayout m_pipelineLayout;
25246   };
25247   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineLayout ) == sizeof( VkPipelineLayout ), "handle and wrapper have different size!" );
25248 
25249   template <>
25250   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipelineLayout>
25251   {
25252     using type = VULKAN_HPP_NAMESPACE::PipelineLayout;
25253   };
25254 
25255   template <>
25256   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout>
25257   {
25258     using Type = VULKAN_HPP_NAMESPACE::PipelineLayout;
25259   };
25260 
25261 
25262   template <>
25263   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout>
25264   {
25265     using Type = VULKAN_HPP_NAMESPACE::PipelineLayout;
25266   };
25267 
25268 
25269   template <>
25270   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PipelineLayout>
25271   {
25272     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
25273   };
25274 
25275   class Pipeline
25276   {
25277   public:
25278     using CType = VkPipeline;
25279 
25280     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipeline;
25281     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
25282 
25283   public:
Pipeline()25284     VULKAN_HPP_CONSTEXPR Pipeline() VULKAN_HPP_NOEXCEPT
25285       : m_pipeline(VK_NULL_HANDLE)
25286     {}
25287 
Pipeline(std::nullptr_t)25288     VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25289       : m_pipeline(VK_NULL_HANDLE)
25290     {}
25291 
Pipeline(VkPipeline pipeline)25292     VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT
25293       : m_pipeline( pipeline )
25294     {}
25295 
25296 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipeline pipeline)25297     Pipeline & operator=(VkPipeline pipeline) VULKAN_HPP_NOEXCEPT
25298     {
25299       m_pipeline = pipeline;
25300       return *this;
25301     }
25302 #endif
25303 
operator =(std::nullptr_t)25304     Pipeline & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25305     {
25306       m_pipeline = VK_NULL_HANDLE;
25307       return *this;
25308     }
25309 
25310 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25311     auto operator<=>( Pipeline const& ) const = default;
25312 #else
operator ==(Pipeline const & rhs) const25313     bool operator==( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
25314     {
25315       return m_pipeline == rhs.m_pipeline;
25316     }
25317 
operator !=(Pipeline const & rhs) const25318     bool operator!=(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
25319     {
25320       return m_pipeline != rhs.m_pipeline;
25321     }
25322 
operator <(Pipeline const & rhs) const25323     bool operator<(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
25324     {
25325       return m_pipeline < rhs.m_pipeline;
25326     }
25327 #endif
25328 
operator VkPipeline() const25329     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const VULKAN_HPP_NOEXCEPT
25330     {
25331       return m_pipeline;
25332     }
25333 
operator bool() const25334     explicit operator bool() const VULKAN_HPP_NOEXCEPT
25335     {
25336       return m_pipeline != VK_NULL_HANDLE;
25337     }
25338 
operator !() const25339     bool operator!() const VULKAN_HPP_NOEXCEPT
25340     {
25341       return m_pipeline == VK_NULL_HANDLE;
25342     }
25343 
25344   private:
25345     VkPipeline m_pipeline;
25346   };
25347   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Pipeline ) == sizeof( VkPipeline ), "handle and wrapper have different size!" );
25348 
25349   template <>
25350   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipeline>
25351   {
25352     using type = VULKAN_HPP_NAMESPACE::Pipeline;
25353   };
25354 
25355   template <>
25356   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipeline>
25357   {
25358     using Type = VULKAN_HPP_NAMESPACE::Pipeline;
25359   };
25360 
25361 
25362   template <>
25363   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline>
25364   {
25365     using Type = VULKAN_HPP_NAMESPACE::Pipeline;
25366   };
25367 
25368 
25369   template <>
25370   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Pipeline>
25371   {
25372     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
25373   };
25374 
25375   struct ComputePipelineCreateInfo
25376   {
25377     static const bool allowDuplicate = false;
25378     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineCreateInfo;
25379 
25380 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25381     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
25382     : flags( flags_ ), stage( stage_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
25383     {}
25384 
25385     VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25386 
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25387     ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25388     {
25389       *this = rhs;
25390     }
25391 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25392 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25393     ComputePipelineCreateInfo & operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25394     {
25395       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const *>( &rhs );
25396       return *this;
25397     }
25398 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25399     ComputePipelineCreateInfo & operator=( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25400     {
25401       memcpy( static_cast<void *>( this ), &rhs, sizeof( ComputePipelineCreateInfo ) );
25402       return *this;
25403     }
25404 
setPNextVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25405     ComputePipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25406     {
25407       pNext = pNext_;
25408       return *this;
25409     }
25410 
setFlagsVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25411     ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
25412     {
25413       flags = flags_;
25414       return *this;
25415     }
25416 
setStageVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25417     ComputePipelineCreateInfo & setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & stage_ ) VULKAN_HPP_NOEXCEPT
25418     {
25419       stage = stage_;
25420       return *this;
25421     }
25422 
setLayoutVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25423     ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
25424     {
25425       layout = layout_;
25426       return *this;
25427     }
25428 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25429     ComputePipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
25430     {
25431       basePipelineHandle = basePipelineHandle_;
25432       return *this;
25433     }
25434 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25435     ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
25436     {
25437       basePipelineIndex = basePipelineIndex_;
25438       return *this;
25439     }
25440 
25441 
operator VkComputePipelineCreateInfo const&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25442     operator VkComputePipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT
25443     {
25444       return *reinterpret_cast<const VkComputePipelineCreateInfo*>( this );
25445     }
25446 
operator VkComputePipelineCreateInfo&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25447     operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
25448     {
25449       return *reinterpret_cast<VkComputePipelineCreateInfo*>( this );
25450     }
25451 
25452 
25453 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25454     auto operator<=>( ComputePipelineCreateInfo const& ) const = default;
25455 #else
operator ==VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25456     bool operator==( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25457     {
25458       return ( sType == rhs.sType )
25459           && ( pNext == rhs.pNext )
25460           && ( flags == rhs.flags )
25461           && ( stage == rhs.stage )
25462           && ( layout == rhs.layout )
25463           && ( basePipelineHandle == rhs.basePipelineHandle )
25464           && ( basePipelineIndex == rhs.basePipelineIndex );
25465     }
25466 
operator !=VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25467     bool operator!=( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25468     {
25469       return !operator==( rhs );
25470     }
25471 #endif
25472 
25473 
25474 
25475   public:
25476     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo;
25477     const void* pNext = {};
25478     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
25479     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {};
25480     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
25481     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
25482     int32_t basePipelineIndex = {};
25483 
25484   };
25485   static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "struct and wrapper have different size!" );
25486   static_assert( std::is_standard_layout<ComputePipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
25487 
25488   template <>
25489   struct CppType<StructureType, StructureType::eComputePipelineCreateInfo>
25490   {
25491     using Type = ComputePipelineCreateInfo;
25492   };
25493 
25494   struct ConditionalRenderingBeginInfoEXT
25495   {
25496     static const bool allowDuplicate = false;
25497     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eConditionalRenderingBeginInfoEXT;
25498 
25499 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25500     VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
25501     : buffer( buffer_ ), offset( offset_ ), flags( flags_ )
25502     {}
25503 
25504     VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25505 
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25506     ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25507     {
25508       *this = rhs;
25509     }
25510 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25511 
operator =VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25512     ConditionalRenderingBeginInfoEXT & operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25513     {
25514       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const *>( &rhs );
25515       return *this;
25516     }
25517 
operator =VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25518     ConditionalRenderingBeginInfoEXT & operator=( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25519     {
25520       memcpy( static_cast<void *>( this ), &rhs, sizeof( ConditionalRenderingBeginInfoEXT ) );
25521       return *this;
25522     }
25523 
setPNextVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25524     ConditionalRenderingBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25525     {
25526       pNext = pNext_;
25527       return *this;
25528     }
25529 
setBufferVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25530     ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
25531     {
25532       buffer = buffer_;
25533       return *this;
25534     }
25535 
setOffsetVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25536     ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
25537     {
25538       offset = offset_;
25539       return *this;
25540     }
25541 
setFlagsVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25542     ConditionalRenderingBeginInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
25543     {
25544       flags = flags_;
25545       return *this;
25546     }
25547 
25548 
operator VkConditionalRenderingBeginInfoEXT const&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25549     operator VkConditionalRenderingBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT
25550     {
25551       return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( this );
25552     }
25553 
operator VkConditionalRenderingBeginInfoEXT&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25554     operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
25555     {
25556       return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>( this );
25557     }
25558 
25559 
25560 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25561     auto operator<=>( ConditionalRenderingBeginInfoEXT const& ) const = default;
25562 #else
operator ==VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25563     bool operator==( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25564     {
25565       return ( sType == rhs.sType )
25566           && ( pNext == rhs.pNext )
25567           && ( buffer == rhs.buffer )
25568           && ( offset == rhs.offset )
25569           && ( flags == rhs.flags );
25570     }
25571 
operator !=VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25572     bool operator!=( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25573     {
25574       return !operator==( rhs );
25575     }
25576 #endif
25577 
25578 
25579 
25580   public:
25581     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT;
25582     const void* pNext = {};
25583     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
25584     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
25585     VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {};
25586 
25587   };
25588   static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "struct and wrapper have different size!" );
25589   static_assert( std::is_standard_layout<ConditionalRenderingBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
25590 
25591   template <>
25592   struct CppType<StructureType, StructureType::eConditionalRenderingBeginInfoEXT>
25593   {
25594     using Type = ConditionalRenderingBeginInfoEXT;
25595   };
25596 
25597   struct ConformanceVersion
25598   {
25599 
25600 
25601 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion25602     VULKAN_HPP_CONSTEXPR ConformanceVersion(uint8_t major_ = {}, uint8_t minor_ = {}, uint8_t subminor_ = {}, uint8_t patch_ = {}) VULKAN_HPP_NOEXCEPT
25603     : major( major_ ), minor( minor_ ), subminor( subminor_ ), patch( patch_ )
25604     {}
25605 
25606     VULKAN_HPP_CONSTEXPR ConformanceVersion( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25607 
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion25608     ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
25609     {
25610       *this = rhs;
25611     }
25612 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25613 
operator =VULKAN_HPP_NAMESPACE::ConformanceVersion25614     ConformanceVersion & operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
25615     {
25616       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConformanceVersion const *>( &rhs );
25617       return *this;
25618     }
25619 
operator =VULKAN_HPP_NAMESPACE::ConformanceVersion25620     ConformanceVersion & operator=( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
25621     {
25622       memcpy( static_cast<void *>( this ), &rhs, sizeof( ConformanceVersion ) );
25623       return *this;
25624     }
25625 
setMajorVULKAN_HPP_NAMESPACE::ConformanceVersion25626     ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT
25627     {
25628       major = major_;
25629       return *this;
25630     }
25631 
setMinorVULKAN_HPP_NAMESPACE::ConformanceVersion25632     ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT
25633     {
25634       minor = minor_;
25635       return *this;
25636     }
25637 
setSubminorVULKAN_HPP_NAMESPACE::ConformanceVersion25638     ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT
25639     {
25640       subminor = subminor_;
25641       return *this;
25642     }
25643 
setPatchVULKAN_HPP_NAMESPACE::ConformanceVersion25644     ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT
25645     {
25646       patch = patch_;
25647       return *this;
25648     }
25649 
25650 
operator VkConformanceVersion const&VULKAN_HPP_NAMESPACE::ConformanceVersion25651     operator VkConformanceVersion const&() const VULKAN_HPP_NOEXCEPT
25652     {
25653       return *reinterpret_cast<const VkConformanceVersion*>( this );
25654     }
25655 
operator VkConformanceVersion&VULKAN_HPP_NAMESPACE::ConformanceVersion25656     operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT
25657     {
25658       return *reinterpret_cast<VkConformanceVersion*>( this );
25659     }
25660 
25661 
25662 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25663     auto operator<=>( ConformanceVersion const& ) const = default;
25664 #else
operator ==VULKAN_HPP_NAMESPACE::ConformanceVersion25665     bool operator==( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT
25666     {
25667       return ( major == rhs.major )
25668           && ( minor == rhs.minor )
25669           && ( subminor == rhs.subminor )
25670           && ( patch == rhs.patch );
25671     }
25672 
operator !=VULKAN_HPP_NAMESPACE::ConformanceVersion25673     bool operator!=( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT
25674     {
25675       return !operator==( rhs );
25676     }
25677 #endif
25678 
25679 
25680 
25681   public:
25682     uint8_t major = {};
25683     uint8_t minor = {};
25684     uint8_t subminor = {};
25685     uint8_t patch = {};
25686 
25687   };
25688   static_assert( sizeof( ConformanceVersion ) == sizeof( VkConformanceVersion ), "struct and wrapper have different size!" );
25689   static_assert( std::is_standard_layout<ConformanceVersion>::value, "struct wrapper is not a standard layout!" );
25690   using ConformanceVersionKHR = ConformanceVersion;
25691 
25692   struct CooperativeMatrixPropertiesNV
25693   {
25694     static const bool allowDuplicate = false;
25695     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesNV;
25696 
25697 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25698     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
25699     : MSize( MSize_ ), NSize( NSize_ ), KSize( KSize_ ), AType( AType_ ), BType( BType_ ), CType( CType_ ), DType( DType_ ), scope( scope_ )
25700     {}
25701 
25702     VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25703 
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25704     CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
25705     {
25706       *this = rhs;
25707     }
25708 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25709 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25710     CooperativeMatrixPropertiesNV & operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
25711     {
25712       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const *>( &rhs );
25713       return *this;
25714     }
25715 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25716     CooperativeMatrixPropertiesNV & operator=( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
25717     {
25718       memcpy( static_cast<void *>( this ), &rhs, sizeof( CooperativeMatrixPropertiesNV ) );
25719       return *this;
25720     }
25721 
setPNextVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25722     CooperativeMatrixPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
25723     {
25724       pNext = pNext_;
25725       return *this;
25726     }
25727 
setMSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25728     CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT
25729     {
25730       MSize = MSize_;
25731       return *this;
25732     }
25733 
setNSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25734     CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT
25735     {
25736       NSize = NSize_;
25737       return *this;
25738     }
25739 
setKSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25740     CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT
25741     {
25742       KSize = KSize_;
25743       return *this;
25744     }
25745 
setATypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25746     CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT
25747     {
25748       AType = AType_;
25749       return *this;
25750     }
25751 
setBTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25752     CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT
25753     {
25754       BType = BType_;
25755       return *this;
25756     }
25757 
setCTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25758     CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT
25759     {
25760       CType = CType_;
25761       return *this;
25762     }
25763 
setDTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25764     CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT
25765     {
25766       DType = DType_;
25767       return *this;
25768     }
25769 
setScopeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25770     CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT
25771     {
25772       scope = scope_;
25773       return *this;
25774     }
25775 
25776 
operator VkCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25777     operator VkCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
25778     {
25779       return *reinterpret_cast<const VkCooperativeMatrixPropertiesNV*>( this );
25780     }
25781 
operator VkCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25782     operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
25783     {
25784       return *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( this );
25785     }
25786 
25787 
25788 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25789     auto operator<=>( CooperativeMatrixPropertiesNV const& ) const = default;
25790 #else
operator ==VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25791     bool operator==( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
25792     {
25793       return ( sType == rhs.sType )
25794           && ( pNext == rhs.pNext )
25795           && ( MSize == rhs.MSize )
25796           && ( NSize == rhs.NSize )
25797           && ( KSize == rhs.KSize )
25798           && ( AType == rhs.AType )
25799           && ( BType == rhs.BType )
25800           && ( CType == rhs.CType )
25801           && ( DType == rhs.DType )
25802           && ( scope == rhs.scope );
25803     }
25804 
operator !=VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25805     bool operator!=( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
25806     {
25807       return !operator==( rhs );
25808     }
25809 #endif
25810 
25811 
25812 
25813   public:
25814     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV;
25815     void* pNext = {};
25816     uint32_t MSize = {};
25817     uint32_t NSize = {};
25818     uint32_t KSize = {};
25819     VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25820     VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25821     VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25822     VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25823     VULKAN_HPP_NAMESPACE::ScopeNV scope = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice;
25824 
25825   };
25826   static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
25827   static_assert( std::is_standard_layout<CooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
25828 
25829   template <>
25830   struct CppType<StructureType, StructureType::eCooperativeMatrixPropertiesNV>
25831   {
25832     using Type = CooperativeMatrixPropertiesNV;
25833   };
25834 
25835 #ifdef VK_ENABLE_BETA_EXTENSIONS
25836   struct CopyAccelerationStructureInfoKHR
25837   {
25838     static const bool allowDuplicate = false;
25839     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureInfoKHR;
25840 
25841 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25842     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
25843     : src( src_ ), dst( dst_ ), mode( mode_ )
25844     {}
25845 
25846     VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25847 
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25848     CopyAccelerationStructureInfoKHR( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25849     {
25850       *this = rhs;
25851     }
25852 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25853 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25854     CopyAccelerationStructureInfoKHR & operator=( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25855     {
25856       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR const *>( &rhs );
25857       return *this;
25858     }
25859 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25860     CopyAccelerationStructureInfoKHR & operator=( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25861     {
25862       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyAccelerationStructureInfoKHR ) );
25863       return *this;
25864     }
25865 
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25866     CopyAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25867     {
25868       pNext = pNext_;
25869       return *this;
25870     }
25871 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25872     CopyAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
25873     {
25874       src = src_;
25875       return *this;
25876     }
25877 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25878     CopyAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
25879     {
25880       dst = dst_;
25881       return *this;
25882     }
25883 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25884     CopyAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
25885     {
25886       mode = mode_;
25887       return *this;
25888     }
25889 
25890 
operator VkCopyAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25891     operator VkCopyAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT
25892     {
25893       return *reinterpret_cast<const VkCopyAccelerationStructureInfoKHR*>( this );
25894     }
25895 
operator VkCopyAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25896     operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
25897     {
25898       return *reinterpret_cast<VkCopyAccelerationStructureInfoKHR*>( this );
25899     }
25900 
25901 
25902 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25903     auto operator<=>( CopyAccelerationStructureInfoKHR const& ) const = default;
25904 #else
operator ==VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25905     bool operator==( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
25906     {
25907       return ( sType == rhs.sType )
25908           && ( pNext == rhs.pNext )
25909           && ( src == rhs.src )
25910           && ( dst == rhs.dst )
25911           && ( mode == rhs.mode );
25912     }
25913 
operator !=VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25914     bool operator!=( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
25915     {
25916       return !operator==( rhs );
25917     }
25918 #endif
25919 
25920 
25921 
25922   public:
25923     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureInfoKHR;
25924     const void* pNext = {};
25925     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
25926     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
25927     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
25928 
25929   };
25930   static_assert( sizeof( CopyAccelerationStructureInfoKHR ) == sizeof( VkCopyAccelerationStructureInfoKHR ), "struct and wrapper have different size!" );
25931   static_assert( std::is_standard_layout<CopyAccelerationStructureInfoKHR>::value, "struct wrapper is not a standard layout!" );
25932 
25933   template <>
25934   struct CppType<StructureType, StructureType::eCopyAccelerationStructureInfoKHR>
25935   {
25936     using Type = CopyAccelerationStructureInfoKHR;
25937   };
25938 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
25939 
25940 #ifdef VK_ENABLE_BETA_EXTENSIONS
25941   struct CopyAccelerationStructureToMemoryInfoKHR
25942   {
25943     static const bool allowDuplicate = false;
25944     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
25945 
25946 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25947     CopyAccelerationStructureToMemoryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT
25948     : src( src_ ), dst( dst_ ), mode( mode_ )
25949     {}
25950 
25951     CopyAccelerationStructureToMemoryInfoKHR( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25952 
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25953     CopyAccelerationStructureToMemoryInfoKHR( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25954     {
25955       *this = rhs;
25956     }
25957 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25958 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25959     CopyAccelerationStructureToMemoryInfoKHR & operator=( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25960     {
25961       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR const *>( &rhs );
25962       return *this;
25963     }
25964 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25965     CopyAccelerationStructureToMemoryInfoKHR & operator=( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25966     {
25967       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyAccelerationStructureToMemoryInfoKHR ) );
25968       return *this;
25969     }
25970 
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25971     CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25972     {
25973       pNext = pNext_;
25974       return *this;
25975     }
25976 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25977     CopyAccelerationStructureToMemoryInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
25978     {
25979       src = src_;
25980       return *this;
25981     }
25982 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25983     CopyAccelerationStructureToMemoryInfoKHR & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT
25984     {
25985       dst = dst_;
25986       return *this;
25987     }
25988 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25989     CopyAccelerationStructureToMemoryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
25990     {
25991       mode = mode_;
25992       return *this;
25993     }
25994 
25995 
operator VkCopyAccelerationStructureToMemoryInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25996     operator VkCopyAccelerationStructureToMemoryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
25997     {
25998       return *reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
25999     }
26000 
operator VkCopyAccelerationStructureToMemoryInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26001     operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
26002     {
26003       return *reinterpret_cast<VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
26004     }
26005 
26006 
26007 
26008 
26009   public:
26010     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
26011     const void* pNext = {};
26012     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
26013     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {};
26014     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
26015 
26016   };
26017   static_assert( sizeof( CopyAccelerationStructureToMemoryInfoKHR ) == sizeof( VkCopyAccelerationStructureToMemoryInfoKHR ), "struct and wrapper have different size!" );
26018   static_assert( std::is_standard_layout<CopyAccelerationStructureToMemoryInfoKHR>::value, "struct wrapper is not a standard layout!" );
26019 
26020   template <>
26021   struct CppType<StructureType, StructureType::eCopyAccelerationStructureToMemoryInfoKHR>
26022   {
26023     using Type = CopyAccelerationStructureToMemoryInfoKHR;
26024   };
26025 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
26026 
26027   struct CopyBufferInfo2KHR
26028   {
26029     static const bool allowDuplicate = false;
26030     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferInfo2KHR;
26031 
26032 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26033     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
26034     : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26035     {}
26036 
26037     VULKAN_HPP_CONSTEXPR CopyBufferInfo2KHR( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26038 
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26039     CopyBufferInfo2KHR( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26040     {
26041       *this = rhs;
26042     }
26043 
26044 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26045     CopyBufferInfo2KHR( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2KHR> const & regions_ )
26046     : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
26047     {}
26048 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26049 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26050 
operator =VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26051     CopyBufferInfo2KHR & operator=( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26052     {
26053       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR const *>( &rhs );
26054       return *this;
26055     }
26056 
operator =VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26057     CopyBufferInfo2KHR & operator=( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26058     {
26059       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyBufferInfo2KHR ) );
26060       return *this;
26061     }
26062 
setPNextVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26063     CopyBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26064     {
26065       pNext = pNext_;
26066       return *this;
26067     }
26068 
setSrcBufferVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26069     CopyBufferInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
26070     {
26071       srcBuffer = srcBuffer_;
26072       return *this;
26073     }
26074 
setDstBufferVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26075     CopyBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
26076     {
26077       dstBuffer = dstBuffer_;
26078       return *this;
26079     }
26080 
setRegionCountVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26081     CopyBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
26082     {
26083       regionCount = regionCount_;
26084       return *this;
26085     }
26086 
setPRegionsVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26087     CopyBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
26088     {
26089       pRegions = pRegions_;
26090       return *this;
26091     }
26092 
26093 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26094     CopyBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
26095     {
26096       regionCount = static_cast<uint32_t>( regions_.size() );
26097       pRegions = regions_.data();
26098       return *this;
26099     }
26100 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26101 
26102 
operator VkCopyBufferInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26103     operator VkCopyBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
26104     {
26105       return *reinterpret_cast<const VkCopyBufferInfo2KHR*>( this );
26106     }
26107 
operator VkCopyBufferInfo2KHR&VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26108     operator VkCopyBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT
26109     {
26110       return *reinterpret_cast<VkCopyBufferInfo2KHR*>( this );
26111     }
26112 
26113 
26114 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26115     auto operator<=>( CopyBufferInfo2KHR const& ) const = default;
26116 #else
operator ==VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26117     bool operator==( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26118     {
26119       return ( sType == rhs.sType )
26120           && ( pNext == rhs.pNext )
26121           && ( srcBuffer == rhs.srcBuffer )
26122           && ( dstBuffer == rhs.dstBuffer )
26123           && ( regionCount == rhs.regionCount )
26124           && ( pRegions == rhs.pRegions );
26125     }
26126 
operator !=VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26127     bool operator!=( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26128     {
26129       return !operator==( rhs );
26130     }
26131 #endif
26132 
26133 
26134 
26135   public:
26136     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferInfo2KHR;
26137     const void* pNext = {};
26138     VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
26139     VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
26140     uint32_t regionCount = {};
26141     const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions = {};
26142 
26143   };
26144   static_assert( sizeof( CopyBufferInfo2KHR ) == sizeof( VkCopyBufferInfo2KHR ), "struct and wrapper have different size!" );
26145   static_assert( std::is_standard_layout<CopyBufferInfo2KHR>::value, "struct wrapper is not a standard layout!" );
26146 
26147   template <>
26148   struct CppType<StructureType, StructureType::eCopyBufferInfo2KHR>
26149   {
26150     using Type = CopyBufferInfo2KHR;
26151   };
26152 
26153   struct CopyBufferToImageInfo2KHR
26154   {
26155     static const bool allowDuplicate = false;
26156     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferToImageInfo2KHR;
26157 
26158 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26159     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
26160     : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26161     {}
26162 
26163     VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2KHR( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26164 
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26165     CopyBufferToImageInfo2KHR( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26166     {
26167       *this = rhs;
26168     }
26169 
26170 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26171     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_ )
26172     : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
26173     {}
26174 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26175 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26176 
operator =VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26177     CopyBufferToImageInfo2KHR & operator=( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26178     {
26179       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR const *>( &rhs );
26180       return *this;
26181     }
26182 
operator =VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26183     CopyBufferToImageInfo2KHR & operator=( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26184     {
26185       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyBufferToImageInfo2KHR ) );
26186       return *this;
26187     }
26188 
setPNextVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26189     CopyBufferToImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26190     {
26191       pNext = pNext_;
26192       return *this;
26193     }
26194 
setSrcBufferVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26195     CopyBufferToImageInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
26196     {
26197       srcBuffer = srcBuffer_;
26198       return *this;
26199     }
26200 
setDstImageVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26201     CopyBufferToImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
26202     {
26203       dstImage = dstImage_;
26204       return *this;
26205     }
26206 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26207     CopyBufferToImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
26208     {
26209       dstImageLayout = dstImageLayout_;
26210       return *this;
26211     }
26212 
setRegionCountVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26213     CopyBufferToImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
26214     {
26215       regionCount = regionCount_;
26216       return *this;
26217     }
26218 
setPRegionsVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26219     CopyBufferToImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
26220     {
26221       pRegions = pRegions_;
26222       return *this;
26223     }
26224 
26225 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26226     CopyBufferToImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
26227     {
26228       regionCount = static_cast<uint32_t>( regions_.size() );
26229       pRegions = regions_.data();
26230       return *this;
26231     }
26232 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26233 
26234 
operator VkCopyBufferToImageInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26235     operator VkCopyBufferToImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
26236     {
26237       return *reinterpret_cast<const VkCopyBufferToImageInfo2KHR*>( this );
26238     }
26239 
operator VkCopyBufferToImageInfo2KHR&VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26240     operator VkCopyBufferToImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
26241     {
26242       return *reinterpret_cast<VkCopyBufferToImageInfo2KHR*>( this );
26243     }
26244 
26245 
26246 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26247     auto operator<=>( CopyBufferToImageInfo2KHR const& ) const = default;
26248 #else
operator ==VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26249     bool operator==( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26250     {
26251       return ( sType == rhs.sType )
26252           && ( pNext == rhs.pNext )
26253           && ( srcBuffer == rhs.srcBuffer )
26254           && ( dstImage == rhs.dstImage )
26255           && ( dstImageLayout == rhs.dstImageLayout )
26256           && ( regionCount == rhs.regionCount )
26257           && ( pRegions == rhs.pRegions );
26258     }
26259 
operator !=VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26260     bool operator!=( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26261     {
26262       return !operator==( rhs );
26263     }
26264 #endif
26265 
26266 
26267 
26268   public:
26269     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferToImageInfo2KHR;
26270     const void* pNext = {};
26271     VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
26272     VULKAN_HPP_NAMESPACE::Image dstImage = {};
26273     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26274     uint32_t regionCount = {};
26275     const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {};
26276 
26277   };
26278   static_assert( sizeof( CopyBufferToImageInfo2KHR ) == sizeof( VkCopyBufferToImageInfo2KHR ), "struct and wrapper have different size!" );
26279   static_assert( std::is_standard_layout<CopyBufferToImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
26280 
26281   template <>
26282   struct CppType<StructureType, StructureType::eCopyBufferToImageInfo2KHR>
26283   {
26284     using Type = CopyBufferToImageInfo2KHR;
26285   };
26286 
26287   class DescriptorSet
26288   {
26289   public:
26290     using CType = VkDescriptorSet;
26291 
26292     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet;
26293     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet;
26294 
26295   public:
DescriptorSet()26296     VULKAN_HPP_CONSTEXPR DescriptorSet() VULKAN_HPP_NOEXCEPT
26297       : m_descriptorSet(VK_NULL_HANDLE)
26298     {}
26299 
DescriptorSet(std::nullptr_t)26300     VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26301       : m_descriptorSet(VK_NULL_HANDLE)
26302     {}
26303 
DescriptorSet(VkDescriptorSet descriptorSet)26304     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet ) VULKAN_HPP_NOEXCEPT
26305       : m_descriptorSet( descriptorSet )
26306     {}
26307 
26308 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSet descriptorSet)26309     DescriptorSet & operator=(VkDescriptorSet descriptorSet) VULKAN_HPP_NOEXCEPT
26310     {
26311       m_descriptorSet = descriptorSet;
26312       return *this;
26313     }
26314 #endif
26315 
operator =(std::nullptr_t)26316     DescriptorSet & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26317     {
26318       m_descriptorSet = VK_NULL_HANDLE;
26319       return *this;
26320     }
26321 
26322 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26323     auto operator<=>( DescriptorSet const& ) const = default;
26324 #else
operator ==(DescriptorSet const & rhs) const26325     bool operator==( DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26326     {
26327       return m_descriptorSet == rhs.m_descriptorSet;
26328     }
26329 
operator !=(DescriptorSet const & rhs) const26330     bool operator!=(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26331     {
26332       return m_descriptorSet != rhs.m_descriptorSet;
26333     }
26334 
operator <(DescriptorSet const & rhs) const26335     bool operator<(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26336     {
26337       return m_descriptorSet < rhs.m_descriptorSet;
26338     }
26339 #endif
26340 
operator VkDescriptorSet() const26341     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSet() const VULKAN_HPP_NOEXCEPT
26342     {
26343       return m_descriptorSet;
26344     }
26345 
operator bool() const26346     explicit operator bool() const VULKAN_HPP_NOEXCEPT
26347     {
26348       return m_descriptorSet != VK_NULL_HANDLE;
26349     }
26350 
operator !() const26351     bool operator!() const VULKAN_HPP_NOEXCEPT
26352     {
26353       return m_descriptorSet == VK_NULL_HANDLE;
26354     }
26355 
26356   private:
26357     VkDescriptorSet m_descriptorSet;
26358   };
26359   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSet ) == sizeof( VkDescriptorSet ), "handle and wrapper have different size!" );
26360 
26361   template <>
26362   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorSet>
26363   {
26364     using type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26365   };
26366 
26367   template <>
26368   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet>
26369   {
26370     using Type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26371   };
26372 
26373 
26374   template <>
26375   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet>
26376   {
26377     using Type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26378   };
26379 
26380 
26381   template <>
26382   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorSet>
26383   {
26384     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
26385   };
26386 
26387   struct CopyDescriptorSet
26388   {
26389     static const bool allowDuplicate = false;
26390     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyDescriptorSet;
26391 
26392 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26393     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
26394     : srcSet( srcSet_ ), srcBinding( srcBinding_ ), srcArrayElement( srcArrayElement_ ), dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ )
26395     {}
26396 
26397     VULKAN_HPP_CONSTEXPR CopyDescriptorSet( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26398 
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26399     CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
26400     {
26401       *this = rhs;
26402     }
26403 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26404 
operator =VULKAN_HPP_NAMESPACE::CopyDescriptorSet26405     CopyDescriptorSet & operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
26406     {
26407       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyDescriptorSet const *>( &rhs );
26408       return *this;
26409     }
26410 
operator =VULKAN_HPP_NAMESPACE::CopyDescriptorSet26411     CopyDescriptorSet & operator=( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
26412     {
26413       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyDescriptorSet ) );
26414       return *this;
26415     }
26416 
setPNextVULKAN_HPP_NAMESPACE::CopyDescriptorSet26417     CopyDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26418     {
26419       pNext = pNext_;
26420       return *this;
26421     }
26422 
setSrcSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26423     CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT
26424     {
26425       srcSet = srcSet_;
26426       return *this;
26427     }
26428 
setSrcBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet26429     CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT
26430     {
26431       srcBinding = srcBinding_;
26432       return *this;
26433     }
26434 
setSrcArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet26435     CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT
26436     {
26437       srcArrayElement = srcArrayElement_;
26438       return *this;
26439     }
26440 
setDstSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26441     CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
26442     {
26443       dstSet = dstSet_;
26444       return *this;
26445     }
26446 
setDstBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet26447     CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
26448     {
26449       dstBinding = dstBinding_;
26450       return *this;
26451     }
26452 
setDstArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet26453     CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
26454     {
26455       dstArrayElement = dstArrayElement_;
26456       return *this;
26457     }
26458 
setDescriptorCountVULKAN_HPP_NAMESPACE::CopyDescriptorSet26459     CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
26460     {
26461       descriptorCount = descriptorCount_;
26462       return *this;
26463     }
26464 
26465 
operator VkCopyDescriptorSet const&VULKAN_HPP_NAMESPACE::CopyDescriptorSet26466     operator VkCopyDescriptorSet const&() const VULKAN_HPP_NOEXCEPT
26467     {
26468       return *reinterpret_cast<const VkCopyDescriptorSet*>( this );
26469     }
26470 
operator VkCopyDescriptorSet&VULKAN_HPP_NAMESPACE::CopyDescriptorSet26471     operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT
26472     {
26473       return *reinterpret_cast<VkCopyDescriptorSet*>( this );
26474     }
26475 
26476 
26477 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26478     auto operator<=>( CopyDescriptorSet const& ) const = default;
26479 #else
operator ==VULKAN_HPP_NAMESPACE::CopyDescriptorSet26480     bool operator==( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
26481     {
26482       return ( sType == rhs.sType )
26483           && ( pNext == rhs.pNext )
26484           && ( srcSet == rhs.srcSet )
26485           && ( srcBinding == rhs.srcBinding )
26486           && ( srcArrayElement == rhs.srcArrayElement )
26487           && ( dstSet == rhs.dstSet )
26488           && ( dstBinding == rhs.dstBinding )
26489           && ( dstArrayElement == rhs.dstArrayElement )
26490           && ( descriptorCount == rhs.descriptorCount );
26491     }
26492 
operator !=VULKAN_HPP_NAMESPACE::CopyDescriptorSet26493     bool operator!=( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
26494     {
26495       return !operator==( rhs );
26496     }
26497 #endif
26498 
26499 
26500 
26501   public:
26502     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet;
26503     const void* pNext = {};
26504     VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {};
26505     uint32_t srcBinding = {};
26506     uint32_t srcArrayElement = {};
26507     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
26508     uint32_t dstBinding = {};
26509     uint32_t dstArrayElement = {};
26510     uint32_t descriptorCount = {};
26511 
26512   };
26513   static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), "struct and wrapper have different size!" );
26514   static_assert( std::is_standard_layout<CopyDescriptorSet>::value, "struct wrapper is not a standard layout!" );
26515 
26516   template <>
26517   struct CppType<StructureType, StructureType::eCopyDescriptorSet>
26518   {
26519     using Type = CopyDescriptorSet;
26520   };
26521 
26522   struct ImageCopy2KHR
26523   {
26524     static const bool allowDuplicate = false;
26525     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCopy2KHR;
26526 
26527 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCopy2KHRVULKAN_HPP_NAMESPACE::ImageCopy2KHR26528     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
26529     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
26530     {}
26531 
26532     VULKAN_HPP_CONSTEXPR ImageCopy2KHR( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26533 
ImageCopy2KHRVULKAN_HPP_NAMESPACE::ImageCopy2KHR26534     ImageCopy2KHR( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26535     {
26536       *this = rhs;
26537     }
26538 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26539 
operator =VULKAN_HPP_NAMESPACE::ImageCopy2KHR26540     ImageCopy2KHR & operator=( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26541     {
26542       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy2KHR const *>( &rhs );
26543       return *this;
26544     }
26545 
operator =VULKAN_HPP_NAMESPACE::ImageCopy2KHR26546     ImageCopy2KHR & operator=( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26547     {
26548       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageCopy2KHR ) );
26549       return *this;
26550     }
26551 
setPNextVULKAN_HPP_NAMESPACE::ImageCopy2KHR26552     ImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26553     {
26554       pNext = pNext_;
26555       return *this;
26556     }
26557 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy2KHR26558     ImageCopy2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
26559     {
26560       srcSubresource = srcSubresource_;
26561       return *this;
26562     }
26563 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy2KHR26564     ImageCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
26565     {
26566       srcOffset = srcOffset_;
26567       return *this;
26568     }
26569 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy2KHR26570     ImageCopy2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
26571     {
26572       dstSubresource = dstSubresource_;
26573       return *this;
26574     }
26575 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy2KHR26576     ImageCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
26577     {
26578       dstOffset = dstOffset_;
26579       return *this;
26580     }
26581 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy2KHR26582     ImageCopy2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
26583     {
26584       extent = extent_;
26585       return *this;
26586     }
26587 
26588 
operator VkImageCopy2KHR const&VULKAN_HPP_NAMESPACE::ImageCopy2KHR26589     operator VkImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
26590     {
26591       return *reinterpret_cast<const VkImageCopy2KHR*>( this );
26592     }
26593 
operator VkImageCopy2KHR&VULKAN_HPP_NAMESPACE::ImageCopy2KHR26594     operator VkImageCopy2KHR &() VULKAN_HPP_NOEXCEPT
26595     {
26596       return *reinterpret_cast<VkImageCopy2KHR*>( this );
26597     }
26598 
26599 
26600 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26601     auto operator<=>( ImageCopy2KHR const& ) const = default;
26602 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCopy2KHR26603     bool operator==( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26604     {
26605       return ( sType == rhs.sType )
26606           && ( pNext == rhs.pNext )
26607           && ( srcSubresource == rhs.srcSubresource )
26608           && ( srcOffset == rhs.srcOffset )
26609           && ( dstSubresource == rhs.dstSubresource )
26610           && ( dstOffset == rhs.dstOffset )
26611           && ( extent == rhs.extent );
26612     }
26613 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy2KHR26614     bool operator!=( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26615     {
26616       return !operator==( rhs );
26617     }
26618 #endif
26619 
26620 
26621 
26622   public:
26623     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCopy2KHR;
26624     const void* pNext = {};
26625     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
26626     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
26627     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
26628     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
26629     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
26630 
26631   };
26632   static_assert( sizeof( ImageCopy2KHR ) == sizeof( VkImageCopy2KHR ), "struct and wrapper have different size!" );
26633   static_assert( std::is_standard_layout<ImageCopy2KHR>::value, "struct wrapper is not a standard layout!" );
26634 
26635   template <>
26636   struct CppType<StructureType, StructureType::eImageCopy2KHR>
26637   {
26638     using Type = ImageCopy2KHR;
26639   };
26640 
26641   struct CopyImageInfo2KHR
26642   {
26643     static const bool allowDuplicate = false;
26644     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageInfo2KHR;
26645 
26646 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26647     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
26648     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26649     {}
26650 
26651     VULKAN_HPP_CONSTEXPR CopyImageInfo2KHR( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26652 
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26653     CopyImageInfo2KHR( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26654     {
26655       *this = rhs;
26656     }
26657 
26658 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26659     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_ )
26660     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
26661     {}
26662 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26663 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26664 
operator =VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26665     CopyImageInfo2KHR & operator=( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26666     {
26667       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR const *>( &rhs );
26668       return *this;
26669     }
26670 
operator =VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26671     CopyImageInfo2KHR & operator=( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26672     {
26673       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyImageInfo2KHR ) );
26674       return *this;
26675     }
26676 
setPNextVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26677     CopyImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26678     {
26679       pNext = pNext_;
26680       return *this;
26681     }
26682 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26683     CopyImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
26684     {
26685       srcImage = srcImage_;
26686       return *this;
26687     }
26688 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26689     CopyImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
26690     {
26691       srcImageLayout = srcImageLayout_;
26692       return *this;
26693     }
26694 
setDstImageVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26695     CopyImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
26696     {
26697       dstImage = dstImage_;
26698       return *this;
26699     }
26700 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26701     CopyImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
26702     {
26703       dstImageLayout = dstImageLayout_;
26704       return *this;
26705     }
26706 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26707     CopyImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
26708     {
26709       regionCount = regionCount_;
26710       return *this;
26711     }
26712 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26713     CopyImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
26714     {
26715       pRegions = pRegions_;
26716       return *this;
26717     }
26718 
26719 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26720     CopyImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
26721     {
26722       regionCount = static_cast<uint32_t>( regions_.size() );
26723       pRegions = regions_.data();
26724       return *this;
26725     }
26726 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26727 
26728 
operator VkCopyImageInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26729     operator VkCopyImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
26730     {
26731       return *reinterpret_cast<const VkCopyImageInfo2KHR*>( this );
26732     }
26733 
operator VkCopyImageInfo2KHR&VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26734     operator VkCopyImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
26735     {
26736       return *reinterpret_cast<VkCopyImageInfo2KHR*>( this );
26737     }
26738 
26739 
26740 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26741     auto operator<=>( CopyImageInfo2KHR const& ) const = default;
26742 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26743     bool operator==( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26744     {
26745       return ( sType == rhs.sType )
26746           && ( pNext == rhs.pNext )
26747           && ( srcImage == rhs.srcImage )
26748           && ( srcImageLayout == rhs.srcImageLayout )
26749           && ( dstImage == rhs.dstImage )
26750           && ( dstImageLayout == rhs.dstImageLayout )
26751           && ( regionCount == rhs.regionCount )
26752           && ( pRegions == rhs.pRegions );
26753     }
26754 
operator !=VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26755     bool operator!=( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26756     {
26757       return !operator==( rhs );
26758     }
26759 #endif
26760 
26761 
26762 
26763   public:
26764     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageInfo2KHR;
26765     const void* pNext = {};
26766     VULKAN_HPP_NAMESPACE::Image srcImage = {};
26767     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26768     VULKAN_HPP_NAMESPACE::Image dstImage = {};
26769     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26770     uint32_t regionCount = {};
26771     const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions = {};
26772 
26773   };
26774   static_assert( sizeof( CopyImageInfo2KHR ) == sizeof( VkCopyImageInfo2KHR ), "struct and wrapper have different size!" );
26775   static_assert( std::is_standard_layout<CopyImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
26776 
26777   template <>
26778   struct CppType<StructureType, StructureType::eCopyImageInfo2KHR>
26779   {
26780     using Type = CopyImageInfo2KHR;
26781   };
26782 
26783   struct CopyImageToBufferInfo2KHR
26784   {
26785     static const bool allowDuplicate = false;
26786     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToBufferInfo2KHR;
26787 
26788 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26789     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
26790     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26791     {}
26792 
26793     VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2KHR( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26794 
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26795     CopyImageToBufferInfo2KHR( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26796     {
26797       *this = rhs;
26798     }
26799 
26800 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26801     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_ )
26802     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
26803     {}
26804 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26805 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26806 
operator =VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26807     CopyImageToBufferInfo2KHR & operator=( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26808     {
26809       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR const *>( &rhs );
26810       return *this;
26811     }
26812 
operator =VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26813     CopyImageToBufferInfo2KHR & operator=( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26814     {
26815       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyImageToBufferInfo2KHR ) );
26816       return *this;
26817     }
26818 
setPNextVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26819     CopyImageToBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26820     {
26821       pNext = pNext_;
26822       return *this;
26823     }
26824 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26825     CopyImageToBufferInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
26826     {
26827       srcImage = srcImage_;
26828       return *this;
26829     }
26830 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26831     CopyImageToBufferInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
26832     {
26833       srcImageLayout = srcImageLayout_;
26834       return *this;
26835     }
26836 
setDstBufferVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26837     CopyImageToBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
26838     {
26839       dstBuffer = dstBuffer_;
26840       return *this;
26841     }
26842 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26843     CopyImageToBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
26844     {
26845       regionCount = regionCount_;
26846       return *this;
26847     }
26848 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26849     CopyImageToBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
26850     {
26851       pRegions = pRegions_;
26852       return *this;
26853     }
26854 
26855 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26856     CopyImageToBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
26857     {
26858       regionCount = static_cast<uint32_t>( regions_.size() );
26859       pRegions = regions_.data();
26860       return *this;
26861     }
26862 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26863 
26864 
operator VkCopyImageToBufferInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26865     operator VkCopyImageToBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
26866     {
26867       return *reinterpret_cast<const VkCopyImageToBufferInfo2KHR*>( this );
26868     }
26869 
operator VkCopyImageToBufferInfo2KHR&VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26870     operator VkCopyImageToBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT
26871     {
26872       return *reinterpret_cast<VkCopyImageToBufferInfo2KHR*>( this );
26873     }
26874 
26875 
26876 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26877     auto operator<=>( CopyImageToBufferInfo2KHR const& ) const = default;
26878 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26879     bool operator==( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26880     {
26881       return ( sType == rhs.sType )
26882           && ( pNext == rhs.pNext )
26883           && ( srcImage == rhs.srcImage )
26884           && ( srcImageLayout == rhs.srcImageLayout )
26885           && ( dstBuffer == rhs.dstBuffer )
26886           && ( regionCount == rhs.regionCount )
26887           && ( pRegions == rhs.pRegions );
26888     }
26889 
operator !=VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26890     bool operator!=( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26891     {
26892       return !operator==( rhs );
26893     }
26894 #endif
26895 
26896 
26897 
26898   public:
26899     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToBufferInfo2KHR;
26900     const void* pNext = {};
26901     VULKAN_HPP_NAMESPACE::Image srcImage = {};
26902     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26903     VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
26904     uint32_t regionCount = {};
26905     const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {};
26906 
26907   };
26908   static_assert( sizeof( CopyImageToBufferInfo2KHR ) == sizeof( VkCopyImageToBufferInfo2KHR ), "struct and wrapper have different size!" );
26909   static_assert( std::is_standard_layout<CopyImageToBufferInfo2KHR>::value, "struct wrapper is not a standard layout!" );
26910 
26911   template <>
26912   struct CppType<StructureType, StructureType::eCopyImageToBufferInfo2KHR>
26913   {
26914     using Type = CopyImageToBufferInfo2KHR;
26915   };
26916 
26917 #ifdef VK_ENABLE_BETA_EXTENSIONS
26918   struct CopyMemoryToAccelerationStructureInfoKHR
26919   {
26920     static const bool allowDuplicate = false;
26921     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
26922 
26923 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26924     CopyMemoryToAccelerationStructureInfoKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT
26925     : src( src_ ), dst( dst_ ), mode( mode_ )
26926     {}
26927 
26928     CopyMemoryToAccelerationStructureInfoKHR( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26929 
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26930     CopyMemoryToAccelerationStructureInfoKHR( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26931     {
26932       *this = rhs;
26933     }
26934 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26935 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26936     CopyMemoryToAccelerationStructureInfoKHR & operator=( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26937     {
26938       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR const *>( &rhs );
26939       return *this;
26940     }
26941 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26942     CopyMemoryToAccelerationStructureInfoKHR & operator=( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26943     {
26944       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyMemoryToAccelerationStructureInfoKHR ) );
26945       return *this;
26946     }
26947 
setPNextVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26948     CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26949     {
26950       pNext = pNext_;
26951       return *this;
26952     }
26953 
setSrcVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26954     CopyMemoryToAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
26955     {
26956       src = src_;
26957       return *this;
26958     }
26959 
setDstVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26960     CopyMemoryToAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
26961     {
26962       dst = dst_;
26963       return *this;
26964     }
26965 
setModeVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26966     CopyMemoryToAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
26967     {
26968       mode = mode_;
26969       return *this;
26970     }
26971 
26972 
operator VkCopyMemoryToAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26973     operator VkCopyMemoryToAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT
26974     {
26975       return *reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
26976     }
26977 
operator VkCopyMemoryToAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26978     operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
26979     {
26980       return *reinterpret_cast<VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
26981     }
26982 
26983 
26984 
26985 
26986   public:
26987     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
26988     const void* pNext = {};
26989     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {};
26990     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
26991     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
26992 
26993   };
26994   static_assert( sizeof( CopyMemoryToAccelerationStructureInfoKHR ) == sizeof( VkCopyMemoryToAccelerationStructureInfoKHR ), "struct and wrapper have different size!" );
26995   static_assert( std::is_standard_layout<CopyMemoryToAccelerationStructureInfoKHR>::value, "struct wrapper is not a standard layout!" );
26996 
26997   template <>
26998   struct CppType<StructureType, StructureType::eCopyMemoryToAccelerationStructureInfoKHR>
26999   {
27000     using Type = CopyMemoryToAccelerationStructureInfoKHR;
27001   };
27002 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
27003 
27004 #ifdef VK_USE_PLATFORM_WIN32_KHR
27005   struct D3D12FenceSubmitInfoKHR
27006   {
27007     static const bool allowDuplicate = false;
27008     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eD3D12FenceSubmitInfoKHR;
27009 
27010 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27011     VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR(uint32_t waitSemaphoreValuesCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValuesCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT
27012     : waitSemaphoreValuesCount( waitSemaphoreValuesCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValuesCount( signalSemaphoreValuesCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ )
27013     {}
27014 
27015     VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27016 
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27017     D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27018     {
27019       *this = rhs;
27020     }
27021 
27022 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27023     D3D12FenceSubmitInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {} )
27024     : waitSemaphoreValuesCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValuesCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() )
27025     {}
27026 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27027 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27028 
operator =VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27029     D3D12FenceSubmitInfoKHR & operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27030     {
27031       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR const *>( &rhs );
27032       return *this;
27033     }
27034 
operator =VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27035     D3D12FenceSubmitInfoKHR & operator=( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27036     {
27037       memcpy( static_cast<void *>( this ), &rhs, sizeof( D3D12FenceSubmitInfoKHR ) );
27038       return *this;
27039     }
27040 
setPNextVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27041     D3D12FenceSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27042     {
27043       pNext = pNext_;
27044       return *this;
27045     }
27046 
setWaitSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27047     D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
27048     {
27049       waitSemaphoreValuesCount = waitSemaphoreValuesCount_;
27050       return *this;
27051     }
27052 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27053     D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
27054     {
27055       pWaitSemaphoreValues = pWaitSemaphoreValues_;
27056       return *this;
27057     }
27058 
27059 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27060     D3D12FenceSubmitInfoKHR & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
27061     {
27062       waitSemaphoreValuesCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
27063       pWaitSemaphoreValues = waitSemaphoreValues_.data();
27064       return *this;
27065     }
27066 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27067 
setSignalSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27068     D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
27069     {
27070       signalSemaphoreValuesCount = signalSemaphoreValuesCount_;
27071       return *this;
27072     }
27073 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27074     D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
27075     {
27076       pSignalSemaphoreValues = pSignalSemaphoreValues_;
27077       return *this;
27078     }
27079 
27080 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27081     D3D12FenceSubmitInfoKHR & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
27082     {
27083       signalSemaphoreValuesCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
27084       pSignalSemaphoreValues = signalSemaphoreValues_.data();
27085       return *this;
27086     }
27087 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27088 
27089 
operator VkD3D12FenceSubmitInfoKHR const&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27090     operator VkD3D12FenceSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
27091     {
27092       return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>( this );
27093     }
27094 
operator VkD3D12FenceSubmitInfoKHR&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27095     operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
27096     {
27097       return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>( this );
27098     }
27099 
27100 
27101 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27102     auto operator<=>( D3D12FenceSubmitInfoKHR const& ) const = default;
27103 #else
operator ==VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27104     bool operator==( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27105     {
27106       return ( sType == rhs.sType )
27107           && ( pNext == rhs.pNext )
27108           && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount )
27109           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
27110           && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount )
27111           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
27112     }
27113 
operator !=VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27114     bool operator!=( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27115     {
27116       return !operator==( rhs );
27117     }
27118 #endif
27119 
27120 
27121 
27122   public:
27123     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR;
27124     const void* pNext = {};
27125     uint32_t waitSemaphoreValuesCount = {};
27126     const uint64_t* pWaitSemaphoreValues = {};
27127     uint32_t signalSemaphoreValuesCount = {};
27128     const uint64_t* pSignalSemaphoreValues = {};
27129 
27130   };
27131   static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), "struct and wrapper have different size!" );
27132   static_assert( std::is_standard_layout<D3D12FenceSubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
27133 
27134   template <>
27135   struct CppType<StructureType, StructureType::eD3D12FenceSubmitInfoKHR>
27136   {
27137     using Type = D3D12FenceSubmitInfoKHR;
27138   };
27139 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
27140 
27141   struct DebugMarkerMarkerInfoEXT
27142   {
27143     static const bool allowDuplicate = false;
27144     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerMarkerInfoEXT;
27145 
27146 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27147     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT(const char* pMarkerName_ = {}, std::array<float,4> const& color_ = {}) VULKAN_HPP_NOEXCEPT
27148     : pMarkerName( pMarkerName_ ), color( color_ )
27149     {}
27150 
27151     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27152 
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27153     DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27154     {
27155       *this = rhs;
27156     }
27157 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27158 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27159     DebugMarkerMarkerInfoEXT & operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27160     {
27161       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT const *>( &rhs );
27162       return *this;
27163     }
27164 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27165     DebugMarkerMarkerInfoEXT & operator=( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27166     {
27167       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugMarkerMarkerInfoEXT ) );
27168       return *this;
27169     }
27170 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27171     DebugMarkerMarkerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27172     {
27173       pNext = pNext_;
27174       return *this;
27175     }
27176 
setPMarkerNameVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27177     DebugMarkerMarkerInfoEXT & setPMarkerName( const char* pMarkerName_ ) VULKAN_HPP_NOEXCEPT
27178     {
27179       pMarkerName = pMarkerName_;
27180       return *this;
27181     }
27182 
setColorVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27183     DebugMarkerMarkerInfoEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
27184     {
27185       color = color_;
27186       return *this;
27187     }
27188 
27189 
operator VkDebugMarkerMarkerInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27190     operator VkDebugMarkerMarkerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27191     {
27192       return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( this );
27193     }
27194 
operator VkDebugMarkerMarkerInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27195     operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT
27196     {
27197       return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>( this );
27198     }
27199 
27200 
27201 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27202     auto operator<=>( DebugMarkerMarkerInfoEXT const& ) const = default;
27203 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27204     bool operator==( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27205     {
27206       return ( sType == rhs.sType )
27207           && ( pNext == rhs.pNext )
27208           && ( pMarkerName == rhs.pMarkerName )
27209           && ( color == rhs.color );
27210     }
27211 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27212     bool operator!=( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27213     {
27214       return !operator==( rhs );
27215     }
27216 #endif
27217 
27218 
27219 
27220   public:
27221     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT;
27222     const void* pNext = {};
27223     const char* pMarkerName = {};
27224     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
27225 
27226   };
27227   static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), "struct and wrapper have different size!" );
27228   static_assert( std::is_standard_layout<DebugMarkerMarkerInfoEXT>::value, "struct wrapper is not a standard layout!" );
27229 
27230   template <>
27231   struct CppType<StructureType, StructureType::eDebugMarkerMarkerInfoEXT>
27232   {
27233     using Type = DebugMarkerMarkerInfoEXT;
27234   };
27235 
27236   struct DebugMarkerObjectNameInfoEXT
27237   {
27238     static const bool allowDuplicate = false;
27239     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectNameInfoEXT;
27240 
27241 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27242     VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, uint64_t object_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT
27243     : objectType( objectType_ ), object( object_ ), pObjectName( pObjectName_ )
27244     {}
27245 
27246     VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27247 
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27248     DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27249     {
27250       *this = rhs;
27251     }
27252 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27253 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27254     DebugMarkerObjectNameInfoEXT & operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27255     {
27256       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT const *>( &rhs );
27257       return *this;
27258     }
27259 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27260     DebugMarkerObjectNameInfoEXT & operator=( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27261     {
27262       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugMarkerObjectNameInfoEXT ) );
27263       return *this;
27264     }
27265 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27266     DebugMarkerObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27267     {
27268       pNext = pNext_;
27269       return *this;
27270     }
27271 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27272     DebugMarkerObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
27273     {
27274       objectType = objectType_;
27275       return *this;
27276     }
27277 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27278     DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
27279     {
27280       object = object_;
27281       return *this;
27282     }
27283 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27284     DebugMarkerObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT
27285     {
27286       pObjectName = pObjectName_;
27287       return *this;
27288     }
27289 
27290 
operator VkDebugMarkerObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27291     operator VkDebugMarkerObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27292     {
27293       return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( this );
27294     }
27295 
operator VkDebugMarkerObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27296     operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
27297     {
27298       return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>( this );
27299     }
27300 
27301 
27302 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27303     auto operator<=>( DebugMarkerObjectNameInfoEXT const& ) const = default;
27304 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27305     bool operator==( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27306     {
27307       return ( sType == rhs.sType )
27308           && ( pNext == rhs.pNext )
27309           && ( objectType == rhs.objectType )
27310           && ( object == rhs.object )
27311           && ( pObjectName == rhs.pObjectName );
27312     }
27313 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27314     bool operator!=( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27315     {
27316       return !operator==( rhs );
27317     }
27318 #endif
27319 
27320 
27321 
27322   public:
27323     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT;
27324     const void* pNext = {};
27325     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
27326     uint64_t object = {};
27327     const char* pObjectName = {};
27328 
27329   };
27330   static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), "struct and wrapper have different size!" );
27331   static_assert( std::is_standard_layout<DebugMarkerObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
27332 
27333   template <>
27334   struct CppType<StructureType, StructureType::eDebugMarkerObjectNameInfoEXT>
27335   {
27336     using Type = DebugMarkerObjectNameInfoEXT;
27337   };
27338 
27339   struct DebugMarkerObjectTagInfoEXT
27340   {
27341     static const bool allowDuplicate = false;
27342     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectTagInfoEXT;
27343 
27344 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27345     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
27346     : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ )
27347     {}
27348 
27349     VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27350 
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27351     DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27352     {
27353       *this = rhs;
27354     }
27355 
27356 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27357     template <typename T>
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27358     DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, uint64_t object_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ )
27359     : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() )
27360     {}
27361 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27362 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27363 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27364     DebugMarkerObjectTagInfoEXT & operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27365     {
27366       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT const *>( &rhs );
27367       return *this;
27368     }
27369 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27370     DebugMarkerObjectTagInfoEXT & operator=( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27371     {
27372       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugMarkerObjectTagInfoEXT ) );
27373       return *this;
27374     }
27375 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27376     DebugMarkerObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27377     {
27378       pNext = pNext_;
27379       return *this;
27380     }
27381 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27382     DebugMarkerObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
27383     {
27384       objectType = objectType_;
27385       return *this;
27386     }
27387 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27388     DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
27389     {
27390       object = object_;
27391       return *this;
27392     }
27393 
setTagNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27394     DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
27395     {
27396       tagName = tagName_;
27397       return *this;
27398     }
27399 
setTagSizeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27400     DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
27401     {
27402       tagSize = tagSize_;
27403       return *this;
27404     }
27405 
setPTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27406     DebugMarkerObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT
27407     {
27408       pTag = pTag_;
27409       return *this;
27410     }
27411 
27412 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27413     template <typename T>
setTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27414     DebugMarkerObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
27415     {
27416       tagSize = tag_.size() * sizeof(T);
27417       pTag = tag_.data();
27418       return *this;
27419     }
27420 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27421 
27422 
operator VkDebugMarkerObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27423     operator VkDebugMarkerObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27424     {
27425       return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( this );
27426     }
27427 
operator VkDebugMarkerObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27428     operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
27429     {
27430       return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>( this );
27431     }
27432 
27433 
27434 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27435     auto operator<=>( DebugMarkerObjectTagInfoEXT const& ) const = default;
27436 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27437     bool operator==( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27438     {
27439       return ( sType == rhs.sType )
27440           && ( pNext == rhs.pNext )
27441           && ( objectType == rhs.objectType )
27442           && ( object == rhs.object )
27443           && ( tagName == rhs.tagName )
27444           && ( tagSize == rhs.tagSize )
27445           && ( pTag == rhs.pTag );
27446     }
27447 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27448     bool operator!=( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27449     {
27450       return !operator==( rhs );
27451     }
27452 #endif
27453 
27454 
27455 
27456   public:
27457     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT;
27458     const void* pNext = {};
27459     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
27460     uint64_t object = {};
27461     uint64_t tagName = {};
27462     size_t tagSize = {};
27463     const void* pTag = {};
27464 
27465   };
27466   static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), "struct and wrapper have different size!" );
27467   static_assert( std::is_standard_layout<DebugMarkerObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
27468 
27469   template <>
27470   struct CppType<StructureType, StructureType::eDebugMarkerObjectTagInfoEXT>
27471   {
27472     using Type = DebugMarkerObjectTagInfoEXT;
27473   };
27474 
27475   struct DebugReportCallbackCreateInfoEXT
27476   {
27477     static const bool allowDuplicate = false;
27478     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugReportCallbackCreateInfoEXT;
27479 
27480 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27481     VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {}, PFN_vkDebugReportCallbackEXT pfnCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
27482     : flags( flags_ ), pfnCallback( pfnCallback_ ), pUserData( pUserData_ )
27483     {}
27484 
27485     VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27486 
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27487     DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27488     {
27489       *this = rhs;
27490     }
27491 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27492 
operator =VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27493     DebugReportCallbackCreateInfoEXT & operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27494     {
27495       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const *>( &rhs );
27496       return *this;
27497     }
27498 
operator =VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27499     DebugReportCallbackCreateInfoEXT & operator=( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27500     {
27501       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugReportCallbackCreateInfoEXT ) );
27502       return *this;
27503     }
27504 
setPNextVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27505     DebugReportCallbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27506     {
27507       pNext = pNext_;
27508       return *this;
27509     }
27510 
setFlagsVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27511     DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
27512     {
27513       flags = flags_;
27514       return *this;
27515     }
27516 
setPfnCallbackVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27517     DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT
27518     {
27519       pfnCallback = pfnCallback_;
27520       return *this;
27521     }
27522 
setPUserDataVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27523     DebugReportCallbackCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
27524     {
27525       pUserData = pUserData_;
27526       return *this;
27527     }
27528 
27529 
operator VkDebugReportCallbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27530     operator VkDebugReportCallbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27531     {
27532       return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( this );
27533     }
27534 
operator VkDebugReportCallbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27535     operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
27536     {
27537       return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>( this );
27538     }
27539 
27540 
27541 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27542     auto operator<=>( DebugReportCallbackCreateInfoEXT const& ) const = default;
27543 #else
operator ==VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27544     bool operator==( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27545     {
27546       return ( sType == rhs.sType )
27547           && ( pNext == rhs.pNext )
27548           && ( flags == rhs.flags )
27549           && ( pfnCallback == rhs.pfnCallback )
27550           && ( pUserData == rhs.pUserData );
27551     }
27552 
operator !=VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27553     bool operator!=( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27554     {
27555       return !operator==( rhs );
27556     }
27557 #endif
27558 
27559 
27560 
27561   public:
27562     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT;
27563     const void* pNext = {};
27564     VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {};
27565     PFN_vkDebugReportCallbackEXT pfnCallback = {};
27566     void* pUserData = {};
27567 
27568   };
27569   static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), "struct and wrapper have different size!" );
27570   static_assert( std::is_standard_layout<DebugReportCallbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
27571 
27572   template <>
27573   struct CppType<StructureType, StructureType::eDebugReportCallbackCreateInfoEXT>
27574   {
27575     using Type = DebugReportCallbackCreateInfoEXT;
27576   };
27577 
27578   struct DebugUtilsLabelEXT
27579   {
27580     static const bool allowDuplicate = false;
27581     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsLabelEXT;
27582 
27583 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27584     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT(const char* pLabelName_ = {}, std::array<float,4> const& color_ = {}) VULKAN_HPP_NOEXCEPT
27585     : pLabelName( pLabelName_ ), color( color_ )
27586     {}
27587 
27588     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27589 
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27590     DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27591     {
27592       *this = rhs;
27593     }
27594 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27595 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27596     DebugUtilsLabelEXT & operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27597     {
27598       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT const *>( &rhs );
27599       return *this;
27600     }
27601 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27602     DebugUtilsLabelEXT & operator=( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27603     {
27604       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsLabelEXT ) );
27605       return *this;
27606     }
27607 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27608     DebugUtilsLabelEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27609     {
27610       pNext = pNext_;
27611       return *this;
27612     }
27613 
setPLabelNameVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27614     DebugUtilsLabelEXT & setPLabelName( const char* pLabelName_ ) VULKAN_HPP_NOEXCEPT
27615     {
27616       pLabelName = pLabelName_;
27617       return *this;
27618     }
27619 
setColorVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27620     DebugUtilsLabelEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
27621     {
27622       color = color_;
27623       return *this;
27624     }
27625 
27626 
operator VkDebugUtilsLabelEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27627     operator VkDebugUtilsLabelEXT const&() const VULKAN_HPP_NOEXCEPT
27628     {
27629       return *reinterpret_cast<const VkDebugUtilsLabelEXT*>( this );
27630     }
27631 
operator VkDebugUtilsLabelEXT&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27632     operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT
27633     {
27634       return *reinterpret_cast<VkDebugUtilsLabelEXT*>( this );
27635     }
27636 
27637 
27638 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27639     auto operator<=>( DebugUtilsLabelEXT const& ) const = default;
27640 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27641     bool operator==( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27642     {
27643       return ( sType == rhs.sType )
27644           && ( pNext == rhs.pNext )
27645           && ( pLabelName == rhs.pLabelName )
27646           && ( color == rhs.color );
27647     }
27648 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27649     bool operator!=( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27650     {
27651       return !operator==( rhs );
27652     }
27653 #endif
27654 
27655 
27656 
27657   public:
27658     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT;
27659     const void* pNext = {};
27660     const char* pLabelName = {};
27661     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
27662 
27663   };
27664   static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), "struct and wrapper have different size!" );
27665   static_assert( std::is_standard_layout<DebugUtilsLabelEXT>::value, "struct wrapper is not a standard layout!" );
27666 
27667   template <>
27668   struct CppType<StructureType, StructureType::eDebugUtilsLabelEXT>
27669   {
27670     using Type = DebugUtilsLabelEXT;
27671   };
27672 
27673   struct DebugUtilsObjectNameInfoEXT
27674   {
27675     static const bool allowDuplicate = false;
27676     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectNameInfoEXT;
27677 
27678 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27679     VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT
27680     : objectType( objectType_ ), objectHandle( objectHandle_ ), pObjectName( pObjectName_ )
27681     {}
27682 
27683     VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27684 
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27685     DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27686     {
27687       *this = rhs;
27688     }
27689 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27690 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27691     DebugUtilsObjectNameInfoEXT & operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27692     {
27693       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT const *>( &rhs );
27694       return *this;
27695     }
27696 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27697     DebugUtilsObjectNameInfoEXT & operator=( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27698     {
27699       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsObjectNameInfoEXT ) );
27700       return *this;
27701     }
27702 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27703     DebugUtilsObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27704     {
27705       pNext = pNext_;
27706       return *this;
27707     }
27708 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27709     DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
27710     {
27711       objectType = objectType_;
27712       return *this;
27713     }
27714 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27715     DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
27716     {
27717       objectHandle = objectHandle_;
27718       return *this;
27719     }
27720 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27721     DebugUtilsObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT
27722     {
27723       pObjectName = pObjectName_;
27724       return *this;
27725     }
27726 
27727 
operator VkDebugUtilsObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27728     operator VkDebugUtilsObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27729     {
27730       return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( this );
27731     }
27732 
operator VkDebugUtilsObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27733     operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
27734     {
27735       return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>( this );
27736     }
27737 
27738 
27739 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27740     auto operator<=>( DebugUtilsObjectNameInfoEXT const& ) const = default;
27741 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27742     bool operator==( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27743     {
27744       return ( sType == rhs.sType )
27745           && ( pNext == rhs.pNext )
27746           && ( objectType == rhs.objectType )
27747           && ( objectHandle == rhs.objectHandle )
27748           && ( pObjectName == rhs.pObjectName );
27749     }
27750 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27751     bool operator!=( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27752     {
27753       return !operator==( rhs );
27754     }
27755 #endif
27756 
27757 
27758 
27759   public:
27760     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT;
27761     const void* pNext = {};
27762     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
27763     uint64_t objectHandle = {};
27764     const char* pObjectName = {};
27765 
27766   };
27767   static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), "struct and wrapper have different size!" );
27768   static_assert( std::is_standard_layout<DebugUtilsObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
27769 
27770   template <>
27771   struct CppType<StructureType, StructureType::eDebugUtilsObjectNameInfoEXT>
27772   {
27773     using Type = DebugUtilsObjectNameInfoEXT;
27774   };
27775 
27776   struct DebugUtilsMessengerCallbackDataEXT
27777   {
27778     static const bool allowDuplicate = false;
27779     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
27780 
27781 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27782     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
27783     : flags( flags_ ), pMessageIdName( pMessageIdName_ ), messageIdNumber( messageIdNumber_ ), pMessage( pMessage_ ), queueLabelCount( queueLabelCount_ ), pQueueLabels( pQueueLabels_ ), cmdBufLabelCount( cmdBufLabelCount_ ), pCmdBufLabels( pCmdBufLabels_ ), objectCount( objectCount_ ), pObjects( pObjects_ )
27784     {}
27785 
27786     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27787 
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27788     DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27789     {
27790       *this = rhs;
27791     }
27792 
27793 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27794     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_ = {} )
27795     : 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() )
27796     {}
27797 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27798 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27799 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27800     DebugUtilsMessengerCallbackDataEXT & operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27801     {
27802       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT const *>( &rhs );
27803       return *this;
27804     }
27805 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27806     DebugUtilsMessengerCallbackDataEXT & operator=( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27807     {
27808       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsMessengerCallbackDataEXT ) );
27809       return *this;
27810     }
27811 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27812     DebugUtilsMessengerCallbackDataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27813     {
27814       pNext = pNext_;
27815       return *this;
27816     }
27817 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27818     DebugUtilsMessengerCallbackDataEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
27819     {
27820       flags = flags_;
27821       return *this;
27822     }
27823 
setPMessageIdNameVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27824     DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char* pMessageIdName_ ) VULKAN_HPP_NOEXCEPT
27825     {
27826       pMessageIdName = pMessageIdName_;
27827       return *this;
27828     }
27829 
setMessageIdNumberVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27830     DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT
27831     {
27832       messageIdNumber = messageIdNumber_;
27833       return *this;
27834     }
27835 
setPMessageVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27836     DebugUtilsMessengerCallbackDataEXT & setPMessage( const char* pMessage_ ) VULKAN_HPP_NOEXCEPT
27837     {
27838       pMessage = pMessage_;
27839       return *this;
27840     }
27841 
setQueueLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27842     DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT
27843     {
27844       queueLabelCount = queueLabelCount_;
27845       return *this;
27846     }
27847 
setPQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27848     DebugUtilsMessengerCallbackDataEXT & setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ ) VULKAN_HPP_NOEXCEPT
27849     {
27850       pQueueLabels = pQueueLabels_;
27851       return *this;
27852     }
27853 
27854 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27855     DebugUtilsMessengerCallbackDataEXT & setQueueLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & queueLabels_ ) VULKAN_HPP_NOEXCEPT
27856     {
27857       queueLabelCount = static_cast<uint32_t>( queueLabels_.size() );
27858       pQueueLabels = queueLabels_.data();
27859       return *this;
27860     }
27861 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27862 
setCmdBufLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27863     DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT
27864     {
27865       cmdBufLabelCount = cmdBufLabelCount_;
27866       return *this;
27867     }
27868 
setPCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27869     DebugUtilsMessengerCallbackDataEXT & setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
27870     {
27871       pCmdBufLabels = pCmdBufLabels_;
27872       return *this;
27873     }
27874 
27875 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27876     DebugUtilsMessengerCallbackDataEXT & setCmdBufLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & cmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
27877     {
27878       cmdBufLabelCount = static_cast<uint32_t>( cmdBufLabels_.size() );
27879       pCmdBufLabels = cmdBufLabels_.data();
27880       return *this;
27881     }
27882 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27883 
setObjectCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27884     DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT
27885     {
27886       objectCount = objectCount_;
27887       return *this;
27888     }
27889 
setPObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27890     DebugUtilsMessengerCallbackDataEXT & setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ ) VULKAN_HPP_NOEXCEPT
27891     {
27892       pObjects = pObjects_;
27893       return *this;
27894     }
27895 
27896 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27897     DebugUtilsMessengerCallbackDataEXT & setObjects( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const & objects_ ) VULKAN_HPP_NOEXCEPT
27898     {
27899       objectCount = static_cast<uint32_t>( objects_.size() );
27900       pObjects = objects_.data();
27901       return *this;
27902     }
27903 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27904 
27905 
operator VkDebugUtilsMessengerCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27906     operator VkDebugUtilsMessengerCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT
27907     {
27908       return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( this );
27909     }
27910 
operator VkDebugUtilsMessengerCallbackDataEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27911     operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
27912     {
27913       return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>( this );
27914     }
27915 
27916 
27917 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27918     auto operator<=>( DebugUtilsMessengerCallbackDataEXT const& ) const = default;
27919 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27920     bool operator==( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27921     {
27922       return ( sType == rhs.sType )
27923           && ( pNext == rhs.pNext )
27924           && ( flags == rhs.flags )
27925           && ( pMessageIdName == rhs.pMessageIdName )
27926           && ( messageIdNumber == rhs.messageIdNumber )
27927           && ( pMessage == rhs.pMessage )
27928           && ( queueLabelCount == rhs.queueLabelCount )
27929           && ( pQueueLabels == rhs.pQueueLabels )
27930           && ( cmdBufLabelCount == rhs.cmdBufLabelCount )
27931           && ( pCmdBufLabels == rhs.pCmdBufLabels )
27932           && ( objectCount == rhs.objectCount )
27933           && ( pObjects == rhs.pObjects );
27934     }
27935 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27936     bool operator!=( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27937     {
27938       return !operator==( rhs );
27939     }
27940 #endif
27941 
27942 
27943 
27944   public:
27945     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
27946     const void* pNext = {};
27947     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {};
27948     const char* pMessageIdName = {};
27949     int32_t messageIdNumber = {};
27950     const char* pMessage = {};
27951     uint32_t queueLabelCount = {};
27952     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels = {};
27953     uint32_t cmdBufLabelCount = {};
27954     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels = {};
27955     uint32_t objectCount = {};
27956     const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects = {};
27957 
27958   };
27959   static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), "struct and wrapper have different size!" );
27960   static_assert( std::is_standard_layout<DebugUtilsMessengerCallbackDataEXT>::value, "struct wrapper is not a standard layout!" );
27961 
27962   template <>
27963   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCallbackDataEXT>
27964   {
27965     using Type = DebugUtilsMessengerCallbackDataEXT;
27966   };
27967 
27968   struct DebugUtilsMessengerCreateInfoEXT
27969   {
27970     static const bool allowDuplicate = true;
27971     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
27972 
27973 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27974     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
27975     : flags( flags_ ), messageSeverity( messageSeverity_ ), messageType( messageType_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ )
27976     {}
27977 
27978     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27979 
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27980     DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27981     {
27982       *this = rhs;
27983     }
27984 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27985 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27986     DebugUtilsMessengerCreateInfoEXT & operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27987     {
27988       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const *>( &rhs );
27989       return *this;
27990     }
27991 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27992     DebugUtilsMessengerCreateInfoEXT & operator=( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27993     {
27994       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsMessengerCreateInfoEXT ) );
27995       return *this;
27996     }
27997 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27998     DebugUtilsMessengerCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27999     {
28000       pNext = pNext_;
28001       return *this;
28002     }
28003 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28004     DebugUtilsMessengerCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
28005     {
28006       flags = flags_;
28007       return *this;
28008     }
28009 
setMessageSeverityVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28010     DebugUtilsMessengerCreateInfoEXT & setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT
28011     {
28012       messageSeverity = messageSeverity_;
28013       return *this;
28014     }
28015 
setMessageTypeVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28016     DebugUtilsMessengerCreateInfoEXT & setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT
28017     {
28018       messageType = messageType_;
28019       return *this;
28020     }
28021 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28022     DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
28023     {
28024       pfnUserCallback = pfnUserCallback_;
28025       return *this;
28026     }
28027 
setPUserDataVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28028     DebugUtilsMessengerCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
28029     {
28030       pUserData = pUserData_;
28031       return *this;
28032     }
28033 
28034 
operator VkDebugUtilsMessengerCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28035     operator VkDebugUtilsMessengerCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
28036     {
28037       return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( this );
28038     }
28039 
operator VkDebugUtilsMessengerCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28040     operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
28041     {
28042       return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>( this );
28043     }
28044 
28045 
28046 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28047     auto operator<=>( DebugUtilsMessengerCreateInfoEXT const& ) const = default;
28048 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28049     bool operator==( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28050     {
28051       return ( sType == rhs.sType )
28052           && ( pNext == rhs.pNext )
28053           && ( flags == rhs.flags )
28054           && ( messageSeverity == rhs.messageSeverity )
28055           && ( messageType == rhs.messageType )
28056           && ( pfnUserCallback == rhs.pfnUserCallback )
28057           && ( pUserData == rhs.pUserData );
28058     }
28059 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28060     bool operator!=( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28061     {
28062       return !operator==( rhs );
28063     }
28064 #endif
28065 
28066 
28067 
28068   public:
28069     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
28070     const void* pNext = {};
28071     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {};
28072     VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {};
28073     VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {};
28074     PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {};
28075     void* pUserData = {};
28076 
28077   };
28078   static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), "struct and wrapper have different size!" );
28079   static_assert( std::is_standard_layout<DebugUtilsMessengerCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
28080 
28081   template <>
28082   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCreateInfoEXT>
28083   {
28084     using Type = DebugUtilsMessengerCreateInfoEXT;
28085   };
28086 
28087   struct DebugUtilsObjectTagInfoEXT
28088   {
28089     static const bool allowDuplicate = false;
28090     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectTagInfoEXT;
28091 
28092 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28093     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
28094     : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ )
28095     {}
28096 
28097     VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28098 
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28099     DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28100     {
28101       *this = rhs;
28102     }
28103 
28104 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28105     template <typename T>
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28106     DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, uint64_t objectHandle_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ )
28107     : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() )
28108     {}
28109 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28110 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28111 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28112     DebugUtilsObjectTagInfoEXT & operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28113     {
28114       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT const *>( &rhs );
28115       return *this;
28116     }
28117 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28118     DebugUtilsObjectTagInfoEXT & operator=( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28119     {
28120       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsObjectTagInfoEXT ) );
28121       return *this;
28122     }
28123 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28124     DebugUtilsObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28125     {
28126       pNext = pNext_;
28127       return *this;
28128     }
28129 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28130     DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
28131     {
28132       objectType = objectType_;
28133       return *this;
28134     }
28135 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28136     DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
28137     {
28138       objectHandle = objectHandle_;
28139       return *this;
28140     }
28141 
setTagNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28142     DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
28143     {
28144       tagName = tagName_;
28145       return *this;
28146     }
28147 
setTagSizeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28148     DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
28149     {
28150       tagSize = tagSize_;
28151       return *this;
28152     }
28153 
setPTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28154     DebugUtilsObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT
28155     {
28156       pTag = pTag_;
28157       return *this;
28158     }
28159 
28160 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28161     template <typename T>
setTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28162     DebugUtilsObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
28163     {
28164       tagSize = tag_.size() * sizeof(T);
28165       pTag = tag_.data();
28166       return *this;
28167     }
28168 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28169 
28170 
operator VkDebugUtilsObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28171     operator VkDebugUtilsObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT
28172     {
28173       return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( this );
28174     }
28175 
operator VkDebugUtilsObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28176     operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
28177     {
28178       return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>( this );
28179     }
28180 
28181 
28182 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28183     auto operator<=>( DebugUtilsObjectTagInfoEXT const& ) const = default;
28184 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28185     bool operator==( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28186     {
28187       return ( sType == rhs.sType )
28188           && ( pNext == rhs.pNext )
28189           && ( objectType == rhs.objectType )
28190           && ( objectHandle == rhs.objectHandle )
28191           && ( tagName == rhs.tagName )
28192           && ( tagSize == rhs.tagSize )
28193           && ( pTag == rhs.pTag );
28194     }
28195 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28196     bool operator!=( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28197     {
28198       return !operator==( rhs );
28199     }
28200 #endif
28201 
28202 
28203 
28204   public:
28205     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT;
28206     const void* pNext = {};
28207     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
28208     uint64_t objectHandle = {};
28209     uint64_t tagName = {};
28210     size_t tagSize = {};
28211     const void* pTag = {};
28212 
28213   };
28214   static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), "struct and wrapper have different size!" );
28215   static_assert( std::is_standard_layout<DebugUtilsObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
28216 
28217   template <>
28218   struct CppType<StructureType, StructureType::eDebugUtilsObjectTagInfoEXT>
28219   {
28220     using Type = DebugUtilsObjectTagInfoEXT;
28221   };
28222 
28223   struct DedicatedAllocationBufferCreateInfoNV
28224   {
28225     static const bool allowDuplicate = false;
28226     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
28227 
28228 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28229     VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
28230     : dedicatedAllocation( dedicatedAllocation_ )
28231     {}
28232 
28233     VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28234 
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28235     DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28236     {
28237       *this = rhs;
28238     }
28239 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28240 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28241     DedicatedAllocationBufferCreateInfoNV & operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28242     {
28243       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV const *>( &rhs );
28244       return *this;
28245     }
28246 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28247     DedicatedAllocationBufferCreateInfoNV & operator=( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28248     {
28249       memcpy( static_cast<void *>( this ), &rhs, sizeof( DedicatedAllocationBufferCreateInfoNV ) );
28250       return *this;
28251     }
28252 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28253     DedicatedAllocationBufferCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28254     {
28255       pNext = pNext_;
28256       return *this;
28257     }
28258 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28259     DedicatedAllocationBufferCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
28260     {
28261       dedicatedAllocation = dedicatedAllocation_;
28262       return *this;
28263     }
28264 
28265 
operator VkDedicatedAllocationBufferCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28266     operator VkDedicatedAllocationBufferCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
28267     {
28268       return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>( this );
28269     }
28270 
operator VkDedicatedAllocationBufferCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28271     operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT
28272     {
28273       return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>( this );
28274     }
28275 
28276 
28277 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28278     auto operator<=>( DedicatedAllocationBufferCreateInfoNV const& ) const = default;
28279 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28280     bool operator==( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28281     {
28282       return ( sType == rhs.sType )
28283           && ( pNext == rhs.pNext )
28284           && ( dedicatedAllocation == rhs.dedicatedAllocation );
28285     }
28286 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28287     bool operator!=( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28288     {
28289       return !operator==( rhs );
28290     }
28291 #endif
28292 
28293 
28294 
28295   public:
28296     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
28297     const void* pNext = {};
28298     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
28299 
28300   };
28301   static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), "struct and wrapper have different size!" );
28302   static_assert( std::is_standard_layout<DedicatedAllocationBufferCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
28303 
28304   template <>
28305   struct CppType<StructureType, StructureType::eDedicatedAllocationBufferCreateInfoNV>
28306   {
28307     using Type = DedicatedAllocationBufferCreateInfoNV;
28308   };
28309 
28310   struct DedicatedAllocationImageCreateInfoNV
28311   {
28312     static const bool allowDuplicate = false;
28313     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationImageCreateInfoNV;
28314 
28315 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28316     VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
28317     : dedicatedAllocation( dedicatedAllocation_ )
28318     {}
28319 
28320     VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28321 
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28322     DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28323     {
28324       *this = rhs;
28325     }
28326 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28327 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28328     DedicatedAllocationImageCreateInfoNV & operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28329     {
28330       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV const *>( &rhs );
28331       return *this;
28332     }
28333 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28334     DedicatedAllocationImageCreateInfoNV & operator=( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28335     {
28336       memcpy( static_cast<void *>( this ), &rhs, sizeof( DedicatedAllocationImageCreateInfoNV ) );
28337       return *this;
28338     }
28339 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28340     DedicatedAllocationImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28341     {
28342       pNext = pNext_;
28343       return *this;
28344     }
28345 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28346     DedicatedAllocationImageCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
28347     {
28348       dedicatedAllocation = dedicatedAllocation_;
28349       return *this;
28350     }
28351 
28352 
operator VkDedicatedAllocationImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28353     operator VkDedicatedAllocationImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
28354     {
28355       return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>( this );
28356     }
28357 
operator VkDedicatedAllocationImageCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28358     operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
28359     {
28360       return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>( this );
28361     }
28362 
28363 
28364 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28365     auto operator<=>( DedicatedAllocationImageCreateInfoNV const& ) const = default;
28366 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28367     bool operator==( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28368     {
28369       return ( sType == rhs.sType )
28370           && ( pNext == rhs.pNext )
28371           && ( dedicatedAllocation == rhs.dedicatedAllocation );
28372     }
28373 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28374     bool operator!=( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28375     {
28376       return !operator==( rhs );
28377     }
28378 #endif
28379 
28380 
28381 
28382   public:
28383     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV;
28384     const void* pNext = {};
28385     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
28386 
28387   };
28388   static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), "struct and wrapper have different size!" );
28389   static_assert( std::is_standard_layout<DedicatedAllocationImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
28390 
28391   template <>
28392   struct CppType<StructureType, StructureType::eDedicatedAllocationImageCreateInfoNV>
28393   {
28394     using Type = DedicatedAllocationImageCreateInfoNV;
28395   };
28396 
28397   struct DedicatedAllocationMemoryAllocateInfoNV
28398   {
28399     static const bool allowDuplicate = false;
28400     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
28401 
28402 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28403     VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
28404     : image( image_ ), buffer( buffer_ )
28405     {}
28406 
28407     VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28408 
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28409     DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28410     {
28411       *this = rhs;
28412     }
28413 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28414 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28415     DedicatedAllocationMemoryAllocateInfoNV & operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28416     {
28417       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV const *>( &rhs );
28418       return *this;
28419     }
28420 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28421     DedicatedAllocationMemoryAllocateInfoNV & operator=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28422     {
28423       memcpy( static_cast<void *>( this ), &rhs, sizeof( DedicatedAllocationMemoryAllocateInfoNV ) );
28424       return *this;
28425     }
28426 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28427     DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28428     {
28429       pNext = pNext_;
28430       return *this;
28431     }
28432 
setImageVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28433     DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
28434     {
28435       image = image_;
28436       return *this;
28437     }
28438 
setBufferVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28439     DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
28440     {
28441       buffer = buffer_;
28442       return *this;
28443     }
28444 
28445 
operator VkDedicatedAllocationMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28446     operator VkDedicatedAllocationMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT
28447     {
28448       return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
28449     }
28450 
operator VkDedicatedAllocationMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28451     operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
28452     {
28453       return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
28454     }
28455 
28456 
28457 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28458     auto operator<=>( DedicatedAllocationMemoryAllocateInfoNV const& ) const = default;
28459 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28460     bool operator==( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28461     {
28462       return ( sType == rhs.sType )
28463           && ( pNext == rhs.pNext )
28464           && ( image == rhs.image )
28465           && ( buffer == rhs.buffer );
28466     }
28467 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28468     bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28469     {
28470       return !operator==( rhs );
28471     }
28472 #endif
28473 
28474 
28475 
28476   public:
28477     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
28478     const void* pNext = {};
28479     VULKAN_HPP_NAMESPACE::Image image = {};
28480     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
28481 
28482   };
28483   static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
28484   static_assert( std::is_standard_layout<DedicatedAllocationMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
28485 
28486   template <>
28487   struct CppType<StructureType, StructureType::eDedicatedAllocationMemoryAllocateInfoNV>
28488   {
28489     using Type = DedicatedAllocationMemoryAllocateInfoNV;
28490   };
28491 
28492 #ifdef VK_ENABLE_BETA_EXTENSIONS
28493   class DeferredOperationKHR
28494   {
28495   public:
28496     using CType = VkDeferredOperationKHR;
28497 
28498     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR;
28499     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
28500 
28501   public:
DeferredOperationKHR()28502     VULKAN_HPP_CONSTEXPR DeferredOperationKHR() VULKAN_HPP_NOEXCEPT
28503       : m_deferredOperationKHR(VK_NULL_HANDLE)
28504     {}
28505 
DeferredOperationKHR(std::nullptr_t)28506     VULKAN_HPP_CONSTEXPR DeferredOperationKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28507       : m_deferredOperationKHR(VK_NULL_HANDLE)
28508     {}
28509 
DeferredOperationKHR(VkDeferredOperationKHR deferredOperationKHR)28510     VULKAN_HPP_TYPESAFE_EXPLICIT DeferredOperationKHR( VkDeferredOperationKHR deferredOperationKHR ) VULKAN_HPP_NOEXCEPT
28511       : m_deferredOperationKHR( deferredOperationKHR )
28512     {}
28513 
28514 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDeferredOperationKHR deferredOperationKHR)28515     DeferredOperationKHR & operator=(VkDeferredOperationKHR deferredOperationKHR) VULKAN_HPP_NOEXCEPT
28516     {
28517       m_deferredOperationKHR = deferredOperationKHR;
28518       return *this;
28519     }
28520 #endif
28521 
operator =(std::nullptr_t)28522     DeferredOperationKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28523     {
28524       m_deferredOperationKHR = VK_NULL_HANDLE;
28525       return *this;
28526     }
28527 
28528 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28529     auto operator<=>( DeferredOperationKHR const& ) const = default;
28530 #else
operator ==(DeferredOperationKHR const & rhs) const28531     bool operator==( DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28532     {
28533       return m_deferredOperationKHR == rhs.m_deferredOperationKHR;
28534     }
28535 
operator !=(DeferredOperationKHR const & rhs) const28536     bool operator!=(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28537     {
28538       return m_deferredOperationKHR != rhs.m_deferredOperationKHR;
28539     }
28540 
operator <(DeferredOperationKHR const & rhs) const28541     bool operator<(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28542     {
28543       return m_deferredOperationKHR < rhs.m_deferredOperationKHR;
28544     }
28545 #endif
28546 
operator VkDeferredOperationKHR() const28547     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeferredOperationKHR() const VULKAN_HPP_NOEXCEPT
28548     {
28549       return m_deferredOperationKHR;
28550     }
28551 
operator bool() const28552     explicit operator bool() const VULKAN_HPP_NOEXCEPT
28553     {
28554       return m_deferredOperationKHR != VK_NULL_HANDLE;
28555     }
28556 
operator !() const28557     bool operator!() const VULKAN_HPP_NOEXCEPT
28558     {
28559       return m_deferredOperationKHR == VK_NULL_HANDLE;
28560     }
28561 
28562   private:
28563     VkDeferredOperationKHR m_deferredOperationKHR;
28564   };
28565   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeferredOperationKHR ) == sizeof( VkDeferredOperationKHR ), "handle and wrapper have different size!" );
28566 
28567   template <>
28568   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDeferredOperationKHR>
28569   {
28570     using type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR;
28571   };
28572 
28573   template <>
28574   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR>
28575   {
28576     using Type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR;
28577   };
28578 
28579 
28580 
28581   template <>
28582   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
28583   {
28584     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
28585   };
28586 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
28587 
28588 #ifdef VK_ENABLE_BETA_EXTENSIONS
28589   struct DeferredOperationInfoKHR
28590   {
28591     static const bool allowDuplicate = false;
28592     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeferredOperationInfoKHR;
28593 
28594 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeferredOperationInfoKHRVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28595     VULKAN_HPP_CONSTEXPR DeferredOperationInfoKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle_ = {}) VULKAN_HPP_NOEXCEPT
28596     : operationHandle( operationHandle_ )
28597     {}
28598 
28599     VULKAN_HPP_CONSTEXPR DeferredOperationInfoKHR( DeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28600 
DeferredOperationInfoKHRVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28601     DeferredOperationInfoKHR( VkDeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28602     {
28603       *this = rhs;
28604     }
28605 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28606 
operator =VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28607     DeferredOperationInfoKHR & operator=( VkDeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28608     {
28609       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR const *>( &rhs );
28610       return *this;
28611     }
28612 
operator =VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28613     DeferredOperationInfoKHR & operator=( DeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28614     {
28615       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeferredOperationInfoKHR ) );
28616       return *this;
28617     }
28618 
setPNextVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28619     DeferredOperationInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28620     {
28621       pNext = pNext_;
28622       return *this;
28623     }
28624 
setOperationHandleVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28625     DeferredOperationInfoKHR & setOperationHandle( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle_ ) VULKAN_HPP_NOEXCEPT
28626     {
28627       operationHandle = operationHandle_;
28628       return *this;
28629     }
28630 
28631 
operator VkDeferredOperationInfoKHR const&VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28632     operator VkDeferredOperationInfoKHR const&() const VULKAN_HPP_NOEXCEPT
28633     {
28634       return *reinterpret_cast<const VkDeferredOperationInfoKHR*>( this );
28635     }
28636 
operator VkDeferredOperationInfoKHR&VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28637     operator VkDeferredOperationInfoKHR &() VULKAN_HPP_NOEXCEPT
28638     {
28639       return *reinterpret_cast<VkDeferredOperationInfoKHR*>( this );
28640     }
28641 
28642 
28643 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28644     auto operator<=>( DeferredOperationInfoKHR const& ) const = default;
28645 #else
operator ==VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28646     bool operator==( DeferredOperationInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28647     {
28648       return ( sType == rhs.sType )
28649           && ( pNext == rhs.pNext )
28650           && ( operationHandle == rhs.operationHandle );
28651     }
28652 
operator !=VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28653     bool operator!=( DeferredOperationInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28654     {
28655       return !operator==( rhs );
28656     }
28657 #endif
28658 
28659 
28660 
28661   public:
28662     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeferredOperationInfoKHR;
28663     const void* pNext = {};
28664     VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle = {};
28665 
28666   };
28667   static_assert( sizeof( DeferredOperationInfoKHR ) == sizeof( VkDeferredOperationInfoKHR ), "struct and wrapper have different size!" );
28668   static_assert( std::is_standard_layout<DeferredOperationInfoKHR>::value, "struct wrapper is not a standard layout!" );
28669 
28670   template <>
28671   struct CppType<StructureType, StructureType::eDeferredOperationInfoKHR>
28672   {
28673     using Type = DeferredOperationInfoKHR;
28674   };
28675 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
28676 
28677   struct DescriptorBufferInfo
28678   {
28679 
28680 
28681 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28682     VULKAN_HPP_CONSTEXPR DescriptorBufferInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}) VULKAN_HPP_NOEXCEPT
28683     : buffer( buffer_ ), offset( offset_ ), range( range_ )
28684     {}
28685 
28686     VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28687 
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28688     DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28689     {
28690       *this = rhs;
28691     }
28692 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28693 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28694     DescriptorBufferInfo & operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28695     {
28696       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferInfo const *>( &rhs );
28697       return *this;
28698     }
28699 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28700     DescriptorBufferInfo & operator=( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28701     {
28702       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorBufferInfo ) );
28703       return *this;
28704     }
28705 
setBufferVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28706     DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
28707     {
28708       buffer = buffer_;
28709       return *this;
28710     }
28711 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28712     DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
28713     {
28714       offset = offset_;
28715       return *this;
28716     }
28717 
setRangeVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28718     DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
28719     {
28720       range = range_;
28721       return *this;
28722     }
28723 
28724 
operator VkDescriptorBufferInfo const&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28725     operator VkDescriptorBufferInfo const&() const VULKAN_HPP_NOEXCEPT
28726     {
28727       return *reinterpret_cast<const VkDescriptorBufferInfo*>( this );
28728     }
28729 
operator VkDescriptorBufferInfo&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28730     operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT
28731     {
28732       return *reinterpret_cast<VkDescriptorBufferInfo*>( this );
28733     }
28734 
28735 
28736 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28737     auto operator<=>( DescriptorBufferInfo const& ) const = default;
28738 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28739     bool operator==( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28740     {
28741       return ( buffer == rhs.buffer )
28742           && ( offset == rhs.offset )
28743           && ( range == rhs.range );
28744     }
28745 
operator !=VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28746     bool operator!=( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28747     {
28748       return !operator==( rhs );
28749     }
28750 #endif
28751 
28752 
28753 
28754   public:
28755     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
28756     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
28757     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
28758 
28759   };
28760   static_assert( sizeof( DescriptorBufferInfo ) == sizeof( VkDescriptorBufferInfo ), "struct and wrapper have different size!" );
28761   static_assert( std::is_standard_layout<DescriptorBufferInfo>::value, "struct wrapper is not a standard layout!" );
28762 
28763   class Sampler
28764   {
28765   public:
28766     using CType = VkSampler;
28767 
28768     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSampler;
28769     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler;
28770 
28771   public:
Sampler()28772     VULKAN_HPP_CONSTEXPR Sampler() VULKAN_HPP_NOEXCEPT
28773       : m_sampler(VK_NULL_HANDLE)
28774     {}
28775 
Sampler(std::nullptr_t)28776     VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28777       : m_sampler(VK_NULL_HANDLE)
28778     {}
28779 
Sampler(VkSampler sampler)28780     VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler ) VULKAN_HPP_NOEXCEPT
28781       : m_sampler( sampler )
28782     {}
28783 
28784 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSampler sampler)28785     Sampler & operator=(VkSampler sampler) VULKAN_HPP_NOEXCEPT
28786     {
28787       m_sampler = sampler;
28788       return *this;
28789     }
28790 #endif
28791 
operator =(std::nullptr_t)28792     Sampler & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28793     {
28794       m_sampler = VK_NULL_HANDLE;
28795       return *this;
28796     }
28797 
28798 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28799     auto operator<=>( Sampler const& ) const = default;
28800 #else
operator ==(Sampler const & rhs) const28801     bool operator==( Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
28802     {
28803       return m_sampler == rhs.m_sampler;
28804     }
28805 
operator !=(Sampler const & rhs) const28806     bool operator!=(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
28807     {
28808       return m_sampler != rhs.m_sampler;
28809     }
28810 
operator <(Sampler const & rhs) const28811     bool operator<(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
28812     {
28813       return m_sampler < rhs.m_sampler;
28814     }
28815 #endif
28816 
operator VkSampler() const28817     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSampler() const VULKAN_HPP_NOEXCEPT
28818     {
28819       return m_sampler;
28820     }
28821 
operator bool() const28822     explicit operator bool() const VULKAN_HPP_NOEXCEPT
28823     {
28824       return m_sampler != VK_NULL_HANDLE;
28825     }
28826 
operator !() const28827     bool operator!() const VULKAN_HPP_NOEXCEPT
28828     {
28829       return m_sampler == VK_NULL_HANDLE;
28830     }
28831 
28832   private:
28833     VkSampler m_sampler;
28834   };
28835   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Sampler ) == sizeof( VkSampler ), "handle and wrapper have different size!" );
28836 
28837   template <>
28838   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSampler>
28839   {
28840     using type = VULKAN_HPP_NAMESPACE::Sampler;
28841   };
28842 
28843   template <>
28844   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSampler>
28845   {
28846     using Type = VULKAN_HPP_NAMESPACE::Sampler;
28847   };
28848 
28849 
28850   template <>
28851   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler>
28852   {
28853     using Type = VULKAN_HPP_NAMESPACE::Sampler;
28854   };
28855 
28856 
28857   template <>
28858   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Sampler>
28859   {
28860     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
28861   };
28862 
28863   class ImageView
28864   {
28865   public:
28866     using CType = VkImageView;
28867 
28868     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImageView;
28869     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
28870 
28871   public:
ImageView()28872     VULKAN_HPP_CONSTEXPR ImageView() VULKAN_HPP_NOEXCEPT
28873       : m_imageView(VK_NULL_HANDLE)
28874     {}
28875 
ImageView(std::nullptr_t)28876     VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28877       : m_imageView(VK_NULL_HANDLE)
28878     {}
28879 
ImageView(VkImageView imageView)28880     VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT
28881       : m_imageView( imageView )
28882     {}
28883 
28884 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImageView imageView)28885     ImageView & operator=(VkImageView imageView) VULKAN_HPP_NOEXCEPT
28886     {
28887       m_imageView = imageView;
28888       return *this;
28889     }
28890 #endif
28891 
operator =(std::nullptr_t)28892     ImageView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28893     {
28894       m_imageView = VK_NULL_HANDLE;
28895       return *this;
28896     }
28897 
28898 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28899     auto operator<=>( ImageView const& ) const = default;
28900 #else
operator ==(ImageView const & rhs) const28901     bool operator==( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
28902     {
28903       return m_imageView == rhs.m_imageView;
28904     }
28905 
operator !=(ImageView const & rhs) const28906     bool operator!=(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
28907     {
28908       return m_imageView != rhs.m_imageView;
28909     }
28910 
operator <(ImageView const & rhs) const28911     bool operator<(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
28912     {
28913       return m_imageView < rhs.m_imageView;
28914     }
28915 #endif
28916 
operator VkImageView() const28917     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const VULKAN_HPP_NOEXCEPT
28918     {
28919       return m_imageView;
28920     }
28921 
operator bool() const28922     explicit operator bool() const VULKAN_HPP_NOEXCEPT
28923     {
28924       return m_imageView != VK_NULL_HANDLE;
28925     }
28926 
operator !() const28927     bool operator!() const VULKAN_HPP_NOEXCEPT
28928     {
28929       return m_imageView == VK_NULL_HANDLE;
28930     }
28931 
28932   private:
28933     VkImageView m_imageView;
28934   };
28935   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ImageView ) == sizeof( VkImageView ), "handle and wrapper have different size!" );
28936 
28937   template <>
28938   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eImageView>
28939   {
28940     using type = VULKAN_HPP_NAMESPACE::ImageView;
28941   };
28942 
28943   template <>
28944   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eImageView>
28945   {
28946     using Type = VULKAN_HPP_NAMESPACE::ImageView;
28947   };
28948 
28949 
28950   template <>
28951   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView>
28952   {
28953     using Type = VULKAN_HPP_NAMESPACE::ImageView;
28954   };
28955 
28956 
28957   template <>
28958   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ImageView>
28959   {
28960     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
28961   };
28962 
28963   struct DescriptorImageInfo
28964   {
28965 
28966 
28967 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo28968     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
28969     : sampler( sampler_ ), imageView( imageView_ ), imageLayout( imageLayout_ )
28970     {}
28971 
28972     VULKAN_HPP_CONSTEXPR DescriptorImageInfo( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28973 
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo28974     DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28975     {
28976       *this = rhs;
28977     }
28978 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28979 
operator =VULKAN_HPP_NAMESPACE::DescriptorImageInfo28980     DescriptorImageInfo & operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28981     {
28982       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorImageInfo const *>( &rhs );
28983       return *this;
28984     }
28985 
operator =VULKAN_HPP_NAMESPACE::DescriptorImageInfo28986     DescriptorImageInfo & operator=( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28987     {
28988       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorImageInfo ) );
28989       return *this;
28990     }
28991 
setSamplerVULKAN_HPP_NAMESPACE::DescriptorImageInfo28992     DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
28993     {
28994       sampler = sampler_;
28995       return *this;
28996     }
28997 
setImageViewVULKAN_HPP_NAMESPACE::DescriptorImageInfo28998     DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
28999     {
29000       imageView = imageView_;
29001       return *this;
29002     }
29003 
setImageLayoutVULKAN_HPP_NAMESPACE::DescriptorImageInfo29004     DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
29005     {
29006       imageLayout = imageLayout_;
29007       return *this;
29008     }
29009 
29010 
operator VkDescriptorImageInfo const&VULKAN_HPP_NAMESPACE::DescriptorImageInfo29011     operator VkDescriptorImageInfo const&() const VULKAN_HPP_NOEXCEPT
29012     {
29013       return *reinterpret_cast<const VkDescriptorImageInfo*>( this );
29014     }
29015 
operator VkDescriptorImageInfo&VULKAN_HPP_NAMESPACE::DescriptorImageInfo29016     operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT
29017     {
29018       return *reinterpret_cast<VkDescriptorImageInfo*>( this );
29019     }
29020 
29021 
29022 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29023     auto operator<=>( DescriptorImageInfo const& ) const = default;
29024 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorImageInfo29025     bool operator==( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29026     {
29027       return ( sampler == rhs.sampler )
29028           && ( imageView == rhs.imageView )
29029           && ( imageLayout == rhs.imageLayout );
29030     }
29031 
operator !=VULKAN_HPP_NAMESPACE::DescriptorImageInfo29032     bool operator!=( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29033     {
29034       return !operator==( rhs );
29035     }
29036 #endif
29037 
29038 
29039 
29040   public:
29041     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
29042     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
29043     VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
29044 
29045   };
29046   static_assert( sizeof( DescriptorImageInfo ) == sizeof( VkDescriptorImageInfo ), "struct and wrapper have different size!" );
29047   static_assert( std::is_standard_layout<DescriptorImageInfo>::value, "struct wrapper is not a standard layout!" );
29048 
29049   struct DescriptorPoolSize
29050   {
29051 
29052 
29053 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize29054     VULKAN_HPP_CONSTEXPR DescriptorPoolSize(VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, uint32_t descriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
29055     : type( type_ ), descriptorCount( descriptorCount_ )
29056     {}
29057 
29058     VULKAN_HPP_CONSTEXPR DescriptorPoolSize( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29059 
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize29060     DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
29061     {
29062       *this = rhs;
29063     }
29064 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29065 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolSize29066     DescriptorPoolSize & operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
29067     {
29068       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolSize const *>( &rhs );
29069       return *this;
29070     }
29071 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolSize29072     DescriptorPoolSize & operator=( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
29073     {
29074       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorPoolSize ) );
29075       return *this;
29076     }
29077 
setTypeVULKAN_HPP_NAMESPACE::DescriptorPoolSize29078     DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT
29079     {
29080       type = type_;
29081       return *this;
29082     }
29083 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorPoolSize29084     DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
29085     {
29086       descriptorCount = descriptorCount_;
29087       return *this;
29088     }
29089 
29090 
operator VkDescriptorPoolSize const&VULKAN_HPP_NAMESPACE::DescriptorPoolSize29091     operator VkDescriptorPoolSize const&() const VULKAN_HPP_NOEXCEPT
29092     {
29093       return *reinterpret_cast<const VkDescriptorPoolSize*>( this );
29094     }
29095 
operator VkDescriptorPoolSize&VULKAN_HPP_NAMESPACE::DescriptorPoolSize29096     operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT
29097     {
29098       return *reinterpret_cast<VkDescriptorPoolSize*>( this );
29099     }
29100 
29101 
29102 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29103     auto operator<=>( DescriptorPoolSize const& ) const = default;
29104 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolSize29105     bool operator==( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT
29106     {
29107       return ( type == rhs.type )
29108           && ( descriptorCount == rhs.descriptorCount );
29109     }
29110 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolSize29111     bool operator!=( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT
29112     {
29113       return !operator==( rhs );
29114     }
29115 #endif
29116 
29117 
29118 
29119   public:
29120     VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
29121     uint32_t descriptorCount = {};
29122 
29123   };
29124   static_assert( sizeof( DescriptorPoolSize ) == sizeof( VkDescriptorPoolSize ), "struct and wrapper have different size!" );
29125   static_assert( std::is_standard_layout<DescriptorPoolSize>::value, "struct wrapper is not a standard layout!" );
29126 
29127   struct DescriptorPoolCreateInfo
29128   {
29129     static const bool allowDuplicate = false;
29130     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolCreateInfo;
29131 
29132 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29133     VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {}, uint32_t maxSets_ = {}, uint32_t poolSizeCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ = {}) VULKAN_HPP_NOEXCEPT
29134     : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( poolSizeCount_ ), pPoolSizes( pPoolSizes_ )
29135     {}
29136 
29137     VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29138 
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29139     DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29140     {
29141       *this = rhs;
29142     }
29143 
29144 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29145     DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_, uint32_t maxSets_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ )
29146     : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( static_cast<uint32_t>( poolSizes_.size() ) ), pPoolSizes( poolSizes_.data() )
29147     {}
29148 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29149 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29150 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29151     DescriptorPoolCreateInfo & operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29152     {
29153       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const *>( &rhs );
29154       return *this;
29155     }
29156 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29157     DescriptorPoolCreateInfo & operator=( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29158     {
29159       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorPoolCreateInfo ) );
29160       return *this;
29161     }
29162 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29163     DescriptorPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29164     {
29165       pNext = pNext_;
29166       return *this;
29167     }
29168 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29169     DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
29170     {
29171       flags = flags_;
29172       return *this;
29173     }
29174 
setMaxSetsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29175     DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT
29176     {
29177       maxSets = maxSets_;
29178       return *this;
29179     }
29180 
setPoolSizeCountVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29181     DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT
29182     {
29183       poolSizeCount = poolSizeCount_;
29184       return *this;
29185     }
29186 
setPPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29187     DescriptorPoolCreateInfo & setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ ) VULKAN_HPP_NOEXCEPT
29188     {
29189       pPoolSizes = pPoolSizes_;
29190       return *this;
29191     }
29192 
29193 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29194     DescriptorPoolCreateInfo & setPoolSizes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ ) VULKAN_HPP_NOEXCEPT
29195     {
29196       poolSizeCount = static_cast<uint32_t>( poolSizes_.size() );
29197       pPoolSizes = poolSizes_.data();
29198       return *this;
29199     }
29200 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29201 
29202 
operator VkDescriptorPoolCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29203     operator VkDescriptorPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
29204     {
29205       return *reinterpret_cast<const VkDescriptorPoolCreateInfo*>( this );
29206     }
29207 
operator VkDescriptorPoolCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29208     operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
29209     {
29210       return *reinterpret_cast<VkDescriptorPoolCreateInfo*>( this );
29211     }
29212 
29213 
29214 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29215     auto operator<=>( DescriptorPoolCreateInfo const& ) const = default;
29216 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29217     bool operator==( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29218     {
29219       return ( sType == rhs.sType )
29220           && ( pNext == rhs.pNext )
29221           && ( flags == rhs.flags )
29222           && ( maxSets == rhs.maxSets )
29223           && ( poolSizeCount == rhs.poolSizeCount )
29224           && ( pPoolSizes == rhs.pPoolSizes );
29225     }
29226 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29227     bool operator!=( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29228     {
29229       return !operator==( rhs );
29230     }
29231 #endif
29232 
29233 
29234 
29235   public:
29236     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo;
29237     const void* pNext = {};
29238     VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {};
29239     uint32_t maxSets = {};
29240     uint32_t poolSizeCount = {};
29241     const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes = {};
29242 
29243   };
29244   static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), "struct and wrapper have different size!" );
29245   static_assert( std::is_standard_layout<DescriptorPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
29246 
29247   template <>
29248   struct CppType<StructureType, StructureType::eDescriptorPoolCreateInfo>
29249   {
29250     using Type = DescriptorPoolCreateInfo;
29251   };
29252 
29253   struct DescriptorPoolInlineUniformBlockCreateInfoEXT
29254   {
29255     static const bool allowDuplicate = false;
29256     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
29257 
29258 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29259     VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT(uint32_t maxInlineUniformBlockBindings_ = {}) VULKAN_HPP_NOEXCEPT
29260     : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ )
29261     {}
29262 
29263     VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29264 
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29265     DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29266     {
29267       *this = rhs;
29268     }
29269 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29270 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29271     DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29272     {
29273       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT const *>( &rhs );
29274       return *this;
29275     }
29276 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29277     DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29278     {
29279       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) );
29280       return *this;
29281     }
29282 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29283     DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29284     {
29285       pNext = pNext_;
29286       return *this;
29287     }
29288 
setMaxInlineUniformBlockBindingsVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29289     DescriptorPoolInlineUniformBlockCreateInfoEXT & setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT
29290     {
29291       maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
29292       return *this;
29293     }
29294 
29295 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29296     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
29297     {
29298       return *reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
29299     }
29300 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29301     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
29302     {
29303       return *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
29304     }
29305 
29306 
29307 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29308     auto operator<=>( DescriptorPoolInlineUniformBlockCreateInfoEXT const& ) const = default;
29309 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29310     bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
29311     {
29312       return ( sType == rhs.sType )
29313           && ( pNext == rhs.pNext )
29314           && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings );
29315     }
29316 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29317     bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
29318     {
29319       return !operator==( rhs );
29320     }
29321 #endif
29322 
29323 
29324 
29325   public:
29326     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
29327     const void* pNext = {};
29328     uint32_t maxInlineUniformBlockBindings = {};
29329 
29330   };
29331   static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "struct and wrapper have different size!" );
29332   static_assert( std::is_standard_layout<DescriptorPoolInlineUniformBlockCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
29333 
29334   template <>
29335   struct CppType<StructureType, StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT>
29336   {
29337     using Type = DescriptorPoolInlineUniformBlockCreateInfoEXT;
29338   };
29339 
29340   class DescriptorPool
29341   {
29342   public:
29343     using CType = VkDescriptorPool;
29344 
29345     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool;
29346     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool;
29347 
29348   public:
DescriptorPool()29349     VULKAN_HPP_CONSTEXPR DescriptorPool() VULKAN_HPP_NOEXCEPT
29350       : m_descriptorPool(VK_NULL_HANDLE)
29351     {}
29352 
DescriptorPool(std::nullptr_t)29353     VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29354       : m_descriptorPool(VK_NULL_HANDLE)
29355     {}
29356 
DescriptorPool(VkDescriptorPool descriptorPool)29357     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool ) VULKAN_HPP_NOEXCEPT
29358       : m_descriptorPool( descriptorPool )
29359     {}
29360 
29361 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorPool descriptorPool)29362     DescriptorPool & operator=(VkDescriptorPool descriptorPool) VULKAN_HPP_NOEXCEPT
29363     {
29364       m_descriptorPool = descriptorPool;
29365       return *this;
29366     }
29367 #endif
29368 
operator =(std::nullptr_t)29369     DescriptorPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29370     {
29371       m_descriptorPool = VK_NULL_HANDLE;
29372       return *this;
29373     }
29374 
29375 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29376     auto operator<=>( DescriptorPool const& ) const = default;
29377 #else
operator ==(DescriptorPool const & rhs) const29378     bool operator==( DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
29379     {
29380       return m_descriptorPool == rhs.m_descriptorPool;
29381     }
29382 
operator !=(DescriptorPool const & rhs) const29383     bool operator!=(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
29384     {
29385       return m_descriptorPool != rhs.m_descriptorPool;
29386     }
29387 
operator <(DescriptorPool const & rhs) const29388     bool operator<(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
29389     {
29390       return m_descriptorPool < rhs.m_descriptorPool;
29391     }
29392 #endif
29393 
operator VkDescriptorPool() const29394     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorPool() const VULKAN_HPP_NOEXCEPT
29395     {
29396       return m_descriptorPool;
29397     }
29398 
operator bool() const29399     explicit operator bool() const VULKAN_HPP_NOEXCEPT
29400     {
29401       return m_descriptorPool != VK_NULL_HANDLE;
29402     }
29403 
operator !() const29404     bool operator!() const VULKAN_HPP_NOEXCEPT
29405     {
29406       return m_descriptorPool == VK_NULL_HANDLE;
29407     }
29408 
29409   private:
29410     VkDescriptorPool m_descriptorPool;
29411   };
29412   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorPool ) == sizeof( VkDescriptorPool ), "handle and wrapper have different size!" );
29413 
29414   template <>
29415   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorPool>
29416   {
29417     using type = VULKAN_HPP_NAMESPACE::DescriptorPool;
29418   };
29419 
29420   template <>
29421   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool>
29422   {
29423     using Type = VULKAN_HPP_NAMESPACE::DescriptorPool;
29424   };
29425 
29426 
29427   template <>
29428   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool>
29429   {
29430     using Type = VULKAN_HPP_NAMESPACE::DescriptorPool;
29431   };
29432 
29433 
29434   template <>
29435   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorPool>
29436   {
29437     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29438   };
29439 
29440   class DescriptorSetLayout
29441   {
29442   public:
29443     using CType = VkDescriptorSetLayout;
29444 
29445     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout;
29446     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout;
29447 
29448   public:
DescriptorSetLayout()29449     VULKAN_HPP_CONSTEXPR DescriptorSetLayout() VULKAN_HPP_NOEXCEPT
29450       : m_descriptorSetLayout(VK_NULL_HANDLE)
29451     {}
29452 
DescriptorSetLayout(std::nullptr_t)29453     VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29454       : m_descriptorSetLayout(VK_NULL_HANDLE)
29455     {}
29456 
DescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout)29457     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout ) VULKAN_HPP_NOEXCEPT
29458       : m_descriptorSetLayout( descriptorSetLayout )
29459     {}
29460 
29461 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSetLayout descriptorSetLayout)29462     DescriptorSetLayout & operator=(VkDescriptorSetLayout descriptorSetLayout) VULKAN_HPP_NOEXCEPT
29463     {
29464       m_descriptorSetLayout = descriptorSetLayout;
29465       return *this;
29466     }
29467 #endif
29468 
operator =(std::nullptr_t)29469     DescriptorSetLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29470     {
29471       m_descriptorSetLayout = VK_NULL_HANDLE;
29472       return *this;
29473     }
29474 
29475 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29476     auto operator<=>( DescriptorSetLayout const& ) const = default;
29477 #else
operator ==(DescriptorSetLayout const & rhs) const29478     bool operator==( DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
29479     {
29480       return m_descriptorSetLayout == rhs.m_descriptorSetLayout;
29481     }
29482 
operator !=(DescriptorSetLayout const & rhs) const29483     bool operator!=(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
29484     {
29485       return m_descriptorSetLayout != rhs.m_descriptorSetLayout;
29486     }
29487 
operator <(DescriptorSetLayout const & rhs) const29488     bool operator<(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
29489     {
29490       return m_descriptorSetLayout < rhs.m_descriptorSetLayout;
29491     }
29492 #endif
29493 
operator VkDescriptorSetLayout() const29494     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSetLayout() const VULKAN_HPP_NOEXCEPT
29495     {
29496       return m_descriptorSetLayout;
29497     }
29498 
operator bool() const29499     explicit operator bool() const VULKAN_HPP_NOEXCEPT
29500     {
29501       return m_descriptorSetLayout != VK_NULL_HANDLE;
29502     }
29503 
operator !() const29504     bool operator!() const VULKAN_HPP_NOEXCEPT
29505     {
29506       return m_descriptorSetLayout == VK_NULL_HANDLE;
29507     }
29508 
29509   private:
29510     VkDescriptorSetLayout m_descriptorSetLayout;
29511   };
29512   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), "handle and wrapper have different size!" );
29513 
29514   template <>
29515   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorSetLayout>
29516   {
29517     using type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
29518   };
29519 
29520   template <>
29521   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout>
29522   {
29523     using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
29524   };
29525 
29526 
29527   template <>
29528   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout>
29529   {
29530     using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
29531   };
29532 
29533 
29534   template <>
29535   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
29536   {
29537     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29538   };
29539 
29540   struct DescriptorSetAllocateInfo
29541   {
29542     static const bool allowDuplicate = false;
29543     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetAllocateInfo;
29544 
29545 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29546     VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {}, uint32_t descriptorSetCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {}) VULKAN_HPP_NOEXCEPT
29547     : descriptorPool( descriptorPool_ ), descriptorSetCount( descriptorSetCount_ ), pSetLayouts( pSetLayouts_ )
29548     {}
29549 
29550     VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29551 
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29552     DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29553     {
29554       *this = rhs;
29555     }
29556 
29557 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29558     DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ )
29559     : descriptorPool( descriptorPool_ ), descriptorSetCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() )
29560     {}
29561 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29562 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29563 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29564     DescriptorSetAllocateInfo & operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29565     {
29566       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const *>( &rhs );
29567       return *this;
29568     }
29569 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29570     DescriptorSetAllocateInfo & operator=( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29571     {
29572       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetAllocateInfo ) );
29573       return *this;
29574     }
29575 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29576     DescriptorSetAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29577     {
29578       pNext = pNext_;
29579       return *this;
29580     }
29581 
setDescriptorPoolVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29582     DescriptorSetAllocateInfo & setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT
29583     {
29584       descriptorPool = descriptorPool_;
29585       return *this;
29586     }
29587 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29588     DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
29589     {
29590       descriptorSetCount = descriptorSetCount_;
29591       return *this;
29592     }
29593 
setPSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29594     DescriptorSetAllocateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
29595     {
29596       pSetLayouts = pSetLayouts_;
29597       return *this;
29598     }
29599 
29600 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29601     DescriptorSetAllocateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
29602     {
29603       descriptorSetCount = static_cast<uint32_t>( setLayouts_.size() );
29604       pSetLayouts = setLayouts_.data();
29605       return *this;
29606     }
29607 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29608 
29609 
operator VkDescriptorSetAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29610     operator VkDescriptorSetAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
29611     {
29612       return *reinterpret_cast<const VkDescriptorSetAllocateInfo*>( this );
29613     }
29614 
operator VkDescriptorSetAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29615     operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT
29616     {
29617       return *reinterpret_cast<VkDescriptorSetAllocateInfo*>( this );
29618     }
29619 
29620 
29621 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29622     auto operator<=>( DescriptorSetAllocateInfo const& ) const = default;
29623 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29624     bool operator==( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29625     {
29626       return ( sType == rhs.sType )
29627           && ( pNext == rhs.pNext )
29628           && ( descriptorPool == rhs.descriptorPool )
29629           && ( descriptorSetCount == rhs.descriptorSetCount )
29630           && ( pSetLayouts == rhs.pSetLayouts );
29631     }
29632 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29633     bool operator!=( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29634     {
29635       return !operator==( rhs );
29636     }
29637 #endif
29638 
29639 
29640 
29641   public:
29642     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo;
29643     const void* pNext = {};
29644     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {};
29645     uint32_t descriptorSetCount = {};
29646     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {};
29647 
29648   };
29649   static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), "struct and wrapper have different size!" );
29650   static_assert( std::is_standard_layout<DescriptorSetAllocateInfo>::value, "struct wrapper is not a standard layout!" );
29651 
29652   template <>
29653   struct CppType<StructureType, StructureType::eDescriptorSetAllocateInfo>
29654   {
29655     using Type = DescriptorSetAllocateInfo;
29656   };
29657 
29658   struct DescriptorSetLayoutBinding
29659   {
29660 
29661 
29662 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29663     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
29664     : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( descriptorCount_ ), stageFlags( stageFlags_ ), pImmutableSamplers( pImmutableSamplers_ )
29665     {}
29666 
29667     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29668 
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29669     DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
29670     {
29671       *this = rhs;
29672     }
29673 
29674 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29675     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_ )
29676     : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( static_cast<uint32_t>( immutableSamplers_.size() ) ), stageFlags( stageFlags_ ), pImmutableSamplers( immutableSamplers_.data() )
29677     {}
29678 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29679 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29680 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29681     DescriptorSetLayoutBinding & operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
29682     {
29683       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding const *>( &rhs );
29684       return *this;
29685     }
29686 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29687     DescriptorSetLayoutBinding & operator=( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
29688     {
29689       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutBinding ) );
29690       return *this;
29691     }
29692 
setBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29693     DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
29694     {
29695       binding = binding_;
29696       return *this;
29697     }
29698 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29699     DescriptorSetLayoutBinding & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
29700     {
29701       descriptorType = descriptorType_;
29702       return *this;
29703     }
29704 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29705     DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
29706     {
29707       descriptorCount = descriptorCount_;
29708       return *this;
29709     }
29710 
setStageFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29711     DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
29712     {
29713       stageFlags = stageFlags_;
29714       return *this;
29715     }
29716 
setPImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29717     DescriptorSetLayoutBinding & setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT
29718     {
29719       pImmutableSamplers = pImmutableSamplers_;
29720       return *this;
29721     }
29722 
29723 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29724     DescriptorSetLayoutBinding & setImmutableSamplers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ ) VULKAN_HPP_NOEXCEPT
29725     {
29726       descriptorCount = static_cast<uint32_t>( immutableSamplers_.size() );
29727       pImmutableSamplers = immutableSamplers_.data();
29728       return *this;
29729     }
29730 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29731 
29732 
operator VkDescriptorSetLayoutBinding const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29733     operator VkDescriptorSetLayoutBinding const&() const VULKAN_HPP_NOEXCEPT
29734     {
29735       return *reinterpret_cast<const VkDescriptorSetLayoutBinding*>( this );
29736     }
29737 
operator VkDescriptorSetLayoutBinding&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29738     operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT
29739     {
29740       return *reinterpret_cast<VkDescriptorSetLayoutBinding*>( this );
29741     }
29742 
29743 
29744 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29745     auto operator<=>( DescriptorSetLayoutBinding const& ) const = default;
29746 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29747     bool operator==( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT
29748     {
29749       return ( binding == rhs.binding )
29750           && ( descriptorType == rhs.descriptorType )
29751           && ( descriptorCount == rhs.descriptorCount )
29752           && ( stageFlags == rhs.stageFlags )
29753           && ( pImmutableSamplers == rhs.pImmutableSamplers );
29754     }
29755 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29756     bool operator!=( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT
29757     {
29758       return !operator==( rhs );
29759     }
29760 #endif
29761 
29762 
29763 
29764   public:
29765     uint32_t binding = {};
29766     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
29767     uint32_t descriptorCount = {};
29768     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
29769     const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers = {};
29770 
29771   };
29772   static_assert( sizeof( DescriptorSetLayoutBinding ) == sizeof( VkDescriptorSetLayoutBinding ), "struct and wrapper have different size!" );
29773   static_assert( std::is_standard_layout<DescriptorSetLayoutBinding>::value, "struct wrapper is not a standard layout!" );
29774 
29775   struct DescriptorSetLayoutBindingFlagsCreateInfo
29776   {
29777     static const bool allowDuplicate = false;
29778     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
29779 
29780 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29781     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo(uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ = {}) VULKAN_HPP_NOEXCEPT
29782     : bindingCount( bindingCount_ ), pBindingFlags( pBindingFlags_ )
29783     {}
29784 
29785     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29786 
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29787     DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29788     {
29789       *this = rhs;
29790     }
29791 
29792 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29793     DescriptorSetLayoutBindingFlagsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_ )
29794     : bindingCount( static_cast<uint32_t>( bindingFlags_.size() ) ), pBindingFlags( bindingFlags_.data() )
29795     {}
29796 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29797 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29798 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29799     DescriptorSetLayoutBindingFlagsCreateInfo & operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29800     {
29801       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo const *>( &rhs );
29802       return *this;
29803     }
29804 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29805     DescriptorSetLayoutBindingFlagsCreateInfo & operator=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29806     {
29807       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) );
29808       return *this;
29809     }
29810 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29811     DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29812     {
29813       pNext = pNext_;
29814       return *this;
29815     }
29816 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29817     DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
29818     {
29819       bindingCount = bindingCount_;
29820       return *this;
29821     }
29822 
setPBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29823     DescriptorSetLayoutBindingFlagsCreateInfo & setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ ) VULKAN_HPP_NOEXCEPT
29824     {
29825       pBindingFlags = pBindingFlags_;
29826       return *this;
29827     }
29828 
29829 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29830     DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_ ) VULKAN_HPP_NOEXCEPT
29831     {
29832       bindingCount = static_cast<uint32_t>( bindingFlags_.size() );
29833       pBindingFlags = bindingFlags_.data();
29834       return *this;
29835     }
29836 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29837 
29838 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29839     operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&() const VULKAN_HPP_NOEXCEPT
29840     {
29841       return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
29842     }
29843 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29844     operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT
29845     {
29846       return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
29847     }
29848 
29849 
29850 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29851     auto operator<=>( DescriptorSetLayoutBindingFlagsCreateInfo const& ) const = default;
29852 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29853     bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29854     {
29855       return ( sType == rhs.sType )
29856           && ( pNext == rhs.pNext )
29857           && ( bindingCount == rhs.bindingCount )
29858           && ( pBindingFlags == rhs.pBindingFlags );
29859     }
29860 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29861     bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29862     {
29863       return !operator==( rhs );
29864     }
29865 #endif
29866 
29867 
29868 
29869   public:
29870     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
29871     const void* pNext = {};
29872     uint32_t bindingCount = {};
29873     const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags = {};
29874 
29875   };
29876   static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) == sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfo ), "struct and wrapper have different size!" );
29877   static_assert( std::is_standard_layout<DescriptorSetLayoutBindingFlagsCreateInfo>::value, "struct wrapper is not a standard layout!" );
29878 
29879   template <>
29880   struct CppType<StructureType, StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo>
29881   {
29882     using Type = DescriptorSetLayoutBindingFlagsCreateInfo;
29883   };
29884   using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
29885 
29886   struct DescriptorSetLayoutCreateInfo
29887   {
29888     static const bool allowDuplicate = false;
29889     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutCreateInfo;
29890 
29891 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29892     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {}, uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ = {}) VULKAN_HPP_NOEXCEPT
29893     : flags( flags_ ), bindingCount( bindingCount_ ), pBindings( pBindings_ )
29894     {}
29895 
29896     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29897 
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29898     DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29899     {
29900       *this = rhs;
29901     }
29902 
29903 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29904     DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_ )
29905     : flags( flags_ ), bindingCount( static_cast<uint32_t>( bindings_.size() ) ), pBindings( bindings_.data() )
29906     {}
29907 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29908 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29909 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29910     DescriptorSetLayoutCreateInfo & operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29911     {
29912       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const *>( &rhs );
29913       return *this;
29914     }
29915 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29916     DescriptorSetLayoutCreateInfo & operator=( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29917     {
29918       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutCreateInfo ) );
29919       return *this;
29920     }
29921 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29922     DescriptorSetLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29923     {
29924       pNext = pNext_;
29925       return *this;
29926     }
29927 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29928     DescriptorSetLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
29929     {
29930       flags = flags_;
29931       return *this;
29932     }
29933 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29934     DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
29935     {
29936       bindingCount = bindingCount_;
29937       return *this;
29938     }
29939 
setPBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29940     DescriptorSetLayoutCreateInfo & setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ ) VULKAN_HPP_NOEXCEPT
29941     {
29942       pBindings = pBindings_;
29943       return *this;
29944     }
29945 
29946 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29947     DescriptorSetLayoutCreateInfo & setBindings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_ ) VULKAN_HPP_NOEXCEPT
29948     {
29949       bindingCount = static_cast<uint32_t>( bindings_.size() );
29950       pBindings = bindings_.data();
29951       return *this;
29952     }
29953 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29954 
29955 
operator VkDescriptorSetLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29956     operator VkDescriptorSetLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT
29957     {
29958       return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( this );
29959     }
29960 
operator VkDescriptorSetLayoutCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29961     operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
29962     {
29963       return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>( this );
29964     }
29965 
29966 
29967 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29968     auto operator<=>( DescriptorSetLayoutCreateInfo const& ) const = default;
29969 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29970     bool operator==( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29971     {
29972       return ( sType == rhs.sType )
29973           && ( pNext == rhs.pNext )
29974           && ( flags == rhs.flags )
29975           && ( bindingCount == rhs.bindingCount )
29976           && ( pBindings == rhs.pBindings );
29977     }
29978 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29979     bool operator!=( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29980     {
29981       return !operator==( rhs );
29982     }
29983 #endif
29984 
29985 
29986 
29987   public:
29988     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo;
29989     const void* pNext = {};
29990     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {};
29991     uint32_t bindingCount = {};
29992     const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings = {};
29993 
29994   };
29995   static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), "struct and wrapper have different size!" );
29996   static_assert( std::is_standard_layout<DescriptorSetLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
29997 
29998   template <>
29999   struct CppType<StructureType, StructureType::eDescriptorSetLayoutCreateInfo>
30000   {
30001     using Type = DescriptorSetLayoutCreateInfo;
30002   };
30003 
30004   struct DescriptorSetLayoutSupport
30005   {
30006     static const bool allowDuplicate = false;
30007     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutSupport;
30008 
30009 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30010     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport(VULKAN_HPP_NAMESPACE::Bool32 supported_ = {}) VULKAN_HPP_NOEXCEPT
30011     : supported( supported_ )
30012     {}
30013 
30014     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30015 
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30016     DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30017     {
30018       *this = rhs;
30019     }
30020 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30021 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30022     DescriptorSetLayoutSupport & operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30023     {
30024       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport const *>( &rhs );
30025       return *this;
30026     }
30027 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30028     DescriptorSetLayoutSupport & operator=( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30029     {
30030       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutSupport ) );
30031       return *this;
30032     }
30033 
30034 
operator VkDescriptorSetLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30035     operator VkDescriptorSetLayoutSupport const&() const VULKAN_HPP_NOEXCEPT
30036     {
30037       return *reinterpret_cast<const VkDescriptorSetLayoutSupport*>( this );
30038     }
30039 
operator VkDescriptorSetLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30040     operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT
30041     {
30042       return *reinterpret_cast<VkDescriptorSetLayoutSupport*>( this );
30043     }
30044 
30045 
30046 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30047     auto operator<=>( DescriptorSetLayoutSupport const& ) const = default;
30048 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30049     bool operator==( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
30050     {
30051       return ( sType == rhs.sType )
30052           && ( pNext == rhs.pNext )
30053           && ( supported == rhs.supported );
30054     }
30055 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30056     bool operator!=( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
30057     {
30058       return !operator==( rhs );
30059     }
30060 #endif
30061 
30062 
30063 
30064   public:
30065     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport;
30066     void* pNext = {};
30067     VULKAN_HPP_NAMESPACE::Bool32 supported = {};
30068 
30069   };
30070   static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), "struct and wrapper have different size!" );
30071   static_assert( std::is_standard_layout<DescriptorSetLayoutSupport>::value, "struct wrapper is not a standard layout!" );
30072 
30073   template <>
30074   struct CppType<StructureType, StructureType::eDescriptorSetLayoutSupport>
30075   {
30076     using Type = DescriptorSetLayoutSupport;
30077   };
30078   using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
30079 
30080   struct DescriptorSetVariableDescriptorCountAllocateInfo
30081   {
30082     static const bool allowDuplicate = false;
30083     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
30084 
30085 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30086     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo(uint32_t descriptorSetCount_ = {}, const uint32_t* pDescriptorCounts_ = {}) VULKAN_HPP_NOEXCEPT
30087     : descriptorSetCount( descriptorSetCount_ ), pDescriptorCounts( pDescriptorCounts_ )
30088     {}
30089 
30090     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30091 
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30092     DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30093     {
30094       *this = rhs;
30095     }
30096 
30097 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30098     DescriptorSetVariableDescriptorCountAllocateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ )
30099     : descriptorSetCount( static_cast<uint32_t>( descriptorCounts_.size() ) ), pDescriptorCounts( descriptorCounts_.data() )
30100     {}
30101 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30102 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30103 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30104     DescriptorSetVariableDescriptorCountAllocateInfo & operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30105     {
30106       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo const *>( &rhs );
30107       return *this;
30108     }
30109 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30110     DescriptorSetVariableDescriptorCountAllocateInfo & operator=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30111     {
30112       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) );
30113       return *this;
30114     }
30115 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30116     DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30117     {
30118       pNext = pNext_;
30119       return *this;
30120     }
30121 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30122     DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
30123     {
30124       descriptorSetCount = descriptorSetCount_;
30125       return *this;
30126     }
30127 
setPDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30128     DescriptorSetVariableDescriptorCountAllocateInfo & setPDescriptorCounts( const uint32_t* pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT
30129     {
30130       pDescriptorCounts = pDescriptorCounts_;
30131       return *this;
30132     }
30133 
30134 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30135     DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ ) VULKAN_HPP_NOEXCEPT
30136     {
30137       descriptorSetCount = static_cast<uint32_t>( descriptorCounts_.size() );
30138       pDescriptorCounts = descriptorCounts_.data();
30139       return *this;
30140     }
30141 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30142 
30143 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30144     operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
30145     {
30146       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
30147     }
30148 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30149     operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT
30150     {
30151       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
30152     }
30153 
30154 
30155 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30156     auto operator<=>( DescriptorSetVariableDescriptorCountAllocateInfo const& ) const = default;
30157 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30158     bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30159     {
30160       return ( sType == rhs.sType )
30161           && ( pNext == rhs.pNext )
30162           && ( descriptorSetCount == rhs.descriptorSetCount )
30163           && ( pDescriptorCounts == rhs.pDescriptorCounts );
30164     }
30165 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30166     bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30167     {
30168       return !operator==( rhs );
30169     }
30170 #endif
30171 
30172 
30173 
30174   public:
30175     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
30176     const void* pNext = {};
30177     uint32_t descriptorSetCount = {};
30178     const uint32_t* pDescriptorCounts = {};
30179 
30180   };
30181   static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) == sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfo ), "struct and wrapper have different size!" );
30182   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountAllocateInfo>::value, "struct wrapper is not a standard layout!" );
30183 
30184   template <>
30185   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo>
30186   {
30187     using Type = DescriptorSetVariableDescriptorCountAllocateInfo;
30188   };
30189   using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
30190 
30191   struct DescriptorSetVariableDescriptorCountLayoutSupport
30192   {
30193     static const bool allowDuplicate = false;
30194     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
30195 
30196 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30197     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport(uint32_t maxVariableDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
30198     : maxVariableDescriptorCount( maxVariableDescriptorCount_ )
30199     {}
30200 
30201     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30202 
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30203     DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30204     {
30205       *this = rhs;
30206     }
30207 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30208 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30209     DescriptorSetVariableDescriptorCountLayoutSupport & operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30210     {
30211       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport const *>( &rhs );
30212       return *this;
30213     }
30214 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30215     DescriptorSetVariableDescriptorCountLayoutSupport & operator=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30216     {
30217       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) );
30218       return *this;
30219     }
30220 
30221 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30222     operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&() const VULKAN_HPP_NOEXCEPT
30223     {
30224       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
30225     }
30226 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30227     operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT
30228     {
30229       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
30230     }
30231 
30232 
30233 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30234     auto operator<=>( DescriptorSetVariableDescriptorCountLayoutSupport const& ) const = default;
30235 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30236     bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
30237     {
30238       return ( sType == rhs.sType )
30239           && ( pNext == rhs.pNext )
30240           && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount );
30241     }
30242 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30243     bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
30244     {
30245       return !operator==( rhs );
30246     }
30247 #endif
30248 
30249 
30250 
30251   public:
30252     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
30253     void* pNext = {};
30254     uint32_t maxVariableDescriptorCount = {};
30255 
30256   };
30257   static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupport ), "struct and wrapper have different size!" );
30258   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountLayoutSupport>::value, "struct wrapper is not a standard layout!" );
30259 
30260   template <>
30261   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport>
30262   {
30263     using Type = DescriptorSetVariableDescriptorCountLayoutSupport;
30264   };
30265   using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
30266 
30267   struct DescriptorUpdateTemplateEntry
30268   {
30269 
30270 
30271 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30272     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
30273     : dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), offset( offset_ ), stride( stride_ )
30274     {}
30275 
30276     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30277 
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30278     DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
30279     {
30280       *this = rhs;
30281     }
30282 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30283 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30284     DescriptorUpdateTemplateEntry & operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
30285     {
30286       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry const *>( &rhs );
30287       return *this;
30288     }
30289 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30290     DescriptorUpdateTemplateEntry & operator=( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
30291     {
30292       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorUpdateTemplateEntry ) );
30293       return *this;
30294     }
30295 
setDstBindingVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30296     DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
30297     {
30298       dstBinding = dstBinding_;
30299       return *this;
30300     }
30301 
setDstArrayElementVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30302     DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
30303     {
30304       dstArrayElement = dstArrayElement_;
30305       return *this;
30306     }
30307 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30308     DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
30309     {
30310       descriptorCount = descriptorCount_;
30311       return *this;
30312     }
30313 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30314     DescriptorUpdateTemplateEntry & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
30315     {
30316       descriptorType = descriptorType_;
30317       return *this;
30318     }
30319 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30320     DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT
30321     {
30322       offset = offset_;
30323       return *this;
30324     }
30325 
setStrideVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30326     DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT
30327     {
30328       stride = stride_;
30329       return *this;
30330     }
30331 
30332 
operator VkDescriptorUpdateTemplateEntry const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30333     operator VkDescriptorUpdateTemplateEntry const&() const VULKAN_HPP_NOEXCEPT
30334     {
30335       return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry*>( this );
30336     }
30337 
operator VkDescriptorUpdateTemplateEntry&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30338     operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT
30339     {
30340       return *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>( this );
30341     }
30342 
30343 
30344 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30345     auto operator<=>( DescriptorUpdateTemplateEntry const& ) const = default;
30346 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30347     bool operator==( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
30348     {
30349       return ( dstBinding == rhs.dstBinding )
30350           && ( dstArrayElement == rhs.dstArrayElement )
30351           && ( descriptorCount == rhs.descriptorCount )
30352           && ( descriptorType == rhs.descriptorType )
30353           && ( offset == rhs.offset )
30354           && ( stride == rhs.stride );
30355     }
30356 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30357     bool operator!=( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
30358     {
30359       return !operator==( rhs );
30360     }
30361 #endif
30362 
30363 
30364 
30365   public:
30366     uint32_t dstBinding = {};
30367     uint32_t dstArrayElement = {};
30368     uint32_t descriptorCount = {};
30369     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
30370     size_t offset = {};
30371     size_t stride = {};
30372 
30373   };
30374   static_assert( sizeof( DescriptorUpdateTemplateEntry ) == sizeof( VkDescriptorUpdateTemplateEntry ), "struct and wrapper have different size!" );
30375   static_assert( std::is_standard_layout<DescriptorUpdateTemplateEntry>::value, "struct wrapper is not a standard layout!" );
30376   using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
30377 
30378   struct DescriptorUpdateTemplateCreateInfo
30379   {
30380     static const bool allowDuplicate = false;
30381     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorUpdateTemplateCreateInfo;
30382 
30383 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30384     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
30385     : flags( flags_ ), descriptorUpdateEntryCount( descriptorUpdateEntryCount_ ), pDescriptorUpdateEntries( pDescriptorUpdateEntries_ ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ )
30386     {}
30387 
30388     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30389 
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30390     DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30391     {
30392       *this = rhs;
30393     }
30394 
30395 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30396     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_ = {} )
30397     : flags( flags_ ), descriptorUpdateEntryCount( static_cast<uint32_t>( descriptorUpdateEntries_.size() ) ), pDescriptorUpdateEntries( descriptorUpdateEntries_.data() ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ )
30398     {}
30399 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30400 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30401 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30402     DescriptorUpdateTemplateCreateInfo & operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30403     {
30404       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const *>( &rhs );
30405       return *this;
30406     }
30407 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30408     DescriptorUpdateTemplateCreateInfo & operator=( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30409     {
30410       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorUpdateTemplateCreateInfo ) );
30411       return *this;
30412     }
30413 
setPNextVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30414     DescriptorUpdateTemplateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30415     {
30416       pNext = pNext_;
30417       return *this;
30418     }
30419 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30420     DescriptorUpdateTemplateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
30421     {
30422       flags = flags_;
30423       return *this;
30424     }
30425 
setDescriptorUpdateEntryCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30426     DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT
30427     {
30428       descriptorUpdateEntryCount = descriptorUpdateEntryCount_;
30429       return *this;
30430     }
30431 
setPDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30432     DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
30433     {
30434       pDescriptorUpdateEntries = pDescriptorUpdateEntries_;
30435       return *this;
30436     }
30437 
30438 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30439     DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const & descriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
30440     {
30441       descriptorUpdateEntryCount = static_cast<uint32_t>( descriptorUpdateEntries_.size() );
30442       pDescriptorUpdateEntries = descriptorUpdateEntries_.data();
30443       return *this;
30444     }
30445 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30446 
setTemplateTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30447     DescriptorUpdateTemplateCreateInfo & setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT
30448     {
30449       templateType = templateType_;
30450       return *this;
30451     }
30452 
setDescriptorSetLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30453     DescriptorUpdateTemplateCreateInfo & setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
30454     {
30455       descriptorSetLayout = descriptorSetLayout_;
30456       return *this;
30457     }
30458 
setPipelineBindPointVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30459     DescriptorUpdateTemplateCreateInfo & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
30460     {
30461       pipelineBindPoint = pipelineBindPoint_;
30462       return *this;
30463     }
30464 
setPipelineLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30465     DescriptorUpdateTemplateCreateInfo & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT
30466     {
30467       pipelineLayout = pipelineLayout_;
30468       return *this;
30469     }
30470 
setSetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30471     DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT
30472     {
30473       set = set_;
30474       return *this;
30475     }
30476 
30477 
operator VkDescriptorUpdateTemplateCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30478     operator VkDescriptorUpdateTemplateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
30479     {
30480       return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( this );
30481     }
30482 
operator VkDescriptorUpdateTemplateCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30483     operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT
30484     {
30485       return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>( this );
30486     }
30487 
30488 
30489 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30490     auto operator<=>( DescriptorUpdateTemplateCreateInfo const& ) const = default;
30491 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30492     bool operator==( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30493     {
30494       return ( sType == rhs.sType )
30495           && ( pNext == rhs.pNext )
30496           && ( flags == rhs.flags )
30497           && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount )
30498           && ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries )
30499           && ( templateType == rhs.templateType )
30500           && ( descriptorSetLayout == rhs.descriptorSetLayout )
30501           && ( pipelineBindPoint == rhs.pipelineBindPoint )
30502           && ( pipelineLayout == rhs.pipelineLayout )
30503           && ( set == rhs.set );
30504     }
30505 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30506     bool operator!=( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30507     {
30508       return !operator==( rhs );
30509     }
30510 #endif
30511 
30512 
30513 
30514   public:
30515     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo;
30516     const void* pNext = {};
30517     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {};
30518     uint32_t descriptorUpdateEntryCount = {};
30519     const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries = {};
30520     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet;
30521     VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {};
30522     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
30523     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {};
30524     uint32_t set = {};
30525 
30526   };
30527   static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), "struct and wrapper have different size!" );
30528   static_assert( std::is_standard_layout<DescriptorUpdateTemplateCreateInfo>::value, "struct wrapper is not a standard layout!" );
30529 
30530   template <>
30531   struct CppType<StructureType, StructureType::eDescriptorUpdateTemplateCreateInfo>
30532   {
30533     using Type = DescriptorUpdateTemplateCreateInfo;
30534   };
30535   using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
30536 
30537   struct DeviceQueueCreateInfo
30538   {
30539     static const bool allowDuplicate = false;
30540     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueCreateInfo;
30541 
30542 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30543     VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueCount_ = {}, const float* pQueuePriorities_ = {}) VULKAN_HPP_NOEXCEPT
30544     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( queueCount_ ), pQueuePriorities( pQueuePriorities_ )
30545     {}
30546 
30547     VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30548 
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30549     DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30550     {
30551       *this = rhs;
30552     }
30553 
30554 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30555     DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_, uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ )
30556     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( static_cast<uint32_t>( queuePriorities_.size() ) ), pQueuePriorities( queuePriorities_.data() )
30557     {}
30558 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30559 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30560 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30561     DeviceQueueCreateInfo & operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30562     {
30563       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo const *>( &rhs );
30564       return *this;
30565     }
30566 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30567     DeviceQueueCreateInfo & operator=( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30568     {
30569       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceQueueCreateInfo ) );
30570       return *this;
30571     }
30572 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30573     DeviceQueueCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30574     {
30575       pNext = pNext_;
30576       return *this;
30577     }
30578 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30579     DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
30580     {
30581       flags = flags_;
30582       return *this;
30583     }
30584 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30585     DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
30586     {
30587       queueFamilyIndex = queueFamilyIndex_;
30588       return *this;
30589     }
30590 
setQueueCountVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30591     DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT
30592     {
30593       queueCount = queueCount_;
30594       return *this;
30595     }
30596 
setPQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30597     DeviceQueueCreateInfo & setPQueuePriorities( const float* pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT
30598     {
30599       pQueuePriorities = pQueuePriorities_;
30600       return *this;
30601     }
30602 
30603 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30604     DeviceQueueCreateInfo & setQueuePriorities( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ ) VULKAN_HPP_NOEXCEPT
30605     {
30606       queueCount = static_cast<uint32_t>( queuePriorities_.size() );
30607       pQueuePriorities = queuePriorities_.data();
30608       return *this;
30609     }
30610 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30611 
30612 
operator VkDeviceQueueCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30613     operator VkDeviceQueueCreateInfo const&() const VULKAN_HPP_NOEXCEPT
30614     {
30615       return *reinterpret_cast<const VkDeviceQueueCreateInfo*>( this );
30616     }
30617 
operator VkDeviceQueueCreateInfo&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30618     operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT
30619     {
30620       return *reinterpret_cast<VkDeviceQueueCreateInfo*>( this );
30621     }
30622 
30623 
30624 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30625     auto operator<=>( DeviceQueueCreateInfo const& ) const = default;
30626 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30627     bool operator==( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30628     {
30629       return ( sType == rhs.sType )
30630           && ( pNext == rhs.pNext )
30631           && ( flags == rhs.flags )
30632           && ( queueFamilyIndex == rhs.queueFamilyIndex )
30633           && ( queueCount == rhs.queueCount )
30634           && ( pQueuePriorities == rhs.pQueuePriorities );
30635     }
30636 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30637     bool operator!=( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30638     {
30639       return !operator==( rhs );
30640     }
30641 #endif
30642 
30643 
30644 
30645   public:
30646     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo;
30647     const void* pNext = {};
30648     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
30649     uint32_t queueFamilyIndex = {};
30650     uint32_t queueCount = {};
30651     const float* pQueuePriorities = {};
30652 
30653   };
30654   static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), "struct and wrapper have different size!" );
30655   static_assert( std::is_standard_layout<DeviceQueueCreateInfo>::value, "struct wrapper is not a standard layout!" );
30656 
30657   template <>
30658   struct CppType<StructureType, StructureType::eDeviceQueueCreateInfo>
30659   {
30660     using Type = DeviceQueueCreateInfo;
30661   };
30662 
30663   struct PhysicalDeviceFeatures
30664   {
30665 
30666 
30667 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30668     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
30669     : 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_ )
30670     {}
30671 
30672     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30673 
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30674     PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
30675     {
30676       *this = rhs;
30677     }
30678 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30679 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30680     PhysicalDeviceFeatures & operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
30681     {
30682       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const *>( &rhs );
30683       return *this;
30684     }
30685 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30686     PhysicalDeviceFeatures & operator=( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
30687     {
30688       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFeatures ) );
30689       return *this;
30690     }
30691 
setRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30692     PhysicalDeviceFeatures & setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
30693     {
30694       robustBufferAccess = robustBufferAccess_;
30695       return *this;
30696     }
30697 
setFullDrawIndexUint32VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30698     PhysicalDeviceFeatures & setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT
30699     {
30700       fullDrawIndexUint32 = fullDrawIndexUint32_;
30701       return *this;
30702     }
30703 
setImageCubeArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30704     PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT
30705     {
30706       imageCubeArray = imageCubeArray_;
30707       return *this;
30708     }
30709 
setIndependentBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30710     PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT
30711     {
30712       independentBlend = independentBlend_;
30713       return *this;
30714     }
30715 
setGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30716     PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT
30717     {
30718       geometryShader = geometryShader_;
30719       return *this;
30720     }
30721 
setTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30722     PhysicalDeviceFeatures & setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT
30723     {
30724       tessellationShader = tessellationShader_;
30725       return *this;
30726     }
30727 
setSampleRateShadingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30728     PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT
30729     {
30730       sampleRateShading = sampleRateShading_;
30731       return *this;
30732     }
30733 
setDualSrcBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30734     PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT
30735     {
30736       dualSrcBlend = dualSrcBlend_;
30737       return *this;
30738     }
30739 
setLogicOpVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30740     PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT
30741     {
30742       logicOp = logicOp_;
30743       return *this;
30744     }
30745 
setMultiDrawIndirectVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30746     PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT
30747     {
30748       multiDrawIndirect = multiDrawIndirect_;
30749       return *this;
30750     }
30751 
setDrawIndirectFirstInstanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30752     PhysicalDeviceFeatures & setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT
30753     {
30754       drawIndirectFirstInstance = drawIndirectFirstInstance_;
30755       return *this;
30756     }
30757 
setDepthClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30758     PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT
30759     {
30760       depthClamp = depthClamp_;
30761       return *this;
30762     }
30763 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30764     PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
30765     {
30766       depthBiasClamp = depthBiasClamp_;
30767       return *this;
30768     }
30769 
setFillModeNonSolidVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30770     PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT
30771     {
30772       fillModeNonSolid = fillModeNonSolid_;
30773       return *this;
30774     }
30775 
setDepthBoundsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30776     PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT
30777     {
30778       depthBounds = depthBounds_;
30779       return *this;
30780     }
30781 
setWideLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30782     PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT
30783     {
30784       wideLines = wideLines_;
30785       return *this;
30786     }
30787 
setLargePointsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30788     PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT
30789     {
30790       largePoints = largePoints_;
30791       return *this;
30792     }
30793 
setAlphaToOneVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30794     PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT
30795     {
30796       alphaToOne = alphaToOne_;
30797       return *this;
30798     }
30799 
setMultiViewportVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30800     PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT
30801     {
30802       multiViewport = multiViewport_;
30803       return *this;
30804     }
30805 
setSamplerAnisotropyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30806     PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT
30807     {
30808       samplerAnisotropy = samplerAnisotropy_;
30809       return *this;
30810     }
30811 
setTextureCompressionETC2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30812     PhysicalDeviceFeatures & setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT
30813     {
30814       textureCompressionETC2 = textureCompressionETC2_;
30815       return *this;
30816     }
30817 
setTextureCompressionASTC_LDRVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30818     PhysicalDeviceFeatures & setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT
30819     {
30820       textureCompressionASTC_LDR = textureCompressionASTC_LDR_;
30821       return *this;
30822     }
30823 
setTextureCompressionBCVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30824     PhysicalDeviceFeatures & setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT
30825     {
30826       textureCompressionBC = textureCompressionBC_;
30827       return *this;
30828     }
30829 
setOcclusionQueryPreciseVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30830     PhysicalDeviceFeatures & setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT
30831     {
30832       occlusionQueryPrecise = occlusionQueryPrecise_;
30833       return *this;
30834     }
30835 
setPipelineStatisticsQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30836     PhysicalDeviceFeatures & setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT
30837     {
30838       pipelineStatisticsQuery = pipelineStatisticsQuery_;
30839       return *this;
30840     }
30841 
setVertexPipelineStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30842     PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
30843     {
30844       vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_;
30845       return *this;
30846     }
30847 
setFragmentStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30848     PhysicalDeviceFeatures & setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
30849     {
30850       fragmentStoresAndAtomics = fragmentStoresAndAtomics_;
30851       return *this;
30852     }
30853 
setShaderTessellationAndGeometryPointSizeVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30854     PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT
30855     {
30856       shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_;
30857       return *this;
30858     }
30859 
setShaderImageGatherExtendedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30860     PhysicalDeviceFeatures & setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT
30861     {
30862       shaderImageGatherExtended = shaderImageGatherExtended_;
30863       return *this;
30864     }
30865 
setShaderStorageImageExtendedFormatsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30866     PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT
30867     {
30868       shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_;
30869       return *this;
30870     }
30871 
setShaderStorageImageMultisampleVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30872     PhysicalDeviceFeatures & setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT
30873     {
30874       shaderStorageImageMultisample = shaderStorageImageMultisample_;
30875       return *this;
30876     }
30877 
setShaderStorageImageReadWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30878     PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
30879     {
30880       shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_;
30881       return *this;
30882     }
30883 
setShaderStorageImageWriteWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30884     PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
30885     {
30886       shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_;
30887       return *this;
30888     }
30889 
setShaderUniformBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30890     PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
30891     {
30892       shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_;
30893       return *this;
30894     }
30895 
setShaderSampledImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30896     PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
30897     {
30898       shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_;
30899       return *this;
30900     }
30901 
setShaderStorageBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30902     PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
30903     {
30904       shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_;
30905       return *this;
30906     }
30907 
setShaderStorageImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30908     PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
30909     {
30910       shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_;
30911       return *this;
30912     }
30913 
setShaderClipDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30914     PhysicalDeviceFeatures & setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT
30915     {
30916       shaderClipDistance = shaderClipDistance_;
30917       return *this;
30918     }
30919 
setShaderCullDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30920     PhysicalDeviceFeatures & setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT
30921     {
30922       shaderCullDistance = shaderCullDistance_;
30923       return *this;
30924     }
30925 
setShaderFloat64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30926     PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT
30927     {
30928       shaderFloat64 = shaderFloat64_;
30929       return *this;
30930     }
30931 
setShaderInt64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30932     PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT
30933     {
30934       shaderInt64 = shaderInt64_;
30935       return *this;
30936     }
30937 
setShaderInt16VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30938     PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT
30939     {
30940       shaderInt16 = shaderInt16_;
30941       return *this;
30942     }
30943 
setShaderResourceResidencyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30944     PhysicalDeviceFeatures & setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT
30945     {
30946       shaderResourceResidency = shaderResourceResidency_;
30947       return *this;
30948     }
30949 
setShaderResourceMinLodVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30950     PhysicalDeviceFeatures & setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT
30951     {
30952       shaderResourceMinLod = shaderResourceMinLod_;
30953       return *this;
30954     }
30955 
setSparseBindingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30956     PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT
30957     {
30958       sparseBinding = sparseBinding_;
30959       return *this;
30960     }
30961 
setSparseResidencyBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30962     PhysicalDeviceFeatures & setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT
30963     {
30964       sparseResidencyBuffer = sparseResidencyBuffer_;
30965       return *this;
30966     }
30967 
setSparseResidencyImage2DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30968     PhysicalDeviceFeatures & setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT
30969     {
30970       sparseResidencyImage2D = sparseResidencyImage2D_;
30971       return *this;
30972     }
30973 
setSparseResidencyImage3DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30974     PhysicalDeviceFeatures & setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT
30975     {
30976       sparseResidencyImage3D = sparseResidencyImage3D_;
30977       return *this;
30978     }
30979 
setSparseResidency2SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30980     PhysicalDeviceFeatures & setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT
30981     {
30982       sparseResidency2Samples = sparseResidency2Samples_;
30983       return *this;
30984     }
30985 
setSparseResidency4SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30986     PhysicalDeviceFeatures & setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT
30987     {
30988       sparseResidency4Samples = sparseResidency4Samples_;
30989       return *this;
30990     }
30991 
setSparseResidency8SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30992     PhysicalDeviceFeatures & setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT
30993     {
30994       sparseResidency8Samples = sparseResidency8Samples_;
30995       return *this;
30996     }
30997 
setSparseResidency16SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30998     PhysicalDeviceFeatures & setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT
30999     {
31000       sparseResidency16Samples = sparseResidency16Samples_;
31001       return *this;
31002     }
31003 
setSparseResidencyAliasedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31004     PhysicalDeviceFeatures & setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT
31005     {
31006       sparseResidencyAliased = sparseResidencyAliased_;
31007       return *this;
31008     }
31009 
setVariableMultisampleRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31010     PhysicalDeviceFeatures & setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT
31011     {
31012       variableMultisampleRate = variableMultisampleRate_;
31013       return *this;
31014     }
31015 
setInheritedQueriesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31016     PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT
31017     {
31018       inheritedQueries = inheritedQueries_;
31019       return *this;
31020     }
31021 
31022 
operator VkPhysicalDeviceFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31023     operator VkPhysicalDeviceFeatures const&() const VULKAN_HPP_NOEXCEPT
31024     {
31025       return *reinterpret_cast<const VkPhysicalDeviceFeatures*>( this );
31026     }
31027 
operator VkPhysicalDeviceFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31028     operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT
31029     {
31030       return *reinterpret_cast<VkPhysicalDeviceFeatures*>( this );
31031     }
31032 
31033 
31034 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31035     auto operator<=>( PhysicalDeviceFeatures const& ) const = default;
31036 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31037     bool operator==( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
31038     {
31039       return ( robustBufferAccess == rhs.robustBufferAccess )
31040           && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 )
31041           && ( imageCubeArray == rhs.imageCubeArray )
31042           && ( independentBlend == rhs.independentBlend )
31043           && ( geometryShader == rhs.geometryShader )
31044           && ( tessellationShader == rhs.tessellationShader )
31045           && ( sampleRateShading == rhs.sampleRateShading )
31046           && ( dualSrcBlend == rhs.dualSrcBlend )
31047           && ( logicOp == rhs.logicOp )
31048           && ( multiDrawIndirect == rhs.multiDrawIndirect )
31049           && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance )
31050           && ( depthClamp == rhs.depthClamp )
31051           && ( depthBiasClamp == rhs.depthBiasClamp )
31052           && ( fillModeNonSolid == rhs.fillModeNonSolid )
31053           && ( depthBounds == rhs.depthBounds )
31054           && ( wideLines == rhs.wideLines )
31055           && ( largePoints == rhs.largePoints )
31056           && ( alphaToOne == rhs.alphaToOne )
31057           && ( multiViewport == rhs.multiViewport )
31058           && ( samplerAnisotropy == rhs.samplerAnisotropy )
31059           && ( textureCompressionETC2 == rhs.textureCompressionETC2 )
31060           && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR )
31061           && ( textureCompressionBC == rhs.textureCompressionBC )
31062           && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise )
31063           && ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery )
31064           && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics )
31065           && ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics )
31066           && ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize )
31067           && ( shaderImageGatherExtended == rhs.shaderImageGatherExtended )
31068           && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats )
31069           && ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample )
31070           && ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat )
31071           && ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat )
31072           && ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing )
31073           && ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing )
31074           && ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing )
31075           && ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing )
31076           && ( shaderClipDistance == rhs.shaderClipDistance )
31077           && ( shaderCullDistance == rhs.shaderCullDistance )
31078           && ( shaderFloat64 == rhs.shaderFloat64 )
31079           && ( shaderInt64 == rhs.shaderInt64 )
31080           && ( shaderInt16 == rhs.shaderInt16 )
31081           && ( shaderResourceResidency == rhs.shaderResourceResidency )
31082           && ( shaderResourceMinLod == rhs.shaderResourceMinLod )
31083           && ( sparseBinding == rhs.sparseBinding )
31084           && ( sparseResidencyBuffer == rhs.sparseResidencyBuffer )
31085           && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D )
31086           && ( sparseResidencyImage3D == rhs.sparseResidencyImage3D )
31087           && ( sparseResidency2Samples == rhs.sparseResidency2Samples )
31088           && ( sparseResidency4Samples == rhs.sparseResidency4Samples )
31089           && ( sparseResidency8Samples == rhs.sparseResidency8Samples )
31090           && ( sparseResidency16Samples == rhs.sparseResidency16Samples )
31091           && ( sparseResidencyAliased == rhs.sparseResidencyAliased )
31092           && ( variableMultisampleRate == rhs.variableMultisampleRate )
31093           && ( inheritedQueries == rhs.inheritedQueries );
31094     }
31095 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31096     bool operator!=( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
31097     {
31098       return !operator==( rhs );
31099     }
31100 #endif
31101 
31102 
31103 
31104   public:
31105     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {};
31106     VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {};
31107     VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {};
31108     VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {};
31109     VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {};
31110     VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {};
31111     VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {};
31112     VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {};
31113     VULKAN_HPP_NAMESPACE::Bool32 logicOp = {};
31114     VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {};
31115     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {};
31116     VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {};
31117     VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {};
31118     VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {};
31119     VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {};
31120     VULKAN_HPP_NAMESPACE::Bool32 wideLines = {};
31121     VULKAN_HPP_NAMESPACE::Bool32 largePoints = {};
31122     VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {};
31123     VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {};
31124     VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {};
31125     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {};
31126     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {};
31127     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {};
31128     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {};
31129     VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {};
31130     VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {};
31131     VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {};
31132     VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {};
31133     VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {};
31134     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {};
31135     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {};
31136     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {};
31137     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {};
31138     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {};
31139     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {};
31140     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {};
31141     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {};
31142     VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {};
31143     VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {};
31144     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {};
31145     VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {};
31146     VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {};
31147     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {};
31148     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {};
31149     VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {};
31150     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {};
31151     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {};
31152     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {};
31153     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {};
31154     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {};
31155     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {};
31156     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {};
31157     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {};
31158     VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {};
31159     VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {};
31160 
31161   };
31162   static_assert( sizeof( PhysicalDeviceFeatures ) == sizeof( VkPhysicalDeviceFeatures ), "struct and wrapper have different size!" );
31163   static_assert( std::is_standard_layout<PhysicalDeviceFeatures>::value, "struct wrapper is not a standard layout!" );
31164 
31165   struct DeviceCreateInfo
31166   {
31167     static const bool allowDuplicate = false;
31168     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo;
31169 
31170 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo31171     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
31172     : flags( flags_ ), queueCreateInfoCount( queueCreateInfoCount_ ), pQueueCreateInfos( pQueueCreateInfos_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ ), pEnabledFeatures( pEnabledFeatures_ )
31173     {}
31174 
31175     VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31176 
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo31177     DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31178     {
31179       *this = rhs;
31180     }
31181 
31182 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo31183     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_ = {} )
31184     : 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_ )
31185     {}
31186 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31187 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31188 
operator =VULKAN_HPP_NAMESPACE::DeviceCreateInfo31189     DeviceCreateInfo & operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31190     {
31191       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceCreateInfo const *>( &rhs );
31192       return *this;
31193     }
31194 
operator =VULKAN_HPP_NAMESPACE::DeviceCreateInfo31195     DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31196     {
31197       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceCreateInfo ) );
31198       return *this;
31199     }
31200 
setPNextVULKAN_HPP_NAMESPACE::DeviceCreateInfo31201     DeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31202     {
31203       pNext = pNext_;
31204       return *this;
31205     }
31206 
setFlagsVULKAN_HPP_NAMESPACE::DeviceCreateInfo31207     DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
31208     {
31209       flags = flags_;
31210       return *this;
31211     }
31212 
setQueueCreateInfoCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo31213     DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT
31214     {
31215       queueCreateInfoCount = queueCreateInfoCount_;
31216       return *this;
31217     }
31218 
setPQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo31219     DeviceCreateInfo & setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
31220     {
31221       pQueueCreateInfos = pQueueCreateInfos_;
31222       return *this;
31223     }
31224 
31225 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo31226     DeviceCreateInfo & setQueueCreateInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const & queueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
31227     {
31228       queueCreateInfoCount = static_cast<uint32_t>( queueCreateInfos_.size() );
31229       pQueueCreateInfos = queueCreateInfos_.data();
31230       return *this;
31231     }
31232 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31233 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo31234     DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
31235     {
31236       enabledLayerCount = enabledLayerCount_;
31237       return *this;
31238     }
31239 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31240     DeviceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
31241     {
31242       ppEnabledLayerNames = ppEnabledLayerNames_;
31243       return *this;
31244     }
31245 
31246 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31247     DeviceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
31248     {
31249       enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
31250       ppEnabledLayerNames = pEnabledLayerNames_.data();
31251       return *this;
31252     }
31253 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31254 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo31255     DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
31256     {
31257       enabledExtensionCount = enabledExtensionCount_;
31258       return *this;
31259     }
31260 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31261     DeviceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
31262     {
31263       ppEnabledExtensionNames = ppEnabledExtensionNames_;
31264       return *this;
31265     }
31266 
31267 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31268     DeviceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
31269     {
31270       enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
31271       ppEnabledExtensionNames = pEnabledExtensionNames_.data();
31272       return *this;
31273     }
31274 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31275 
setPEnabledFeaturesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31276     DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT
31277     {
31278       pEnabledFeatures = pEnabledFeatures_;
31279       return *this;
31280     }
31281 
31282 
operator VkDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceCreateInfo31283     operator VkDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
31284     {
31285       return *reinterpret_cast<const VkDeviceCreateInfo*>( this );
31286     }
31287 
operator VkDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceCreateInfo31288     operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
31289     {
31290       return *reinterpret_cast<VkDeviceCreateInfo*>( this );
31291     }
31292 
31293 
31294 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31295     auto operator<=>( DeviceCreateInfo const& ) const = default;
31296 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceCreateInfo31297     bool operator==( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31298     {
31299       return ( sType == rhs.sType )
31300           && ( pNext == rhs.pNext )
31301           && ( flags == rhs.flags )
31302           && ( queueCreateInfoCount == rhs.queueCreateInfoCount )
31303           && ( pQueueCreateInfos == rhs.pQueueCreateInfos )
31304           && ( enabledLayerCount == rhs.enabledLayerCount )
31305           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
31306           && ( enabledExtensionCount == rhs.enabledExtensionCount )
31307           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames )
31308           && ( pEnabledFeatures == rhs.pEnabledFeatures );
31309     }
31310 
operator !=VULKAN_HPP_NAMESPACE::DeviceCreateInfo31311     bool operator!=( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31312     {
31313       return !operator==( rhs );
31314     }
31315 #endif
31316 
31317 
31318 
31319   public:
31320     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo;
31321     const void* pNext = {};
31322     VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {};
31323     uint32_t queueCreateInfoCount = {};
31324     const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos = {};
31325     uint32_t enabledLayerCount = {};
31326     const char* const * ppEnabledLayerNames = {};
31327     uint32_t enabledExtensionCount = {};
31328     const char* const * ppEnabledExtensionNames = {};
31329     const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures = {};
31330 
31331   };
31332   static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "struct and wrapper have different size!" );
31333   static_assert( std::is_standard_layout<DeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
31334 
31335   template <>
31336   struct CppType<StructureType, StructureType::eDeviceCreateInfo>
31337   {
31338     using Type = DeviceCreateInfo;
31339   };
31340 
31341   struct DeviceDeviceMemoryReportCreateInfoEXT
31342   {
31343     static const bool allowDuplicate = true;
31344     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
31345 
31346 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceDeviceMemoryReportCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31347     VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
31348     : flags( flags_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ )
31349     {}
31350 
31351     VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31352 
DeviceDeviceMemoryReportCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31353     DeviceDeviceMemoryReportCreateInfoEXT( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31354     {
31355       *this = rhs;
31356     }
31357 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31358 
operator =VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31359     DeviceDeviceMemoryReportCreateInfoEXT & operator=( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31360     {
31361       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT const *>( &rhs );
31362       return *this;
31363     }
31364 
operator =VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31365     DeviceDeviceMemoryReportCreateInfoEXT & operator=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31366     {
31367       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceDeviceMemoryReportCreateInfoEXT ) );
31368       return *this;
31369     }
31370 
setPNextVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31371     DeviceDeviceMemoryReportCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31372     {
31373       pNext = pNext_;
31374       return *this;
31375     }
31376 
setFlagsVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31377     DeviceDeviceMemoryReportCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
31378     {
31379       flags = flags_;
31380       return *this;
31381     }
31382 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31383     DeviceDeviceMemoryReportCreateInfoEXT & setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
31384     {
31385       pfnUserCallback = pfnUserCallback_;
31386       return *this;
31387     }
31388 
setPUserDataVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31389     DeviceDeviceMemoryReportCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
31390     {
31391       pUserData = pUserData_;
31392       return *this;
31393     }
31394 
31395 
operator VkDeviceDeviceMemoryReportCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31396     operator VkDeviceDeviceMemoryReportCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31397     {
31398       return *reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>( this );
31399     }
31400 
operator VkDeviceDeviceMemoryReportCreateInfoEXT&VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31401     operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
31402     {
31403       return *reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>( this );
31404     }
31405 
31406 
31407 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31408     auto operator<=>( DeviceDeviceMemoryReportCreateInfoEXT const& ) const = default;
31409 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31410     bool operator==( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31411     {
31412       return ( sType == rhs.sType )
31413           && ( pNext == rhs.pNext )
31414           && ( flags == rhs.flags )
31415           && ( pfnUserCallback == rhs.pfnUserCallback )
31416           && ( pUserData == rhs.pUserData );
31417     }
31418 
operator !=VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31419     bool operator!=( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31420     {
31421       return !operator==( rhs );
31422     }
31423 #endif
31424 
31425 
31426 
31427   public:
31428     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
31429     const void* pNext = {};
31430     VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
31431     PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback = {};
31432     void* pUserData = {};
31433 
31434   };
31435   static_assert( sizeof( DeviceDeviceMemoryReportCreateInfoEXT ) == sizeof( VkDeviceDeviceMemoryReportCreateInfoEXT ), "struct and wrapper have different size!" );
31436   static_assert( std::is_standard_layout<DeviceDeviceMemoryReportCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
31437 
31438   template <>
31439   struct CppType<StructureType, StructureType::eDeviceDeviceMemoryReportCreateInfoEXT>
31440   {
31441     using Type = DeviceDeviceMemoryReportCreateInfoEXT;
31442   };
31443 
31444   struct DeviceDiagnosticsConfigCreateInfoNV
31445   {
31446     static const bool allowDuplicate = false;
31447     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
31448 
31449 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31450     VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {}) VULKAN_HPP_NOEXCEPT
31451     : flags( flags_ )
31452     {}
31453 
31454     VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31455 
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31456     DeviceDiagnosticsConfigCreateInfoNV( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31457     {
31458       *this = rhs;
31459     }
31460 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31461 
operator =VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31462     DeviceDiagnosticsConfigCreateInfoNV & operator=( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31463     {
31464       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV const *>( &rhs );
31465       return *this;
31466     }
31467 
operator =VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31468     DeviceDiagnosticsConfigCreateInfoNV & operator=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31469     {
31470       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceDiagnosticsConfigCreateInfoNV ) );
31471       return *this;
31472     }
31473 
setPNextVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31474     DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31475     {
31476       pNext = pNext_;
31477       return *this;
31478     }
31479 
setFlagsVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31480     DeviceDiagnosticsConfigCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
31481     {
31482       flags = flags_;
31483       return *this;
31484     }
31485 
31486 
operator VkDeviceDiagnosticsConfigCreateInfoNV const&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31487     operator VkDeviceDiagnosticsConfigCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
31488     {
31489       return *reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
31490     }
31491 
operator VkDeviceDiagnosticsConfigCreateInfoNV&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31492     operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT
31493     {
31494       return *reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
31495     }
31496 
31497 
31498 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31499     auto operator<=>( DeviceDiagnosticsConfigCreateInfoNV const& ) const = default;
31500 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31501     bool operator==( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
31502     {
31503       return ( sType == rhs.sType )
31504           && ( pNext == rhs.pNext )
31505           && ( flags == rhs.flags );
31506     }
31507 
operator !=VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31508     bool operator!=( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
31509     {
31510       return !operator==( rhs );
31511     }
31512 #endif
31513 
31514 
31515 
31516   public:
31517     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
31518     const void* pNext = {};
31519     VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags = {};
31520 
31521   };
31522   static_assert( sizeof( DeviceDiagnosticsConfigCreateInfoNV ) == sizeof( VkDeviceDiagnosticsConfigCreateInfoNV ), "struct and wrapper have different size!" );
31523   static_assert( std::is_standard_layout<DeviceDiagnosticsConfigCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
31524 
31525   template <>
31526   struct CppType<StructureType, StructureType::eDeviceDiagnosticsConfigCreateInfoNV>
31527   {
31528     using Type = DeviceDiagnosticsConfigCreateInfoNV;
31529   };
31530 
31531   struct DeviceEventInfoEXT
31532   {
31533     static const bool allowDuplicate = false;
31534     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceEventInfoEXT;
31535 
31536 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31537     VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT(VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug) VULKAN_HPP_NOEXCEPT
31538     : deviceEvent( deviceEvent_ )
31539     {}
31540 
31541     VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31542 
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31543     DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31544     {
31545       *this = rhs;
31546     }
31547 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31548 
operator =VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31549     DeviceEventInfoEXT & operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31550     {
31551       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const *>( &rhs );
31552       return *this;
31553     }
31554 
operator =VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31555     DeviceEventInfoEXT & operator=( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31556     {
31557       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceEventInfoEXT ) );
31558       return *this;
31559     }
31560 
setPNextVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31561     DeviceEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31562     {
31563       pNext = pNext_;
31564       return *this;
31565     }
31566 
setDeviceEventVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31567     DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT
31568     {
31569       deviceEvent = deviceEvent_;
31570       return *this;
31571     }
31572 
31573 
operator VkDeviceEventInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31574     operator VkDeviceEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31575     {
31576       return *reinterpret_cast<const VkDeviceEventInfoEXT*>( this );
31577     }
31578 
operator VkDeviceEventInfoEXT&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31579     operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT
31580     {
31581       return *reinterpret_cast<VkDeviceEventInfoEXT*>( this );
31582     }
31583 
31584 
31585 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31586     auto operator<=>( DeviceEventInfoEXT const& ) const = default;
31587 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31588     bool operator==( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31589     {
31590       return ( sType == rhs.sType )
31591           && ( pNext == rhs.pNext )
31592           && ( deviceEvent == rhs.deviceEvent );
31593     }
31594 
operator !=VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31595     bool operator!=( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31596     {
31597       return !operator==( rhs );
31598     }
31599 #endif
31600 
31601 
31602 
31603   public:
31604     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT;
31605     const void* pNext = {};
31606     VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug;
31607 
31608   };
31609   static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), "struct and wrapper have different size!" );
31610   static_assert( std::is_standard_layout<DeviceEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
31611 
31612   template <>
31613   struct CppType<StructureType, StructureType::eDeviceEventInfoEXT>
31614   {
31615     using Type = DeviceEventInfoEXT;
31616   };
31617 
31618   struct DeviceGroupBindSparseInfo
31619   {
31620     static const bool allowDuplicate = false;
31621     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupBindSparseInfo;
31622 
31623 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31624     VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo(uint32_t resourceDeviceIndex_ = {}, uint32_t memoryDeviceIndex_ = {}) VULKAN_HPP_NOEXCEPT
31625     : resourceDeviceIndex( resourceDeviceIndex_ ), memoryDeviceIndex( memoryDeviceIndex_ )
31626     {}
31627 
31628     VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31629 
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31630     DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31631     {
31632       *this = rhs;
31633     }
31634 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31635 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31636     DeviceGroupBindSparseInfo & operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31637     {
31638       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo const *>( &rhs );
31639       return *this;
31640     }
31641 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31642     DeviceGroupBindSparseInfo & operator=( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31643     {
31644       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupBindSparseInfo ) );
31645       return *this;
31646     }
31647 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31648     DeviceGroupBindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31649     {
31650       pNext = pNext_;
31651       return *this;
31652     }
31653 
setResourceDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31654     DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
31655     {
31656       resourceDeviceIndex = resourceDeviceIndex_;
31657       return *this;
31658     }
31659 
setMemoryDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31660     DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
31661     {
31662       memoryDeviceIndex = memoryDeviceIndex_;
31663       return *this;
31664     }
31665 
31666 
operator VkDeviceGroupBindSparseInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31667     operator VkDeviceGroupBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT
31668     {
31669       return *reinterpret_cast<const VkDeviceGroupBindSparseInfo*>( this );
31670     }
31671 
operator VkDeviceGroupBindSparseInfo&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31672     operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT
31673     {
31674       return *reinterpret_cast<VkDeviceGroupBindSparseInfo*>( this );
31675     }
31676 
31677 
31678 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31679     auto operator<=>( DeviceGroupBindSparseInfo const& ) const = default;
31680 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31681     bool operator==( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31682     {
31683       return ( sType == rhs.sType )
31684           && ( pNext == rhs.pNext )
31685           && ( resourceDeviceIndex == rhs.resourceDeviceIndex )
31686           && ( memoryDeviceIndex == rhs.memoryDeviceIndex );
31687     }
31688 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31689     bool operator!=( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31690     {
31691       return !operator==( rhs );
31692     }
31693 #endif
31694 
31695 
31696 
31697   public:
31698     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo;
31699     const void* pNext = {};
31700     uint32_t resourceDeviceIndex = {};
31701     uint32_t memoryDeviceIndex = {};
31702 
31703   };
31704   static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), "struct and wrapper have different size!" );
31705   static_assert( std::is_standard_layout<DeviceGroupBindSparseInfo>::value, "struct wrapper is not a standard layout!" );
31706 
31707   template <>
31708   struct CppType<StructureType, StructureType::eDeviceGroupBindSparseInfo>
31709   {
31710     using Type = DeviceGroupBindSparseInfo;
31711   };
31712   using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
31713 
31714   struct DeviceGroupCommandBufferBeginInfo
31715   {
31716     static const bool allowDuplicate = false;
31717     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupCommandBufferBeginInfo;
31718 
31719 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31720     VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo(uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT
31721     : deviceMask( deviceMask_ )
31722     {}
31723 
31724     VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31725 
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31726     DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31727     {
31728       *this = rhs;
31729     }
31730 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31731 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31732     DeviceGroupCommandBufferBeginInfo & operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31733     {
31734       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo const *>( &rhs );
31735       return *this;
31736     }
31737 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31738     DeviceGroupCommandBufferBeginInfo & operator=( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31739     {
31740       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupCommandBufferBeginInfo ) );
31741       return *this;
31742     }
31743 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31744     DeviceGroupCommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31745     {
31746       pNext = pNext_;
31747       return *this;
31748     }
31749 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31750     DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
31751     {
31752       deviceMask = deviceMask_;
31753       return *this;
31754     }
31755 
31756 
operator VkDeviceGroupCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31757     operator VkDeviceGroupCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT
31758     {
31759       return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>( this );
31760     }
31761 
operator VkDeviceGroupCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31762     operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
31763     {
31764       return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>( this );
31765     }
31766 
31767 
31768 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31769     auto operator<=>( DeviceGroupCommandBufferBeginInfo const& ) const = default;
31770 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31771     bool operator==( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31772     {
31773       return ( sType == rhs.sType )
31774           && ( pNext == rhs.pNext )
31775           && ( deviceMask == rhs.deviceMask );
31776     }
31777 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31778     bool operator!=( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31779     {
31780       return !operator==( rhs );
31781     }
31782 #endif
31783 
31784 
31785 
31786   public:
31787     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo;
31788     const void* pNext = {};
31789     uint32_t deviceMask = {};
31790 
31791   };
31792   static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), "struct and wrapper have different size!" );
31793   static_assert( std::is_standard_layout<DeviceGroupCommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
31794 
31795   template <>
31796   struct CppType<StructureType, StructureType::eDeviceGroupCommandBufferBeginInfo>
31797   {
31798     using Type = DeviceGroupCommandBufferBeginInfo;
31799   };
31800   using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
31801 
31802   class DisplayKHR
31803   {
31804   public:
31805     using CType = VkDisplayKHR;
31806 
31807     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR;
31808     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR;
31809 
31810   public:
DisplayKHR()31811     VULKAN_HPP_CONSTEXPR DisplayKHR() VULKAN_HPP_NOEXCEPT
31812       : m_displayKHR(VK_NULL_HANDLE)
31813     {}
31814 
DisplayKHR(std::nullptr_t)31815     VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
31816       : m_displayKHR(VK_NULL_HANDLE)
31817     {}
31818 
DisplayKHR(VkDisplayKHR displayKHR)31819     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR ) VULKAN_HPP_NOEXCEPT
31820       : m_displayKHR( displayKHR )
31821     {}
31822 
31823 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayKHR displayKHR)31824     DisplayKHR & operator=(VkDisplayKHR displayKHR) VULKAN_HPP_NOEXCEPT
31825     {
31826       m_displayKHR = displayKHR;
31827       return *this;
31828     }
31829 #endif
31830 
operator =(std::nullptr_t)31831     DisplayKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
31832     {
31833       m_displayKHR = VK_NULL_HANDLE;
31834       return *this;
31835     }
31836 
31837 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31838     auto operator<=>( DisplayKHR const& ) const = default;
31839 #else
operator ==(DisplayKHR const & rhs) const31840     bool operator==( DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31841     {
31842       return m_displayKHR == rhs.m_displayKHR;
31843     }
31844 
operator !=(DisplayKHR const & rhs) const31845     bool operator!=(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31846     {
31847       return m_displayKHR != rhs.m_displayKHR;
31848     }
31849 
operator <(DisplayKHR const & rhs) const31850     bool operator<(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31851     {
31852       return m_displayKHR < rhs.m_displayKHR;
31853     }
31854 #endif
31855 
operator VkDisplayKHR() const31856     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayKHR() const VULKAN_HPP_NOEXCEPT
31857     {
31858       return m_displayKHR;
31859     }
31860 
operator bool() const31861     explicit operator bool() const VULKAN_HPP_NOEXCEPT
31862     {
31863       return m_displayKHR != VK_NULL_HANDLE;
31864     }
31865 
operator !() const31866     bool operator!() const VULKAN_HPP_NOEXCEPT
31867     {
31868       return m_displayKHR == VK_NULL_HANDLE;
31869     }
31870 
31871   private:
31872     VkDisplayKHR m_displayKHR;
31873   };
31874   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayKHR ) == sizeof( VkDisplayKHR ), "handle and wrapper have different size!" );
31875 
31876   template <>
31877   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDisplayKHR>
31878   {
31879     using type = VULKAN_HPP_NAMESPACE::DisplayKHR;
31880   };
31881 
31882   template <>
31883   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR>
31884   {
31885     using Type = VULKAN_HPP_NAMESPACE::DisplayKHR;
31886   };
31887 
31888 
31889   template <>
31890   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR>
31891   {
31892     using Type = VULKAN_HPP_NAMESPACE::DisplayKHR;
31893   };
31894 
31895 
31896   template <>
31897   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DisplayKHR>
31898   {
31899     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
31900   };
31901 
31902   struct PerformanceConfigurationAcquireInfoINTEL
31903   {
31904     static const bool allowDuplicate = false;
31905     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
31906 
31907 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31908     VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated) VULKAN_HPP_NOEXCEPT
31909     : type( type_ )
31910     {}
31911 
31912     VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31913 
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31914     PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
31915     {
31916       *this = rhs;
31917     }
31918 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31919 
operator =VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31920     PerformanceConfigurationAcquireInfoINTEL & operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
31921     {
31922       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const *>( &rhs );
31923       return *this;
31924     }
31925 
operator =VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31926     PerformanceConfigurationAcquireInfoINTEL & operator=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
31927     {
31928       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceConfigurationAcquireInfoINTEL ) );
31929       return *this;
31930     }
31931 
setPNextVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31932     PerformanceConfigurationAcquireInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31933     {
31934       pNext = pNext_;
31935       return *this;
31936     }
31937 
setTypeVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31938     PerformanceConfigurationAcquireInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
31939     {
31940       type = type_;
31941       return *this;
31942     }
31943 
31944 
operator VkPerformanceConfigurationAcquireInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31945     operator VkPerformanceConfigurationAcquireInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
31946     {
31947       return *reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( this );
31948     }
31949 
operator VkPerformanceConfigurationAcquireInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31950     operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT
31951     {
31952       return *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>( this );
31953     }
31954 
31955 
31956 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31957     auto operator<=>( PerformanceConfigurationAcquireInfoINTEL const& ) const = default;
31958 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31959     bool operator==( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
31960     {
31961       return ( sType == rhs.sType )
31962           && ( pNext == rhs.pNext )
31963           && ( type == rhs.type );
31964     }
31965 
operator !=VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31966     bool operator!=( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
31967     {
31968       return !operator==( rhs );
31969     }
31970 #endif
31971 
31972 
31973 
31974   public:
31975     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
31976     const void* pNext = {};
31977     VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated;
31978 
31979   };
31980   static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), "struct and wrapper have different size!" );
31981   static_assert( std::is_standard_layout<PerformanceConfigurationAcquireInfoINTEL>::value, "struct wrapper is not a standard layout!" );
31982 
31983   template <>
31984   struct CppType<StructureType, StructureType::ePerformanceConfigurationAcquireInfoINTEL>
31985   {
31986     using Type = PerformanceConfigurationAcquireInfoINTEL;
31987   };
31988 
31989   class PerformanceConfigurationINTEL
31990   {
31991   public:
31992     using CType = VkPerformanceConfigurationINTEL;
31993 
31994     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL;
31995     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
31996 
31997   public:
PerformanceConfigurationINTEL()31998     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL() VULKAN_HPP_NOEXCEPT
31999       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
32000     {}
32001 
PerformanceConfigurationINTEL(std::nullptr_t)32002     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32003       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
32004     {}
32005 
PerformanceConfigurationINTEL(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)32006     VULKAN_HPP_TYPESAFE_EXPLICIT PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) VULKAN_HPP_NOEXCEPT
32007       : m_performanceConfigurationINTEL( performanceConfigurationINTEL )
32008     {}
32009 
32010 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)32011     PerformanceConfigurationINTEL & operator=(VkPerformanceConfigurationINTEL performanceConfigurationINTEL) VULKAN_HPP_NOEXCEPT
32012     {
32013       m_performanceConfigurationINTEL = performanceConfigurationINTEL;
32014       return *this;
32015     }
32016 #endif
32017 
operator =(std::nullptr_t)32018     PerformanceConfigurationINTEL & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32019     {
32020       m_performanceConfigurationINTEL = VK_NULL_HANDLE;
32021       return *this;
32022     }
32023 
32024 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32025     auto operator<=>( PerformanceConfigurationINTEL const& ) const = default;
32026 #else
operator ==(PerformanceConfigurationINTEL const & rhs) const32027     bool operator==( PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
32028     {
32029       return m_performanceConfigurationINTEL == rhs.m_performanceConfigurationINTEL;
32030     }
32031 
operator !=(PerformanceConfigurationINTEL const & rhs) const32032     bool operator!=(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
32033     {
32034       return m_performanceConfigurationINTEL != rhs.m_performanceConfigurationINTEL;
32035     }
32036 
operator <(PerformanceConfigurationINTEL const & rhs) const32037     bool operator<(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
32038     {
32039       return m_performanceConfigurationINTEL < rhs.m_performanceConfigurationINTEL;
32040     }
32041 #endif
32042 
operator VkPerformanceConfigurationINTEL() const32043     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPerformanceConfigurationINTEL() const VULKAN_HPP_NOEXCEPT
32044     {
32045       return m_performanceConfigurationINTEL;
32046     }
32047 
operator bool() const32048     explicit operator bool() const VULKAN_HPP_NOEXCEPT
32049     {
32050       return m_performanceConfigurationINTEL != VK_NULL_HANDLE;
32051     }
32052 
operator !() const32053     bool operator!() const VULKAN_HPP_NOEXCEPT
32054     {
32055       return m_performanceConfigurationINTEL == VK_NULL_HANDLE;
32056     }
32057 
32058   private:
32059     VkPerformanceConfigurationINTEL m_performanceConfigurationINTEL;
32060   };
32061   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL ) == sizeof( VkPerformanceConfigurationINTEL ), "handle and wrapper have different size!" );
32062 
32063   template <>
32064   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePerformanceConfigurationINTEL>
32065   {
32066     using type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL;
32067   };
32068 
32069   template <>
32070   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL>
32071   {
32072     using Type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL;
32073   };
32074 
32075 
32076 
32077   template <>
32078   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
32079   {
32080     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
32081   };
32082 
32083   class QueryPool
32084   {
32085   public:
32086     using CType = VkQueryPool;
32087 
32088     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool;
32089     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool;
32090 
32091   public:
QueryPool()32092     VULKAN_HPP_CONSTEXPR QueryPool() VULKAN_HPP_NOEXCEPT
32093       : m_queryPool(VK_NULL_HANDLE)
32094     {}
32095 
QueryPool(std::nullptr_t)32096     VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32097       : m_queryPool(VK_NULL_HANDLE)
32098     {}
32099 
QueryPool(VkQueryPool queryPool)32100     VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool ) VULKAN_HPP_NOEXCEPT
32101       : m_queryPool( queryPool )
32102     {}
32103 
32104 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueryPool queryPool)32105     QueryPool & operator=(VkQueryPool queryPool) VULKAN_HPP_NOEXCEPT
32106     {
32107       m_queryPool = queryPool;
32108       return *this;
32109     }
32110 #endif
32111 
operator =(std::nullptr_t)32112     QueryPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32113     {
32114       m_queryPool = VK_NULL_HANDLE;
32115       return *this;
32116     }
32117 
32118 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32119     auto operator<=>( QueryPool const& ) const = default;
32120 #else
operator ==(QueryPool const & rhs) const32121     bool operator==( QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
32122     {
32123       return m_queryPool == rhs.m_queryPool;
32124     }
32125 
operator !=(QueryPool const & rhs) const32126     bool operator!=(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
32127     {
32128       return m_queryPool != rhs.m_queryPool;
32129     }
32130 
operator <(QueryPool const & rhs) const32131     bool operator<(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
32132     {
32133       return m_queryPool < rhs.m_queryPool;
32134     }
32135 #endif
32136 
operator VkQueryPool() const32137     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueryPool() const VULKAN_HPP_NOEXCEPT
32138     {
32139       return m_queryPool;
32140     }
32141 
operator bool() const32142     explicit operator bool() const VULKAN_HPP_NOEXCEPT
32143     {
32144       return m_queryPool != VK_NULL_HANDLE;
32145     }
32146 
operator !() const32147     bool operator!() const VULKAN_HPP_NOEXCEPT
32148     {
32149       return m_queryPool == VK_NULL_HANDLE;
32150     }
32151 
32152   private:
32153     VkQueryPool m_queryPool;
32154   };
32155   static_assert( sizeof( VULKAN_HPP_NAMESPACE::QueryPool ) == sizeof( VkQueryPool ), "handle and wrapper have different size!" );
32156 
32157   template <>
32158   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eQueryPool>
32159   {
32160     using type = VULKAN_HPP_NAMESPACE::QueryPool;
32161   };
32162 
32163   template <>
32164   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool>
32165   {
32166     using Type = VULKAN_HPP_NAMESPACE::QueryPool;
32167   };
32168 
32169 
32170   template <>
32171   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool>
32172   {
32173     using Type = VULKAN_HPP_NAMESPACE::QueryPool;
32174   };
32175 
32176 
32177   template <>
32178   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::QueryPool>
32179   {
32180     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
32181   };
32182 
32183   struct RenderPassBeginInfo
32184   {
32185     static const bool allowDuplicate = false;
32186     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassBeginInfo;
32187 
32188 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32189     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
32190     : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( clearValueCount_ ), pClearValues( pClearValues_ )
32191     {}
32192 
32193     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32194 
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32195     RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32196     {
32197       *this = rhs;
32198     }
32199 
32200 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32201     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_ )
32202     : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( static_cast<uint32_t>( clearValues_.size() ) ), pClearValues( clearValues_.data() )
32203     {}
32204 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32205 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32206 
operator =VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32207     RenderPassBeginInfo & operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32208     {
32209       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassBeginInfo const *>( &rhs );
32210       return *this;
32211     }
32212 
operator =VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32213     RenderPassBeginInfo & operator=( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32214     {
32215       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassBeginInfo ) );
32216       return *this;
32217     }
32218 
setPNextVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32219     RenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32220     {
32221       pNext = pNext_;
32222       return *this;
32223     }
32224 
setRenderPassVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32225     RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
32226     {
32227       renderPass = renderPass_;
32228       return *this;
32229     }
32230 
setFramebufferVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32231     RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
32232     {
32233       framebuffer = framebuffer_;
32234       return *this;
32235     }
32236 
setRenderAreaVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32237     RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
32238     {
32239       renderArea = renderArea_;
32240       return *this;
32241     }
32242 
setClearValueCountVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32243     RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT
32244     {
32245       clearValueCount = clearValueCount_;
32246       return *this;
32247     }
32248 
setPClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32249     RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ ) VULKAN_HPP_NOEXCEPT
32250     {
32251       pClearValues = pClearValues_;
32252       return *this;
32253     }
32254 
32255 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32256     RenderPassBeginInfo & setClearValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_ ) VULKAN_HPP_NOEXCEPT
32257     {
32258       clearValueCount = static_cast<uint32_t>( clearValues_.size() );
32259       pClearValues = clearValues_.data();
32260       return *this;
32261     }
32262 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32263 
32264 
operator VkRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32265     operator VkRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
32266     {
32267       return *reinterpret_cast<const VkRenderPassBeginInfo*>( this );
32268     }
32269 
operator VkRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32270     operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
32271     {
32272       return *reinterpret_cast<VkRenderPassBeginInfo*>( this );
32273     }
32274 
32275 
32276 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32277     auto operator<=>( RenderPassBeginInfo const& ) const = default;
32278 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32279     bool operator==( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32280     {
32281       return ( sType == rhs.sType )
32282           && ( pNext == rhs.pNext )
32283           && ( renderPass == rhs.renderPass )
32284           && ( framebuffer == rhs.framebuffer )
32285           && ( renderArea == rhs.renderArea )
32286           && ( clearValueCount == rhs.clearValueCount )
32287           && ( pClearValues == rhs.pClearValues );
32288     }
32289 
operator !=VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32290     bool operator!=( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32291     {
32292       return !operator==( rhs );
32293     }
32294 #endif
32295 
32296 
32297 
32298   public:
32299     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo;
32300     const void* pNext = {};
32301     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
32302     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
32303     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
32304     uint32_t clearValueCount = {};
32305     const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues = {};
32306 
32307   };
32308   static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), "struct and wrapper have different size!" );
32309   static_assert( std::is_standard_layout<RenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
32310 
32311   template <>
32312   struct CppType<StructureType, StructureType::eRenderPassBeginInfo>
32313   {
32314     using Type = RenderPassBeginInfo;
32315   };
32316 
32317   struct SubpassBeginInfo
32318   {
32319     static const bool allowDuplicate = false;
32320     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassBeginInfo;
32321 
32322 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo32323     VULKAN_HPP_CONSTEXPR SubpassBeginInfo(VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline) VULKAN_HPP_NOEXCEPT
32324     : contents( contents_ )
32325     {}
32326 
32327     VULKAN_HPP_CONSTEXPR SubpassBeginInfo( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32328 
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo32329     SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32330     {
32331       *this = rhs;
32332     }
32333 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32334 
operator =VULKAN_HPP_NAMESPACE::SubpassBeginInfo32335     SubpassBeginInfo & operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32336     {
32337       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassBeginInfo const *>( &rhs );
32338       return *this;
32339     }
32340 
operator =VULKAN_HPP_NAMESPACE::SubpassBeginInfo32341     SubpassBeginInfo & operator=( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32342     {
32343       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassBeginInfo ) );
32344       return *this;
32345     }
32346 
setPNextVULKAN_HPP_NAMESPACE::SubpassBeginInfo32347     SubpassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32348     {
32349       pNext = pNext_;
32350       return *this;
32351     }
32352 
setContentsVULKAN_HPP_NAMESPACE::SubpassBeginInfo32353     SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT
32354     {
32355       contents = contents_;
32356       return *this;
32357     }
32358 
32359 
operator VkSubpassBeginInfo const&VULKAN_HPP_NAMESPACE::SubpassBeginInfo32360     operator VkSubpassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
32361     {
32362       return *reinterpret_cast<const VkSubpassBeginInfo*>( this );
32363     }
32364 
operator VkSubpassBeginInfo&VULKAN_HPP_NAMESPACE::SubpassBeginInfo32365     operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT
32366     {
32367       return *reinterpret_cast<VkSubpassBeginInfo*>( this );
32368     }
32369 
32370 
32371 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32372     auto operator<=>( SubpassBeginInfo const& ) const = default;
32373 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassBeginInfo32374     bool operator==( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32375     {
32376       return ( sType == rhs.sType )
32377           && ( pNext == rhs.pNext )
32378           && ( contents == rhs.contents );
32379     }
32380 
operator !=VULKAN_HPP_NAMESPACE::SubpassBeginInfo32381     bool operator!=( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32382     {
32383       return !operator==( rhs );
32384     }
32385 #endif
32386 
32387 
32388 
32389   public:
32390     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo;
32391     const void* pNext = {};
32392     VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline;
32393 
32394   };
32395   static_assert( sizeof( SubpassBeginInfo ) == sizeof( VkSubpassBeginInfo ), "struct and wrapper have different size!" );
32396   static_assert( std::is_standard_layout<SubpassBeginInfo>::value, "struct wrapper is not a standard layout!" );
32397 
32398   template <>
32399   struct CppType<StructureType, StructureType::eSubpassBeginInfo>
32400   {
32401     using Type = SubpassBeginInfo;
32402   };
32403   using SubpassBeginInfoKHR = SubpassBeginInfo;
32404 
32405   struct ImageBlit
32406   {
32407 
32408 
32409 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit32410     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
32411     : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ )
32412     {}
32413 
32414     VULKAN_HPP_CONSTEXPR_14 ImageBlit( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32415 
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit32416     ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
32417     {
32418       *this = rhs;
32419     }
32420 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32421 
operator =VULKAN_HPP_NAMESPACE::ImageBlit32422     ImageBlit & operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
32423     {
32424       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit const *>( &rhs );
32425       return *this;
32426     }
32427 
operator =VULKAN_HPP_NAMESPACE::ImageBlit32428     ImageBlit & operator=( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
32429     {
32430       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageBlit ) );
32431       return *this;
32432     }
32433 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit32434     ImageBlit & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
32435     {
32436       srcSubresource = srcSubresource_;
32437       return *this;
32438     }
32439 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit32440     ImageBlit & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
32441     {
32442       srcOffsets = srcOffsets_;
32443       return *this;
32444     }
32445 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit32446     ImageBlit & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
32447     {
32448       dstSubresource = dstSubresource_;
32449       return *this;
32450     }
32451 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit32452     ImageBlit & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
32453     {
32454       dstOffsets = dstOffsets_;
32455       return *this;
32456     }
32457 
32458 
operator VkImageBlit const&VULKAN_HPP_NAMESPACE::ImageBlit32459     operator VkImageBlit const&() const VULKAN_HPP_NOEXCEPT
32460     {
32461       return *reinterpret_cast<const VkImageBlit*>( this );
32462     }
32463 
operator VkImageBlit&VULKAN_HPP_NAMESPACE::ImageBlit32464     operator VkImageBlit &() VULKAN_HPP_NOEXCEPT
32465     {
32466       return *reinterpret_cast<VkImageBlit*>( this );
32467     }
32468 
32469 
32470 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32471     auto operator<=>( ImageBlit const& ) const = default;
32472 #else
operator ==VULKAN_HPP_NAMESPACE::ImageBlit32473     bool operator==( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT
32474     {
32475       return ( srcSubresource == rhs.srcSubresource )
32476           && ( srcOffsets == rhs.srcOffsets )
32477           && ( dstSubresource == rhs.dstSubresource )
32478           && ( dstOffsets == rhs.dstOffsets );
32479     }
32480 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit32481     bool operator!=( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT
32482     {
32483       return !operator==( rhs );
32484     }
32485 #endif
32486 
32487 
32488 
32489   public:
32490     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
32491     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
32492     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
32493     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
32494 
32495   };
32496   static_assert( sizeof( ImageBlit ) == sizeof( VkImageBlit ), "struct and wrapper have different size!" );
32497   static_assert( std::is_standard_layout<ImageBlit>::value, "struct wrapper is not a standard layout!" );
32498 
32499   struct ImageSubresourceRange
32500   {
32501 
32502 
32503 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange32504     VULKAN_HPP_CONSTEXPR ImageSubresourceRange(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t baseMipLevel_ = {}, uint32_t levelCount_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
32505     : aspectMask( aspectMask_ ), baseMipLevel( baseMipLevel_ ), levelCount( levelCount_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
32506     {}
32507 
32508     VULKAN_HPP_CONSTEXPR ImageSubresourceRange( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32509 
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange32510     ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
32511     {
32512       *this = rhs;
32513     }
32514 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32515 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceRange32516     ImageSubresourceRange & operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
32517     {
32518       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceRange const *>( &rhs );
32519       return *this;
32520     }
32521 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceRange32522     ImageSubresourceRange & operator=( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
32523     {
32524       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSubresourceRange ) );
32525       return *this;
32526     }
32527 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceRange32528     ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
32529     {
32530       aspectMask = aspectMask_;
32531       return *this;
32532     }
32533 
setBaseMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceRange32534     ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT
32535     {
32536       baseMipLevel = baseMipLevel_;
32537       return *this;
32538     }
32539 
setLevelCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange32540     ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT
32541     {
32542       levelCount = levelCount_;
32543       return *this;
32544     }
32545 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceRange32546     ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
32547     {
32548       baseArrayLayer = baseArrayLayer_;
32549       return *this;
32550     }
32551 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange32552     ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
32553     {
32554       layerCount = layerCount_;
32555       return *this;
32556     }
32557 
32558 
operator VkImageSubresourceRange const&VULKAN_HPP_NAMESPACE::ImageSubresourceRange32559     operator VkImageSubresourceRange const&() const VULKAN_HPP_NOEXCEPT
32560     {
32561       return *reinterpret_cast<const VkImageSubresourceRange*>( this );
32562     }
32563 
operator VkImageSubresourceRange&VULKAN_HPP_NAMESPACE::ImageSubresourceRange32564     operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT
32565     {
32566       return *reinterpret_cast<VkImageSubresourceRange*>( this );
32567     }
32568 
32569 
32570 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32571     auto operator<=>( ImageSubresourceRange const& ) const = default;
32572 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceRange32573     bool operator==( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT
32574     {
32575       return ( aspectMask == rhs.aspectMask )
32576           && ( baseMipLevel == rhs.baseMipLevel )
32577           && ( levelCount == rhs.levelCount )
32578           && ( baseArrayLayer == rhs.baseArrayLayer )
32579           && ( layerCount == rhs.layerCount );
32580     }
32581 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceRange32582     bool operator!=( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT
32583     {
32584       return !operator==( rhs );
32585     }
32586 #endif
32587 
32588 
32589 
32590   public:
32591     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
32592     uint32_t baseMipLevel = {};
32593     uint32_t levelCount = {};
32594     uint32_t baseArrayLayer = {};
32595     uint32_t layerCount = {};
32596 
32597   };
32598   static_assert( sizeof( ImageSubresourceRange ) == sizeof( VkImageSubresourceRange ), "struct and wrapper have different size!" );
32599   static_assert( std::is_standard_layout<ImageSubresourceRange>::value, "struct wrapper is not a standard layout!" );
32600 
32601   struct ImageCopy
32602   {
32603 
32604 
32605 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy32606     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
32607     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
32608     {}
32609 
32610     VULKAN_HPP_CONSTEXPR ImageCopy( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32611 
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy32612     ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
32613     {
32614       *this = rhs;
32615     }
32616 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32617 
operator =VULKAN_HPP_NAMESPACE::ImageCopy32618     ImageCopy & operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
32619     {
32620       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy const *>( &rhs );
32621       return *this;
32622     }
32623 
operator =VULKAN_HPP_NAMESPACE::ImageCopy32624     ImageCopy & operator=( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
32625     {
32626       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageCopy ) );
32627       return *this;
32628     }
32629 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy32630     ImageCopy & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
32631     {
32632       srcSubresource = srcSubresource_;
32633       return *this;
32634     }
32635 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy32636     ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
32637     {
32638       srcOffset = srcOffset_;
32639       return *this;
32640     }
32641 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy32642     ImageCopy & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
32643     {
32644       dstSubresource = dstSubresource_;
32645       return *this;
32646     }
32647 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy32648     ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
32649     {
32650       dstOffset = dstOffset_;
32651       return *this;
32652     }
32653 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy32654     ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
32655     {
32656       extent = extent_;
32657       return *this;
32658     }
32659 
32660 
operator VkImageCopy const&VULKAN_HPP_NAMESPACE::ImageCopy32661     operator VkImageCopy const&() const VULKAN_HPP_NOEXCEPT
32662     {
32663       return *reinterpret_cast<const VkImageCopy*>( this );
32664     }
32665 
operator VkImageCopy&VULKAN_HPP_NAMESPACE::ImageCopy32666     operator VkImageCopy &() VULKAN_HPP_NOEXCEPT
32667     {
32668       return *reinterpret_cast<VkImageCopy*>( this );
32669     }
32670 
32671 
32672 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32673     auto operator<=>( ImageCopy const& ) const = default;
32674 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCopy32675     bool operator==( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
32676     {
32677       return ( srcSubresource == rhs.srcSubresource )
32678           && ( srcOffset == rhs.srcOffset )
32679           && ( dstSubresource == rhs.dstSubresource )
32680           && ( dstOffset == rhs.dstOffset )
32681           && ( extent == rhs.extent );
32682     }
32683 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy32684     bool operator!=( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
32685     {
32686       return !operator==( rhs );
32687     }
32688 #endif
32689 
32690 
32691 
32692   public:
32693     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
32694     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
32695     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
32696     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
32697     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
32698 
32699   };
32700   static_assert( sizeof( ImageCopy ) == sizeof( VkImageCopy ), "struct and wrapper have different size!" );
32701   static_assert( std::is_standard_layout<ImageCopy>::value, "struct wrapper is not a standard layout!" );
32702 
32703   struct SubpassEndInfo
32704   {
32705     static const bool allowDuplicate = false;
32706     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo;
32707 
32708 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo32709     VULKAN_HPP_CONSTEXPR SubpassEndInfo() VULKAN_HPP_NOEXCEPT
32710 
32711     {}
32712 
32713     VULKAN_HPP_CONSTEXPR SubpassEndInfo( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32714 
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo32715     SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32716     {
32717       *this = rhs;
32718     }
32719 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32720 
operator =VULKAN_HPP_NAMESPACE::SubpassEndInfo32721     SubpassEndInfo & operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32722     {
32723       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassEndInfo const *>( &rhs );
32724       return *this;
32725     }
32726 
operator =VULKAN_HPP_NAMESPACE::SubpassEndInfo32727     SubpassEndInfo & operator=( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32728     {
32729       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassEndInfo ) );
32730       return *this;
32731     }
32732 
setPNextVULKAN_HPP_NAMESPACE::SubpassEndInfo32733     SubpassEndInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32734     {
32735       pNext = pNext_;
32736       return *this;
32737     }
32738 
32739 
operator VkSubpassEndInfo const&VULKAN_HPP_NAMESPACE::SubpassEndInfo32740     operator VkSubpassEndInfo const&() const VULKAN_HPP_NOEXCEPT
32741     {
32742       return *reinterpret_cast<const VkSubpassEndInfo*>( this );
32743     }
32744 
operator VkSubpassEndInfo&VULKAN_HPP_NAMESPACE::SubpassEndInfo32745     operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT
32746     {
32747       return *reinterpret_cast<VkSubpassEndInfo*>( this );
32748     }
32749 
32750 
32751 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32752     auto operator<=>( SubpassEndInfo const& ) const = default;
32753 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassEndInfo32754     bool operator==( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32755     {
32756       return ( sType == rhs.sType )
32757           && ( pNext == rhs.pNext );
32758     }
32759 
operator !=VULKAN_HPP_NAMESPACE::SubpassEndInfo32760     bool operator!=( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32761     {
32762       return !operator==( rhs );
32763     }
32764 #endif
32765 
32766 
32767 
32768   public:
32769     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo;
32770     const void* pNext = {};
32771 
32772   };
32773   static_assert( sizeof( SubpassEndInfo ) == sizeof( VkSubpassEndInfo ), "struct and wrapper have different size!" );
32774   static_assert( std::is_standard_layout<SubpassEndInfo>::value, "struct wrapper is not a standard layout!" );
32775 
32776   template <>
32777   struct CppType<StructureType, StructureType::eSubpassEndInfo>
32778   {
32779     using Type = SubpassEndInfo;
32780   };
32781   using SubpassEndInfoKHR = SubpassEndInfo;
32782 
32783   class IndirectCommandsLayoutNV
32784   {
32785   public:
32786     using CType = VkIndirectCommandsLayoutNV;
32787 
32788     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV;
32789     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
32790 
32791   public:
IndirectCommandsLayoutNV()32792     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV() VULKAN_HPP_NOEXCEPT
32793       : m_indirectCommandsLayoutNV(VK_NULL_HANDLE)
32794     {}
32795 
IndirectCommandsLayoutNV(std::nullptr_t)32796     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32797       : m_indirectCommandsLayoutNV(VK_NULL_HANDLE)
32798     {}
32799 
IndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV)32800     VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutNV( VkIndirectCommandsLayoutNV indirectCommandsLayoutNV ) VULKAN_HPP_NOEXCEPT
32801       : m_indirectCommandsLayoutNV( indirectCommandsLayoutNV )
32802     {}
32803 
32804 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV)32805     IndirectCommandsLayoutNV & operator=(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV) VULKAN_HPP_NOEXCEPT
32806     {
32807       m_indirectCommandsLayoutNV = indirectCommandsLayoutNV;
32808       return *this;
32809     }
32810 #endif
32811 
operator =(std::nullptr_t)32812     IndirectCommandsLayoutNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32813     {
32814       m_indirectCommandsLayoutNV = VK_NULL_HANDLE;
32815       return *this;
32816     }
32817 
32818 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32819     auto operator<=>( IndirectCommandsLayoutNV const& ) const = default;
32820 #else
operator ==(IndirectCommandsLayoutNV const & rhs) const32821     bool operator==( IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
32822     {
32823       return m_indirectCommandsLayoutNV == rhs.m_indirectCommandsLayoutNV;
32824     }
32825 
operator !=(IndirectCommandsLayoutNV const & rhs) const32826     bool operator!=(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
32827     {
32828       return m_indirectCommandsLayoutNV != rhs.m_indirectCommandsLayoutNV;
32829     }
32830 
operator <(IndirectCommandsLayoutNV const & rhs) const32831     bool operator<(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
32832     {
32833       return m_indirectCommandsLayoutNV < rhs.m_indirectCommandsLayoutNV;
32834     }
32835 #endif
32836 
operator VkIndirectCommandsLayoutNV() const32837     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutNV() const VULKAN_HPP_NOEXCEPT
32838     {
32839       return m_indirectCommandsLayoutNV;
32840     }
32841 
operator bool() const32842     explicit operator bool() const VULKAN_HPP_NOEXCEPT
32843     {
32844       return m_indirectCommandsLayoutNV != VK_NULL_HANDLE;
32845     }
32846 
operator !() const32847     bool operator!() const VULKAN_HPP_NOEXCEPT
32848     {
32849       return m_indirectCommandsLayoutNV == VK_NULL_HANDLE;
32850     }
32851 
32852   private:
32853     VkIndirectCommandsLayoutNV m_indirectCommandsLayoutNV;
32854   };
32855   static_assert( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV ) == sizeof( VkIndirectCommandsLayoutNV ), "handle and wrapper have different size!" );
32856 
32857   template <>
32858   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eIndirectCommandsLayoutNV>
32859   {
32860     using type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV;
32861   };
32862 
32863   template <>
32864   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV>
32865   {
32866     using Type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV;
32867   };
32868 
32869 
32870 
32871   template <>
32872   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
32873   {
32874     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
32875   };
32876 
32877   struct IndirectCommandsStreamNV
32878   {
32879 
32880 
32881 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32882     VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT
32883     : buffer( buffer_ ), offset( offset_ )
32884     {}
32885 
32886     VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32887 
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32888     IndirectCommandsStreamNV( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
32889     {
32890       *this = rhs;
32891     }
32892 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32893 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32894     IndirectCommandsStreamNV & operator=( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
32895     {
32896       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV const *>( &rhs );
32897       return *this;
32898     }
32899 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32900     IndirectCommandsStreamNV & operator=( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
32901     {
32902       memcpy( static_cast<void *>( this ), &rhs, sizeof( IndirectCommandsStreamNV ) );
32903       return *this;
32904     }
32905 
setBufferVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32906     IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
32907     {
32908       buffer = buffer_;
32909       return *this;
32910     }
32911 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32912     IndirectCommandsStreamNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
32913     {
32914       offset = offset_;
32915       return *this;
32916     }
32917 
32918 
operator VkIndirectCommandsStreamNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32919     operator VkIndirectCommandsStreamNV const&() const VULKAN_HPP_NOEXCEPT
32920     {
32921       return *reinterpret_cast<const VkIndirectCommandsStreamNV*>( this );
32922     }
32923 
operator VkIndirectCommandsStreamNV&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32924     operator VkIndirectCommandsStreamNV &() VULKAN_HPP_NOEXCEPT
32925     {
32926       return *reinterpret_cast<VkIndirectCommandsStreamNV*>( this );
32927     }
32928 
32929 
32930 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32931     auto operator<=>( IndirectCommandsStreamNV const& ) const = default;
32932 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32933     bool operator==( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32934     {
32935       return ( buffer == rhs.buffer )
32936           && ( offset == rhs.offset );
32937     }
32938 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32939     bool operator!=( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32940     {
32941       return !operator==( rhs );
32942     }
32943 #endif
32944 
32945 
32946 
32947   public:
32948     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
32949     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
32950 
32951   };
32952   static_assert( sizeof( IndirectCommandsStreamNV ) == sizeof( VkIndirectCommandsStreamNV ), "struct and wrapper have different size!" );
32953   static_assert( std::is_standard_layout<IndirectCommandsStreamNV>::value, "struct wrapper is not a standard layout!" );
32954 
32955   struct GeneratedCommandsInfoNV
32956   {
32957     static const bool allowDuplicate = false;
32958     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsInfoNV;
32959 
32960 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32961     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
32962     : 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_ )
32963     {}
32964 
32965     VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32966 
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32967     GeneratedCommandsInfoNV( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32968     {
32969       *this = rhs;
32970     }
32971 
32972 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32973     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_ = {} )
32974     : 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_ )
32975     {}
32976 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32977 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32978 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32979     GeneratedCommandsInfoNV & operator=( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32980     {
32981       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV const *>( &rhs );
32982       return *this;
32983     }
32984 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32985     GeneratedCommandsInfoNV & operator=( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32986     {
32987       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeneratedCommandsInfoNV ) );
32988       return *this;
32989     }
32990 
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32991     GeneratedCommandsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32992     {
32993       pNext = pNext_;
32994       return *this;
32995     }
32996 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32997     GeneratedCommandsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
32998     {
32999       pipelineBindPoint = pipelineBindPoint_;
33000       return *this;
33001     }
33002 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33003     GeneratedCommandsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
33004     {
33005       pipeline = pipeline_;
33006       return *this;
33007     }
33008 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33009     GeneratedCommandsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
33010     {
33011       indirectCommandsLayout = indirectCommandsLayout_;
33012       return *this;
33013     }
33014 
setStreamCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33015     GeneratedCommandsInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
33016     {
33017       streamCount = streamCount_;
33018       return *this;
33019     }
33020 
setPStreamsVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33021     GeneratedCommandsInfoNV & setPStreams( const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams_ ) VULKAN_HPP_NOEXCEPT
33022     {
33023       pStreams = pStreams_;
33024       return *this;
33025     }
33026 
33027 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStreamsVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33028     GeneratedCommandsInfoNV & setStreams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const & streams_ ) VULKAN_HPP_NOEXCEPT
33029     {
33030       streamCount = static_cast<uint32_t>( streams_.size() );
33031       pStreams = streams_.data();
33032       return *this;
33033     }
33034 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33035 
setSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33036     GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT
33037     {
33038       sequencesCount = sequencesCount_;
33039       return *this;
33040     }
33041 
setPreprocessBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33042     GeneratedCommandsInfoNV & setPreprocessBuffer( VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ ) VULKAN_HPP_NOEXCEPT
33043     {
33044       preprocessBuffer = preprocessBuffer_;
33045       return *this;
33046     }
33047 
setPreprocessOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33048     GeneratedCommandsInfoNV & setPreprocessOffset( VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ ) VULKAN_HPP_NOEXCEPT
33049     {
33050       preprocessOffset = preprocessOffset_;
33051       return *this;
33052     }
33053 
setPreprocessSizeVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33054     GeneratedCommandsInfoNV & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT
33055     {
33056       preprocessSize = preprocessSize_;
33057       return *this;
33058     }
33059 
setSequencesCountBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33060     GeneratedCommandsInfoNV & setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT
33061     {
33062       sequencesCountBuffer = sequencesCountBuffer_;
33063       return *this;
33064     }
33065 
setSequencesCountOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33066     GeneratedCommandsInfoNV & setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT
33067     {
33068       sequencesCountOffset = sequencesCountOffset_;
33069       return *this;
33070     }
33071 
setSequencesIndexBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33072     GeneratedCommandsInfoNV & setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT
33073     {
33074       sequencesIndexBuffer = sequencesIndexBuffer_;
33075       return *this;
33076     }
33077 
setSequencesIndexOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33078     GeneratedCommandsInfoNV & setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT
33079     {
33080       sequencesIndexOffset = sequencesIndexOffset_;
33081       return *this;
33082     }
33083 
33084 
operator VkGeneratedCommandsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33085     operator VkGeneratedCommandsInfoNV const&() const VULKAN_HPP_NOEXCEPT
33086     {
33087       return *reinterpret_cast<const VkGeneratedCommandsInfoNV*>( this );
33088     }
33089 
operator VkGeneratedCommandsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33090     operator VkGeneratedCommandsInfoNV &() VULKAN_HPP_NOEXCEPT
33091     {
33092       return *reinterpret_cast<VkGeneratedCommandsInfoNV*>( this );
33093     }
33094 
33095 
33096 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33097     auto operator<=>( GeneratedCommandsInfoNV const& ) const = default;
33098 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33099     bool operator==( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33100     {
33101       return ( sType == rhs.sType )
33102           && ( pNext == rhs.pNext )
33103           && ( pipelineBindPoint == rhs.pipelineBindPoint )
33104           && ( pipeline == rhs.pipeline )
33105           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
33106           && ( streamCount == rhs.streamCount )
33107           && ( pStreams == rhs.pStreams )
33108           && ( sequencesCount == rhs.sequencesCount )
33109           && ( preprocessBuffer == rhs.preprocessBuffer )
33110           && ( preprocessOffset == rhs.preprocessOffset )
33111           && ( preprocessSize == rhs.preprocessSize )
33112           && ( sequencesCountBuffer == rhs.sequencesCountBuffer )
33113           && ( sequencesCountOffset == rhs.sequencesCountOffset )
33114           && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer )
33115           && ( sequencesIndexOffset == rhs.sequencesIndexOffset );
33116     }
33117 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33118     bool operator!=( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33119     {
33120       return !operator==( rhs );
33121     }
33122 #endif
33123 
33124 
33125 
33126   public:
33127     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsInfoNV;
33128     const void* pNext = {};
33129     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
33130     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
33131     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
33132     uint32_t streamCount = {};
33133     const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams = {};
33134     uint32_t sequencesCount = {};
33135     VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer = {};
33136     VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset = {};
33137     VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize = {};
33138     VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {};
33139     VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {};
33140     VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {};
33141     VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {};
33142 
33143   };
33144   static_assert( sizeof( GeneratedCommandsInfoNV ) == sizeof( VkGeneratedCommandsInfoNV ), "struct and wrapper have different size!" );
33145   static_assert( std::is_standard_layout<GeneratedCommandsInfoNV>::value, "struct wrapper is not a standard layout!" );
33146 
33147   template <>
33148   struct CppType<StructureType, StructureType::eGeneratedCommandsInfoNV>
33149   {
33150     using Type = GeneratedCommandsInfoNV;
33151   };
33152 
33153   struct MemoryBarrier
33154   {
33155     static const bool allowDuplicate = false;
33156     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier;
33157 
33158 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier33159     VULKAN_HPP_CONSTEXPR MemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}) VULKAN_HPP_NOEXCEPT
33160     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ )
33161     {}
33162 
33163     VULKAN_HPP_CONSTEXPR MemoryBarrier( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33164 
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier33165     MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33166     {
33167       *this = rhs;
33168     }
33169 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33170 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier33171     MemoryBarrier & operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33172     {
33173       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier const *>( &rhs );
33174       return *this;
33175     }
33176 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier33177     MemoryBarrier & operator=( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33178     {
33179       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryBarrier ) );
33180       return *this;
33181     }
33182 
setPNextVULKAN_HPP_NAMESPACE::MemoryBarrier33183     MemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33184     {
33185       pNext = pNext_;
33186       return *this;
33187     }
33188 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier33189     MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
33190     {
33191       srcAccessMask = srcAccessMask_;
33192       return *this;
33193     }
33194 
setDstAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier33195     MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
33196     {
33197       dstAccessMask = dstAccessMask_;
33198       return *this;
33199     }
33200 
33201 
operator VkMemoryBarrier const&VULKAN_HPP_NAMESPACE::MemoryBarrier33202     operator VkMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
33203     {
33204       return *reinterpret_cast<const VkMemoryBarrier*>( this );
33205     }
33206 
operator VkMemoryBarrier&VULKAN_HPP_NAMESPACE::MemoryBarrier33207     operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT
33208     {
33209       return *reinterpret_cast<VkMemoryBarrier*>( this );
33210     }
33211 
33212 
33213 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33214     auto operator<=>( MemoryBarrier const& ) const = default;
33215 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryBarrier33216     bool operator==( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33217     {
33218       return ( sType == rhs.sType )
33219           && ( pNext == rhs.pNext )
33220           && ( srcAccessMask == rhs.srcAccessMask )
33221           && ( dstAccessMask == rhs.dstAccessMask );
33222     }
33223 
operator !=VULKAN_HPP_NAMESPACE::MemoryBarrier33224     bool operator!=( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33225     {
33226       return !operator==( rhs );
33227     }
33228 #endif
33229 
33230 
33231 
33232   public:
33233     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier;
33234     const void* pNext = {};
33235     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
33236     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
33237 
33238   };
33239   static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "struct and wrapper have different size!" );
33240   static_assert( std::is_standard_layout<MemoryBarrier>::value, "struct wrapper is not a standard layout!" );
33241 
33242   template <>
33243   struct CppType<StructureType, StructureType::eMemoryBarrier>
33244   {
33245     using Type = MemoryBarrier;
33246   };
33247 
33248   struct ImageMemoryBarrier
33249   {
33250     static const bool allowDuplicate = false;
33251     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier;
33252 
33253 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33254     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
33255     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), oldLayout( oldLayout_ ), newLayout( newLayout_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), image( image_ ), subresourceRange( subresourceRange_ )
33256     {}
33257 
33258     VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33259 
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33260     ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33261     {
33262       *this = rhs;
33263     }
33264 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33265 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33266     ImageMemoryBarrier & operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33267     {
33268       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier const *>( &rhs );
33269       return *this;
33270     }
33271 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33272     ImageMemoryBarrier & operator=( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33273     {
33274       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageMemoryBarrier ) );
33275       return *this;
33276     }
33277 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33278     ImageMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33279     {
33280       pNext = pNext_;
33281       return *this;
33282     }
33283 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33284     ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
33285     {
33286       srcAccessMask = srcAccessMask_;
33287       return *this;
33288     }
33289 
setDstAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33290     ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
33291     {
33292       dstAccessMask = dstAccessMask_;
33293       return *this;
33294     }
33295 
setOldLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33296     ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
33297     {
33298       oldLayout = oldLayout_;
33299       return *this;
33300     }
33301 
setNewLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33302     ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
33303     {
33304       newLayout = newLayout_;
33305       return *this;
33306     }
33307 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33308     ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
33309     {
33310       srcQueueFamilyIndex = srcQueueFamilyIndex_;
33311       return *this;
33312     }
33313 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33314     ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
33315     {
33316       dstQueueFamilyIndex = dstQueueFamilyIndex_;
33317       return *this;
33318     }
33319 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33320     ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
33321     {
33322       image = image_;
33323       return *this;
33324     }
33325 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33326     ImageMemoryBarrier & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
33327     {
33328       subresourceRange = subresourceRange_;
33329       return *this;
33330     }
33331 
33332 
operator VkImageMemoryBarrier const&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33333     operator VkImageMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
33334     {
33335       return *reinterpret_cast<const VkImageMemoryBarrier*>( this );
33336     }
33337 
operator VkImageMemoryBarrier&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33338     operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT
33339     {
33340       return *reinterpret_cast<VkImageMemoryBarrier*>( this );
33341     }
33342 
33343 
33344 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33345     auto operator<=>( ImageMemoryBarrier const& ) const = default;
33346 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33347     bool operator==( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33348     {
33349       return ( sType == rhs.sType )
33350           && ( pNext == rhs.pNext )
33351           && ( srcAccessMask == rhs.srcAccessMask )
33352           && ( dstAccessMask == rhs.dstAccessMask )
33353           && ( oldLayout == rhs.oldLayout )
33354           && ( newLayout == rhs.newLayout )
33355           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
33356           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
33357           && ( image == rhs.image )
33358           && ( subresourceRange == rhs.subresourceRange );
33359     }
33360 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33361     bool operator!=( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33362     {
33363       return !operator==( rhs );
33364     }
33365 #endif
33366 
33367 
33368 
33369   public:
33370     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier;
33371     const void* pNext = {};
33372     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
33373     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
33374     VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
33375     VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
33376     uint32_t srcQueueFamilyIndex = {};
33377     uint32_t dstQueueFamilyIndex = {};
33378     VULKAN_HPP_NAMESPACE::Image image = {};
33379     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
33380 
33381   };
33382   static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), "struct and wrapper have different size!" );
33383   static_assert( std::is_standard_layout<ImageMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
33384 
33385   template <>
33386   struct CppType<StructureType, StructureType::eImageMemoryBarrier>
33387   {
33388     using Type = ImageMemoryBarrier;
33389   };
33390 
33391   class BufferView
33392   {
33393   public:
33394     using CType = VkBufferView;
33395 
33396     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferView;
33397     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView;
33398 
33399   public:
BufferView()33400     VULKAN_HPP_CONSTEXPR BufferView() VULKAN_HPP_NOEXCEPT
33401       : m_bufferView(VK_NULL_HANDLE)
33402     {}
33403 
BufferView(std::nullptr_t)33404     VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33405       : m_bufferView(VK_NULL_HANDLE)
33406     {}
33407 
BufferView(VkBufferView bufferView)33408     VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView ) VULKAN_HPP_NOEXCEPT
33409       : m_bufferView( bufferView )
33410     {}
33411 
33412 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBufferView bufferView)33413     BufferView & operator=(VkBufferView bufferView) VULKAN_HPP_NOEXCEPT
33414     {
33415       m_bufferView = bufferView;
33416       return *this;
33417     }
33418 #endif
33419 
operator =(std::nullptr_t)33420     BufferView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33421     {
33422       m_bufferView = VK_NULL_HANDLE;
33423       return *this;
33424     }
33425 
33426 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33427     auto operator<=>( BufferView const& ) const = default;
33428 #else
operator ==(BufferView const & rhs) const33429     bool operator==( BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
33430     {
33431       return m_bufferView == rhs.m_bufferView;
33432     }
33433 
operator !=(BufferView const & rhs) const33434     bool operator!=(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
33435     {
33436       return m_bufferView != rhs.m_bufferView;
33437     }
33438 
operator <(BufferView const & rhs) const33439     bool operator<(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
33440     {
33441       return m_bufferView < rhs.m_bufferView;
33442     }
33443 #endif
33444 
operator VkBufferView() const33445     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBufferView() const VULKAN_HPP_NOEXCEPT
33446     {
33447       return m_bufferView;
33448     }
33449 
operator bool() const33450     explicit operator bool() const VULKAN_HPP_NOEXCEPT
33451     {
33452       return m_bufferView != VK_NULL_HANDLE;
33453     }
33454 
operator !() const33455     bool operator!() const VULKAN_HPP_NOEXCEPT
33456     {
33457       return m_bufferView == VK_NULL_HANDLE;
33458     }
33459 
33460   private:
33461     VkBufferView m_bufferView;
33462   };
33463   static_assert( sizeof( VULKAN_HPP_NAMESPACE::BufferView ) == sizeof( VkBufferView ), "handle and wrapper have different size!" );
33464 
33465   template <>
33466   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eBufferView>
33467   {
33468     using type = VULKAN_HPP_NAMESPACE::BufferView;
33469   };
33470 
33471   template <>
33472   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eBufferView>
33473   {
33474     using Type = VULKAN_HPP_NAMESPACE::BufferView;
33475   };
33476 
33477 
33478   template <>
33479   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView>
33480   {
33481     using Type = VULKAN_HPP_NAMESPACE::BufferView;
33482   };
33483 
33484 
33485   template <>
33486   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::BufferView>
33487   {
33488     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
33489   };
33490 
33491   struct WriteDescriptorSet
33492   {
33493     static const bool allowDuplicate = false;
33494     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSet;
33495 
33496 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33497     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
33498     : dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), pImageInfo( pImageInfo_ ), pBufferInfo( pBufferInfo_ ), pTexelBufferView( pTexelBufferView_ )
33499     {}
33500 
33501     VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33502 
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33503     WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
33504     {
33505       *this = rhs;
33506     }
33507 
33508 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33509     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_ = {} )
33510     : 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() )
33511     {
33512 #ifdef VULKAN_HPP_NO_EXCEPTIONS
33513       VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) == 1 );
33514 #else
33515       if ( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1 )
33516       {
33517         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::WriteDescriptorSet::WriteDescriptorSet: ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1" );
33518       }
33519 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
33520     }
33521 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33522 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33523 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSet33524     WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
33525     {
33526       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSet const *>( &rhs );
33527       return *this;
33528     }
33529 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSet33530     WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
33531     {
33532       memcpy( static_cast<void *>( this ), &rhs, sizeof( WriteDescriptorSet ) );
33533       return *this;
33534     }
33535 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSet33536     WriteDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33537     {
33538       pNext = pNext_;
33539       return *this;
33540     }
33541 
setDstSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33542     WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
33543     {
33544       dstSet = dstSet_;
33545       return *this;
33546     }
33547 
setDstBindingVULKAN_HPP_NAMESPACE::WriteDescriptorSet33548     WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
33549     {
33550       dstBinding = dstBinding_;
33551       return *this;
33552     }
33553 
setDstArrayElementVULKAN_HPP_NAMESPACE::WriteDescriptorSet33554     WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
33555     {
33556       dstArrayElement = dstArrayElement_;
33557       return *this;
33558     }
33559 
setDescriptorCountVULKAN_HPP_NAMESPACE::WriteDescriptorSet33560     WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
33561     {
33562       descriptorCount = descriptorCount_;
33563       return *this;
33564     }
33565 
setDescriptorTypeVULKAN_HPP_NAMESPACE::WriteDescriptorSet33566     WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
33567     {
33568       descriptorType = descriptorType_;
33569       return *this;
33570     }
33571 
setPImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33572     WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ ) VULKAN_HPP_NOEXCEPT
33573     {
33574       pImageInfo = pImageInfo_;
33575       return *this;
33576     }
33577 
33578 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33579     WriteDescriptorSet & setImageInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_ ) VULKAN_HPP_NOEXCEPT
33580     {
33581       descriptorCount = static_cast<uint32_t>( imageInfo_.size() );
33582       pImageInfo = imageInfo_.data();
33583       return *this;
33584     }
33585 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33586 
setPBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33587     WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ ) VULKAN_HPP_NOEXCEPT
33588     {
33589       pBufferInfo = pBufferInfo_;
33590       return *this;
33591     }
33592 
33593 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33594     WriteDescriptorSet & setBufferInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ ) VULKAN_HPP_NOEXCEPT
33595     {
33596       descriptorCount = static_cast<uint32_t>( bufferInfo_.size() );
33597       pBufferInfo = bufferInfo_.data();
33598       return *this;
33599     }
33600 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33601 
setPTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet33602     WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT
33603     {
33604       pTexelBufferView = pTexelBufferView_;
33605       return *this;
33606     }
33607 
33608 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet33609     WriteDescriptorSet & setTexelBufferView( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ ) VULKAN_HPP_NOEXCEPT
33610     {
33611       descriptorCount = static_cast<uint32_t>( texelBufferView_.size() );
33612       pTexelBufferView = texelBufferView_.data();
33613       return *this;
33614     }
33615 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33616 
33617 
operator VkWriteDescriptorSet const&VULKAN_HPP_NAMESPACE::WriteDescriptorSet33618     operator VkWriteDescriptorSet const&() const VULKAN_HPP_NOEXCEPT
33619     {
33620       return *reinterpret_cast<const VkWriteDescriptorSet*>( this );
33621     }
33622 
operator VkWriteDescriptorSet&VULKAN_HPP_NAMESPACE::WriteDescriptorSet33623     operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT
33624     {
33625       return *reinterpret_cast<VkWriteDescriptorSet*>( this );
33626     }
33627 
33628 
33629 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33630     auto operator<=>( WriteDescriptorSet const& ) const = default;
33631 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSet33632     bool operator==( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
33633     {
33634       return ( sType == rhs.sType )
33635           && ( pNext == rhs.pNext )
33636           && ( dstSet == rhs.dstSet )
33637           && ( dstBinding == rhs.dstBinding )
33638           && ( dstArrayElement == rhs.dstArrayElement )
33639           && ( descriptorCount == rhs.descriptorCount )
33640           && ( descriptorType == rhs.descriptorType )
33641           && ( pImageInfo == rhs.pImageInfo )
33642           && ( pBufferInfo == rhs.pBufferInfo )
33643           && ( pTexelBufferView == rhs.pTexelBufferView );
33644     }
33645 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSet33646     bool operator!=( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
33647     {
33648       return !operator==( rhs );
33649     }
33650 #endif
33651 
33652 
33653 
33654   public:
33655     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet;
33656     const void* pNext = {};
33657     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
33658     uint32_t dstBinding = {};
33659     uint32_t dstArrayElement = {};
33660     uint32_t descriptorCount = {};
33661     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
33662     const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo = {};
33663     const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo = {};
33664     const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView = {};
33665 
33666   };
33667   static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), "struct and wrapper have different size!" );
33668   static_assert( std::is_standard_layout<WriteDescriptorSet>::value, "struct wrapper is not a standard layout!" );
33669 
33670   template <>
33671   struct CppType<StructureType, StructureType::eWriteDescriptorSet>
33672   {
33673     using Type = WriteDescriptorSet;
33674   };
33675 
33676   class DescriptorUpdateTemplate
33677   {
33678   public:
33679     using CType = VkDescriptorUpdateTemplate;
33680 
33681     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate;
33682     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate;
33683 
33684   public:
DescriptorUpdateTemplate()33685     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate() VULKAN_HPP_NOEXCEPT
33686       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
33687     {}
33688 
DescriptorUpdateTemplate(std::nullptr_t)33689     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33690       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
33691     {}
33692 
DescriptorUpdateTemplate(VkDescriptorUpdateTemplate descriptorUpdateTemplate)33693     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) VULKAN_HPP_NOEXCEPT
33694       : m_descriptorUpdateTemplate( descriptorUpdateTemplate )
33695     {}
33696 
33697 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorUpdateTemplate descriptorUpdateTemplate)33698     DescriptorUpdateTemplate & operator=(VkDescriptorUpdateTemplate descriptorUpdateTemplate) VULKAN_HPP_NOEXCEPT
33699     {
33700       m_descriptorUpdateTemplate = descriptorUpdateTemplate;
33701       return *this;
33702     }
33703 #endif
33704 
operator =(std::nullptr_t)33705     DescriptorUpdateTemplate & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33706     {
33707       m_descriptorUpdateTemplate = VK_NULL_HANDLE;
33708       return *this;
33709     }
33710 
33711 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33712     auto operator<=>( DescriptorUpdateTemplate const& ) const = default;
33713 #else
operator ==(DescriptorUpdateTemplate const & rhs) const33714     bool operator==( DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
33715     {
33716       return m_descriptorUpdateTemplate == rhs.m_descriptorUpdateTemplate;
33717     }
33718 
operator !=(DescriptorUpdateTemplate const & rhs) const33719     bool operator!=(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
33720     {
33721       return m_descriptorUpdateTemplate != rhs.m_descriptorUpdateTemplate;
33722     }
33723 
operator <(DescriptorUpdateTemplate const & rhs) const33724     bool operator<(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
33725     {
33726       return m_descriptorUpdateTemplate < rhs.m_descriptorUpdateTemplate;
33727     }
33728 #endif
33729 
operator VkDescriptorUpdateTemplate() const33730     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorUpdateTemplate() const VULKAN_HPP_NOEXCEPT
33731     {
33732       return m_descriptorUpdateTemplate;
33733     }
33734 
operator bool() const33735     explicit operator bool() const VULKAN_HPP_NOEXCEPT
33736     {
33737       return m_descriptorUpdateTemplate != VK_NULL_HANDLE;
33738     }
33739 
operator !() const33740     bool operator!() const VULKAN_HPP_NOEXCEPT
33741     {
33742       return m_descriptorUpdateTemplate == VK_NULL_HANDLE;
33743     }
33744 
33745   private:
33746     VkDescriptorUpdateTemplate m_descriptorUpdateTemplate;
33747   };
33748   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ), "handle and wrapper have different size!" );
33749 
33750   template <>
33751   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorUpdateTemplate>
33752   {
33753     using type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
33754   };
33755 
33756   template <>
33757   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate>
33758   {
33759     using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
33760   };
33761 
33762 
33763   template <>
33764   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate>
33765   {
33766     using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
33767   };
33768 
33769 
33770   template <>
33771   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
33772   {
33773     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
33774   };
33775   using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
33776 
33777   class Event
33778   {
33779   public:
33780     using CType = VkEvent;
33781 
33782     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eEvent;
33783     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent;
33784 
33785   public:
Event()33786     VULKAN_HPP_CONSTEXPR Event() VULKAN_HPP_NOEXCEPT
33787       : m_event(VK_NULL_HANDLE)
33788     {}
33789 
Event(std::nullptr_t)33790     VULKAN_HPP_CONSTEXPR Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33791       : m_event(VK_NULL_HANDLE)
33792     {}
33793 
Event(VkEvent event)33794     VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event ) VULKAN_HPP_NOEXCEPT
33795       : m_event( event )
33796     {}
33797 
33798 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkEvent event)33799     Event & operator=(VkEvent event) VULKAN_HPP_NOEXCEPT
33800     {
33801       m_event = event;
33802       return *this;
33803     }
33804 #endif
33805 
operator =(std::nullptr_t)33806     Event & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33807     {
33808       m_event = VK_NULL_HANDLE;
33809       return *this;
33810     }
33811 
33812 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33813     auto operator<=>( Event const& ) const = default;
33814 #else
operator ==(Event const & rhs) const33815     bool operator==( Event const & rhs ) const VULKAN_HPP_NOEXCEPT
33816     {
33817       return m_event == rhs.m_event;
33818     }
33819 
operator !=(Event const & rhs) const33820     bool operator!=(Event const & rhs ) const VULKAN_HPP_NOEXCEPT
33821     {
33822       return m_event != rhs.m_event;
33823     }
33824 
operator <(Event const & rhs) const33825     bool operator<(Event const & rhs ) const VULKAN_HPP_NOEXCEPT
33826     {
33827       return m_event < rhs.m_event;
33828     }
33829 #endif
33830 
operator VkEvent() const33831     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkEvent() const VULKAN_HPP_NOEXCEPT
33832     {
33833       return m_event;
33834     }
33835 
operator bool() const33836     explicit operator bool() const VULKAN_HPP_NOEXCEPT
33837     {
33838       return m_event != VK_NULL_HANDLE;
33839     }
33840 
operator !() const33841     bool operator!() const VULKAN_HPP_NOEXCEPT
33842     {
33843       return m_event == VK_NULL_HANDLE;
33844     }
33845 
33846   private:
33847     VkEvent m_event;
33848   };
33849   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Event ) == sizeof( VkEvent ), "handle and wrapper have different size!" );
33850 
33851   template <>
33852   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eEvent>
33853   {
33854     using type = VULKAN_HPP_NAMESPACE::Event;
33855   };
33856 
33857   template <>
33858   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eEvent>
33859   {
33860     using Type = VULKAN_HPP_NAMESPACE::Event;
33861   };
33862 
33863 
33864   template <>
33865   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent>
33866   {
33867     using Type = VULKAN_HPP_NAMESPACE::Event;
33868   };
33869 
33870 
33871   template <>
33872   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Event>
33873   {
33874     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
33875   };
33876 
33877   struct ImageResolve
33878   {
33879 
33880 
33881 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve33882     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
33883     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
33884     {}
33885 
33886     VULKAN_HPP_CONSTEXPR ImageResolve( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33887 
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve33888     ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
33889     {
33890       *this = rhs;
33891     }
33892 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33893 
operator =VULKAN_HPP_NAMESPACE::ImageResolve33894     ImageResolve & operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
33895     {
33896       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve const *>( &rhs );
33897       return *this;
33898     }
33899 
operator =VULKAN_HPP_NAMESPACE::ImageResolve33900     ImageResolve & operator=( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
33901     {
33902       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageResolve ) );
33903       return *this;
33904     }
33905 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve33906     ImageResolve & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
33907     {
33908       srcSubresource = srcSubresource_;
33909       return *this;
33910     }
33911 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve33912     ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
33913     {
33914       srcOffset = srcOffset_;
33915       return *this;
33916     }
33917 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve33918     ImageResolve & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
33919     {
33920       dstSubresource = dstSubresource_;
33921       return *this;
33922     }
33923 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve33924     ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
33925     {
33926       dstOffset = dstOffset_;
33927       return *this;
33928     }
33929 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve33930     ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
33931     {
33932       extent = extent_;
33933       return *this;
33934     }
33935 
33936 
operator VkImageResolve const&VULKAN_HPP_NAMESPACE::ImageResolve33937     operator VkImageResolve const&() const VULKAN_HPP_NOEXCEPT
33938     {
33939       return *reinterpret_cast<const VkImageResolve*>( this );
33940     }
33941 
operator VkImageResolve&VULKAN_HPP_NAMESPACE::ImageResolve33942     operator VkImageResolve &() VULKAN_HPP_NOEXCEPT
33943     {
33944       return *reinterpret_cast<VkImageResolve*>( this );
33945     }
33946 
33947 
33948 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33949     auto operator<=>( ImageResolve const& ) const = default;
33950 #else
operator ==VULKAN_HPP_NAMESPACE::ImageResolve33951     bool operator==( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
33952     {
33953       return ( srcSubresource == rhs.srcSubresource )
33954           && ( srcOffset == rhs.srcOffset )
33955           && ( dstSubresource == rhs.dstSubresource )
33956           && ( dstOffset == rhs.dstOffset )
33957           && ( extent == rhs.extent );
33958     }
33959 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve33960     bool operator!=( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
33961     {
33962       return !operator==( rhs );
33963     }
33964 #endif
33965 
33966 
33967 
33968   public:
33969     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
33970     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
33971     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
33972     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
33973     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
33974 
33975   };
33976   static_assert( sizeof( ImageResolve ) == sizeof( VkImageResolve ), "struct and wrapper have different size!" );
33977   static_assert( std::is_standard_layout<ImageResolve>::value, "struct wrapper is not a standard layout!" );
33978 
33979   struct ImageResolve2KHR
33980   {
33981     static const bool allowDuplicate = false;
33982     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageResolve2KHR;
33983 
33984 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageResolve2KHRVULKAN_HPP_NAMESPACE::ImageResolve2KHR33985     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
33986     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
33987     {}
33988 
33989     VULKAN_HPP_CONSTEXPR ImageResolve2KHR( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33990 
ImageResolve2KHRVULKAN_HPP_NAMESPACE::ImageResolve2KHR33991     ImageResolve2KHR( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
33992     {
33993       *this = rhs;
33994     }
33995 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33996 
operator =VULKAN_HPP_NAMESPACE::ImageResolve2KHR33997     ImageResolve2KHR & operator=( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
33998     {
33999       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve2KHR const *>( &rhs );
34000       return *this;
34001     }
34002 
operator =VULKAN_HPP_NAMESPACE::ImageResolve2KHR34003     ImageResolve2KHR & operator=( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34004     {
34005       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageResolve2KHR ) );
34006       return *this;
34007     }
34008 
setPNextVULKAN_HPP_NAMESPACE::ImageResolve2KHR34009     ImageResolve2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34010     {
34011       pNext = pNext_;
34012       return *this;
34013     }
34014 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve2KHR34015     ImageResolve2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
34016     {
34017       srcSubresource = srcSubresource_;
34018       return *this;
34019     }
34020 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve2KHR34021     ImageResolve2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
34022     {
34023       srcOffset = srcOffset_;
34024       return *this;
34025     }
34026 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve2KHR34027     ImageResolve2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
34028     {
34029       dstSubresource = dstSubresource_;
34030       return *this;
34031     }
34032 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve2KHR34033     ImageResolve2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
34034     {
34035       dstOffset = dstOffset_;
34036       return *this;
34037     }
34038 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve2KHR34039     ImageResolve2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
34040     {
34041       extent = extent_;
34042       return *this;
34043     }
34044 
34045 
operator VkImageResolve2KHR const&VULKAN_HPP_NAMESPACE::ImageResolve2KHR34046     operator VkImageResolve2KHR const&() const VULKAN_HPP_NOEXCEPT
34047     {
34048       return *reinterpret_cast<const VkImageResolve2KHR*>( this );
34049     }
34050 
operator VkImageResolve2KHR&VULKAN_HPP_NAMESPACE::ImageResolve2KHR34051     operator VkImageResolve2KHR &() VULKAN_HPP_NOEXCEPT
34052     {
34053       return *reinterpret_cast<VkImageResolve2KHR*>( this );
34054     }
34055 
34056 
34057 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34058     auto operator<=>( ImageResolve2KHR const& ) const = default;
34059 #else
operator ==VULKAN_HPP_NAMESPACE::ImageResolve2KHR34060     bool operator==( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34061     {
34062       return ( sType == rhs.sType )
34063           && ( pNext == rhs.pNext )
34064           && ( srcSubresource == rhs.srcSubresource )
34065           && ( srcOffset == rhs.srcOffset )
34066           && ( dstSubresource == rhs.dstSubresource )
34067           && ( dstOffset == rhs.dstOffset )
34068           && ( extent == rhs.extent );
34069     }
34070 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve2KHR34071     bool operator!=( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34072     {
34073       return !operator==( rhs );
34074     }
34075 #endif
34076 
34077 
34078 
34079   public:
34080     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageResolve2KHR;
34081     const void* pNext = {};
34082     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
34083     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
34084     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
34085     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
34086     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
34087 
34088   };
34089   static_assert( sizeof( ImageResolve2KHR ) == sizeof( VkImageResolve2KHR ), "struct and wrapper have different size!" );
34090   static_assert( std::is_standard_layout<ImageResolve2KHR>::value, "struct wrapper is not a standard layout!" );
34091 
34092   template <>
34093   struct CppType<StructureType, StructureType::eImageResolve2KHR>
34094   {
34095     using Type = ImageResolve2KHR;
34096   };
34097 
34098   struct ResolveImageInfo2KHR
34099   {
34100     static const bool allowDuplicate = false;
34101     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eResolveImageInfo2KHR;
34102 
34103 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34104     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
34105     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
34106     {}
34107 
34108     VULKAN_HPP_CONSTEXPR ResolveImageInfo2KHR( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34109 
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34110     ResolveImageInfo2KHR( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34111     {
34112       *this = rhs;
34113     }
34114 
34115 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34116     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_ )
34117     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
34118     {}
34119 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34120 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34121 
operator =VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34122     ResolveImageInfo2KHR & operator=( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34123     {
34124       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR const *>( &rhs );
34125       return *this;
34126     }
34127 
operator =VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34128     ResolveImageInfo2KHR & operator=( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34129     {
34130       memcpy( static_cast<void *>( this ), &rhs, sizeof( ResolveImageInfo2KHR ) );
34131       return *this;
34132     }
34133 
setPNextVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34134     ResolveImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34135     {
34136       pNext = pNext_;
34137       return *this;
34138     }
34139 
setSrcImageVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34140     ResolveImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
34141     {
34142       srcImage = srcImage_;
34143       return *this;
34144     }
34145 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34146     ResolveImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
34147     {
34148       srcImageLayout = srcImageLayout_;
34149       return *this;
34150     }
34151 
setDstImageVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34152     ResolveImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
34153     {
34154       dstImage = dstImage_;
34155       return *this;
34156     }
34157 
setDstImageLayoutVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34158     ResolveImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
34159     {
34160       dstImageLayout = dstImageLayout_;
34161       return *this;
34162     }
34163 
setRegionCountVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34164     ResolveImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
34165     {
34166       regionCount = regionCount_;
34167       return *this;
34168     }
34169 
setPRegionsVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34170     ResolveImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
34171     {
34172       pRegions = pRegions_;
34173       return *this;
34174     }
34175 
34176 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34177     ResolveImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
34178     {
34179       regionCount = static_cast<uint32_t>( regions_.size() );
34180       pRegions = regions_.data();
34181       return *this;
34182     }
34183 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34184 
34185 
operator VkResolveImageInfo2KHR const&VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34186     operator VkResolveImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
34187     {
34188       return *reinterpret_cast<const VkResolveImageInfo2KHR*>( this );
34189     }
34190 
operator VkResolveImageInfo2KHR&VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34191     operator VkResolveImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
34192     {
34193       return *reinterpret_cast<VkResolveImageInfo2KHR*>( this );
34194     }
34195 
34196 
34197 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34198     auto operator<=>( ResolveImageInfo2KHR const& ) const = default;
34199 #else
operator ==VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34200     bool operator==( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34201     {
34202       return ( sType == rhs.sType )
34203           && ( pNext == rhs.pNext )
34204           && ( srcImage == rhs.srcImage )
34205           && ( srcImageLayout == rhs.srcImageLayout )
34206           && ( dstImage == rhs.dstImage )
34207           && ( dstImageLayout == rhs.dstImageLayout )
34208           && ( regionCount == rhs.regionCount )
34209           && ( pRegions == rhs.pRegions );
34210     }
34211 
operator !=VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34212     bool operator!=( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34213     {
34214       return !operator==( rhs );
34215     }
34216 #endif
34217 
34218 
34219 
34220   public:
34221     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eResolveImageInfo2KHR;
34222     const void* pNext = {};
34223     VULKAN_HPP_NAMESPACE::Image srcImage = {};
34224     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
34225     VULKAN_HPP_NAMESPACE::Image dstImage = {};
34226     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
34227     uint32_t regionCount = {};
34228     const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions = {};
34229 
34230   };
34231   static_assert( sizeof( ResolveImageInfo2KHR ) == sizeof( VkResolveImageInfo2KHR ), "struct and wrapper have different size!" );
34232   static_assert( std::is_standard_layout<ResolveImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
34233 
34234   template <>
34235   struct CppType<StructureType, StructureType::eResolveImageInfo2KHR>
34236   {
34237     using Type = ResolveImageInfo2KHR;
34238   };
34239 
34240   struct PerformanceMarkerInfoINTEL
34241   {
34242     static const bool allowDuplicate = false;
34243     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceMarkerInfoINTEL;
34244 
34245 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34246     VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL(uint64_t marker_ = {}) VULKAN_HPP_NOEXCEPT
34247     : marker( marker_ )
34248     {}
34249 
34250     VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34251 
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34252     PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34253     {
34254       *this = rhs;
34255     }
34256 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34257 
operator =VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34258     PerformanceMarkerInfoINTEL & operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34259     {
34260       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL const *>( &rhs );
34261       return *this;
34262     }
34263 
operator =VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34264     PerformanceMarkerInfoINTEL & operator=( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34265     {
34266       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceMarkerInfoINTEL ) );
34267       return *this;
34268     }
34269 
setPNextVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34270     PerformanceMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34271     {
34272       pNext = pNext_;
34273       return *this;
34274     }
34275 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34276     PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT
34277     {
34278       marker = marker_;
34279       return *this;
34280     }
34281 
34282 
operator VkPerformanceMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34283     operator VkPerformanceMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
34284     {
34285       return *reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( this );
34286     }
34287 
operator VkPerformanceMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34288     operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
34289     {
34290       return *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>( this );
34291     }
34292 
34293 
34294 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34295     auto operator<=>( PerformanceMarkerInfoINTEL const& ) const = default;
34296 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34297     bool operator==( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34298     {
34299       return ( sType == rhs.sType )
34300           && ( pNext == rhs.pNext )
34301           && ( marker == rhs.marker );
34302     }
34303 
operator !=VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34304     bool operator!=( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34305     {
34306       return !operator==( rhs );
34307     }
34308 #endif
34309 
34310 
34311 
34312   public:
34313     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL;
34314     const void* pNext = {};
34315     uint64_t marker = {};
34316 
34317   };
34318   static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), "struct and wrapper have different size!" );
34319   static_assert( std::is_standard_layout<PerformanceMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
34320 
34321   template <>
34322   struct CppType<StructureType, StructureType::ePerformanceMarkerInfoINTEL>
34323   {
34324     using Type = PerformanceMarkerInfoINTEL;
34325   };
34326 
34327   struct PerformanceOverrideInfoINTEL
34328   {
34329     static const bool allowDuplicate = false;
34330     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceOverrideInfoINTEL;
34331 
34332 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34333     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
34334     : type( type_ ), enable( enable_ ), parameter( parameter_ )
34335     {}
34336 
34337     VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34338 
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34339     PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34340     {
34341       *this = rhs;
34342     }
34343 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34344 
operator =VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34345     PerformanceOverrideInfoINTEL & operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34346     {
34347       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL const *>( &rhs );
34348       return *this;
34349     }
34350 
operator =VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34351     PerformanceOverrideInfoINTEL & operator=( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34352     {
34353       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceOverrideInfoINTEL ) );
34354       return *this;
34355     }
34356 
setPNextVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34357     PerformanceOverrideInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34358     {
34359       pNext = pNext_;
34360       return *this;
34361     }
34362 
setTypeVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34363     PerformanceOverrideInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
34364     {
34365       type = type_;
34366       return *this;
34367     }
34368 
setEnableVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34369     PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT
34370     {
34371       enable = enable_;
34372       return *this;
34373     }
34374 
setParameterVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34375     PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT
34376     {
34377       parameter = parameter_;
34378       return *this;
34379     }
34380 
34381 
operator VkPerformanceOverrideInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34382     operator VkPerformanceOverrideInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
34383     {
34384       return *reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( this );
34385     }
34386 
operator VkPerformanceOverrideInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34387     operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT
34388     {
34389       return *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>( this );
34390     }
34391 
34392 
34393 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34394     auto operator<=>( PerformanceOverrideInfoINTEL const& ) const = default;
34395 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34396     bool operator==( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34397     {
34398       return ( sType == rhs.sType )
34399           && ( pNext == rhs.pNext )
34400           && ( type == rhs.type )
34401           && ( enable == rhs.enable )
34402           && ( parameter == rhs.parameter );
34403     }
34404 
operator !=VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34405     bool operator!=( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34406     {
34407       return !operator==( rhs );
34408     }
34409 #endif
34410 
34411 
34412 
34413   public:
34414     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL;
34415     const void* pNext = {};
34416     VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware;
34417     VULKAN_HPP_NAMESPACE::Bool32 enable = {};
34418     uint64_t parameter = {};
34419 
34420   };
34421   static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), "struct and wrapper have different size!" );
34422   static_assert( std::is_standard_layout<PerformanceOverrideInfoINTEL>::value, "struct wrapper is not a standard layout!" );
34423 
34424   template <>
34425   struct CppType<StructureType, StructureType::ePerformanceOverrideInfoINTEL>
34426   {
34427     using Type = PerformanceOverrideInfoINTEL;
34428   };
34429 
34430   struct PerformanceStreamMarkerInfoINTEL
34431   {
34432     static const bool allowDuplicate = false;
34433     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceStreamMarkerInfoINTEL;
34434 
34435 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34436     VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL(uint32_t marker_ = {}) VULKAN_HPP_NOEXCEPT
34437     : marker( marker_ )
34438     {}
34439 
34440     VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34441 
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34442     PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34443     {
34444       *this = rhs;
34445     }
34446 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34447 
operator =VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34448     PerformanceStreamMarkerInfoINTEL & operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34449     {
34450       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL const *>( &rhs );
34451       return *this;
34452     }
34453 
operator =VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34454     PerformanceStreamMarkerInfoINTEL & operator=( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34455     {
34456       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceStreamMarkerInfoINTEL ) );
34457       return *this;
34458     }
34459 
setPNextVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34460     PerformanceStreamMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34461     {
34462       pNext = pNext_;
34463       return *this;
34464     }
34465 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34466     PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT
34467     {
34468       marker = marker_;
34469       return *this;
34470     }
34471 
34472 
operator VkPerformanceStreamMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34473     operator VkPerformanceStreamMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
34474     {
34475       return *reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( this );
34476     }
34477 
operator VkPerformanceStreamMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34478     operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
34479     {
34480       return *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>( this );
34481     }
34482 
34483 
34484 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34485     auto operator<=>( PerformanceStreamMarkerInfoINTEL const& ) const = default;
34486 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34487     bool operator==( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34488     {
34489       return ( sType == rhs.sType )
34490           && ( pNext == rhs.pNext )
34491           && ( marker == rhs.marker );
34492     }
34493 
operator !=VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34494     bool operator!=( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34495     {
34496       return !operator==( rhs );
34497     }
34498 #endif
34499 
34500 
34501 
34502   public:
34503     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL;
34504     const void* pNext = {};
34505     uint32_t marker = {};
34506 
34507   };
34508   static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), "struct and wrapper have different size!" );
34509   static_assert( std::is_standard_layout<PerformanceStreamMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
34510 
34511   template <>
34512   struct CppType<StructureType, StructureType::ePerformanceStreamMarkerInfoINTEL>
34513   {
34514     using Type = PerformanceStreamMarkerInfoINTEL;
34515   };
34516 
34517   struct Viewport
34518   {
34519 
34520 
34521 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportVULKAN_HPP_NAMESPACE::Viewport34522     VULKAN_HPP_CONSTEXPR Viewport(float x_ = {}, float y_ = {}, float width_ = {}, float height_ = {}, float minDepth_ = {}, float maxDepth_ = {}) VULKAN_HPP_NOEXCEPT
34523     : x( x_ ), y( y_ ), width( width_ ), height( height_ ), minDepth( minDepth_ ), maxDepth( maxDepth_ )
34524     {}
34525 
34526     VULKAN_HPP_CONSTEXPR Viewport( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34527 
ViewportVULKAN_HPP_NAMESPACE::Viewport34528     Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
34529     {
34530       *this = rhs;
34531     }
34532 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34533 
operator =VULKAN_HPP_NAMESPACE::Viewport34534     Viewport & operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
34535     {
34536       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Viewport const *>( &rhs );
34537       return *this;
34538     }
34539 
operator =VULKAN_HPP_NAMESPACE::Viewport34540     Viewport & operator=( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT
34541     {
34542       memcpy( static_cast<void *>( this ), &rhs, sizeof( Viewport ) );
34543       return *this;
34544     }
34545 
setXVULKAN_HPP_NAMESPACE::Viewport34546     Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT
34547     {
34548       x = x_;
34549       return *this;
34550     }
34551 
setYVULKAN_HPP_NAMESPACE::Viewport34552     Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT
34553     {
34554       y = y_;
34555       return *this;
34556     }
34557 
setWidthVULKAN_HPP_NAMESPACE::Viewport34558     Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT
34559     {
34560       width = width_;
34561       return *this;
34562     }
34563 
setHeightVULKAN_HPP_NAMESPACE::Viewport34564     Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT
34565     {
34566       height = height_;
34567       return *this;
34568     }
34569 
setMinDepthVULKAN_HPP_NAMESPACE::Viewport34570     Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT
34571     {
34572       minDepth = minDepth_;
34573       return *this;
34574     }
34575 
setMaxDepthVULKAN_HPP_NAMESPACE::Viewport34576     Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT
34577     {
34578       maxDepth = maxDepth_;
34579       return *this;
34580     }
34581 
34582 
operator VkViewport const&VULKAN_HPP_NAMESPACE::Viewport34583     operator VkViewport const&() const VULKAN_HPP_NOEXCEPT
34584     {
34585       return *reinterpret_cast<const VkViewport*>( this );
34586     }
34587 
operator VkViewport&VULKAN_HPP_NAMESPACE::Viewport34588     operator VkViewport &() VULKAN_HPP_NOEXCEPT
34589     {
34590       return *reinterpret_cast<VkViewport*>( this );
34591     }
34592 
34593 
34594 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34595     auto operator<=>( Viewport const& ) const = default;
34596 #else
operator ==VULKAN_HPP_NAMESPACE::Viewport34597     bool operator==( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT
34598     {
34599       return ( x == rhs.x )
34600           && ( y == rhs.y )
34601           && ( width == rhs.width )
34602           && ( height == rhs.height )
34603           && ( minDepth == rhs.minDepth )
34604           && ( maxDepth == rhs.maxDepth );
34605     }
34606 
operator !=VULKAN_HPP_NAMESPACE::Viewport34607     bool operator!=( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT
34608     {
34609       return !operator==( rhs );
34610     }
34611 #endif
34612 
34613 
34614 
34615   public:
34616     float x = {};
34617     float y = {};
34618     float width = {};
34619     float height = {};
34620     float minDepth = {};
34621     float maxDepth = {};
34622 
34623   };
34624   static_assert( sizeof( Viewport ) == sizeof( VkViewport ), "struct and wrapper have different size!" );
34625   static_assert( std::is_standard_layout<Viewport>::value, "struct wrapper is not a standard layout!" );
34626 
34627   struct ShadingRatePaletteNV
34628   {
34629 
34630 
34631 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34632     VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV(uint32_t shadingRatePaletteEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ = {}) VULKAN_HPP_NOEXCEPT
34633     : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ ), pShadingRatePaletteEntries( pShadingRatePaletteEntries_ )
34634     {}
34635 
34636     VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34637 
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34638     ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
34639     {
34640       *this = rhs;
34641     }
34642 
34643 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34644     ShadingRatePaletteNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ )
34645     : shadingRatePaletteEntryCount( static_cast<uint32_t>( shadingRatePaletteEntries_.size() ) ), pShadingRatePaletteEntries( shadingRatePaletteEntries_.data() )
34646     {}
34647 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34648 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34649 
operator =VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34650     ShadingRatePaletteNV & operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
34651     {
34652       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV const *>( &rhs );
34653       return *this;
34654     }
34655 
operator =VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34656     ShadingRatePaletteNV & operator=( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
34657     {
34658       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShadingRatePaletteNV ) );
34659       return *this;
34660     }
34661 
setShadingRatePaletteEntryCountVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34662     ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT
34663     {
34664       shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_;
34665       return *this;
34666     }
34667 
setPShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34668     ShadingRatePaletteNV & setPShadingRatePaletteEntries( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
34669     {
34670       pShadingRatePaletteEntries = pShadingRatePaletteEntries_;
34671       return *this;
34672     }
34673 
34674 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34675     ShadingRatePaletteNV & setShadingRatePaletteEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
34676     {
34677       shadingRatePaletteEntryCount = static_cast<uint32_t>( shadingRatePaletteEntries_.size() );
34678       pShadingRatePaletteEntries = shadingRatePaletteEntries_.data();
34679       return *this;
34680     }
34681 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34682 
34683 
operator VkShadingRatePaletteNV const&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34684     operator VkShadingRatePaletteNV const&() const VULKAN_HPP_NOEXCEPT
34685     {
34686       return *reinterpret_cast<const VkShadingRatePaletteNV*>( this );
34687     }
34688 
operator VkShadingRatePaletteNV&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34689     operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT
34690     {
34691       return *reinterpret_cast<VkShadingRatePaletteNV*>( this );
34692     }
34693 
34694 
34695 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34696     auto operator<=>( ShadingRatePaletteNV const& ) const = default;
34697 #else
operator ==VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34698     bool operator==( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34699     {
34700       return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount )
34701           && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries );
34702     }
34703 
operator !=VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34704     bool operator!=( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34705     {
34706       return !operator==( rhs );
34707     }
34708 #endif
34709 
34710 
34711 
34712   public:
34713     uint32_t shadingRatePaletteEntryCount = {};
34714     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries = {};
34715 
34716   };
34717   static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), "struct and wrapper have different size!" );
34718   static_assert( std::is_standard_layout<ShadingRatePaletteNV>::value, "struct wrapper is not a standard layout!" );
34719 
34720   struct ViewportWScalingNV
34721   {
34722 
34723 
34724 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV34725     VULKAN_HPP_CONSTEXPR ViewportWScalingNV(float xcoeff_ = {}, float ycoeff_ = {}) VULKAN_HPP_NOEXCEPT
34726     : xcoeff( xcoeff_ ), ycoeff( ycoeff_ )
34727     {}
34728 
34729     VULKAN_HPP_CONSTEXPR ViewportWScalingNV( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34730 
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV34731     ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
34732     {
34733       *this = rhs;
34734     }
34735 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34736 
operator =VULKAN_HPP_NAMESPACE::ViewportWScalingNV34737     ViewportWScalingNV & operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
34738     {
34739       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportWScalingNV const *>( &rhs );
34740       return *this;
34741     }
34742 
operator =VULKAN_HPP_NAMESPACE::ViewportWScalingNV34743     ViewportWScalingNV & operator=( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
34744     {
34745       memcpy( static_cast<void *>( this ), &rhs, sizeof( ViewportWScalingNV ) );
34746       return *this;
34747     }
34748 
setXcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV34749     ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT
34750     {
34751       xcoeff = xcoeff_;
34752       return *this;
34753     }
34754 
setYcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV34755     ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT
34756     {
34757       ycoeff = ycoeff_;
34758       return *this;
34759     }
34760 
34761 
operator VkViewportWScalingNV const&VULKAN_HPP_NAMESPACE::ViewportWScalingNV34762     operator VkViewportWScalingNV const&() const VULKAN_HPP_NOEXCEPT
34763     {
34764       return *reinterpret_cast<const VkViewportWScalingNV*>( this );
34765     }
34766 
operator VkViewportWScalingNV&VULKAN_HPP_NAMESPACE::ViewportWScalingNV34767     operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT
34768     {
34769       return *reinterpret_cast<VkViewportWScalingNV*>( this );
34770     }
34771 
34772 
34773 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34774     auto operator<=>( ViewportWScalingNV const& ) const = default;
34775 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportWScalingNV34776     bool operator==( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34777     {
34778       return ( xcoeff == rhs.xcoeff )
34779           && ( ycoeff == rhs.ycoeff );
34780     }
34781 
operator !=VULKAN_HPP_NAMESPACE::ViewportWScalingNV34782     bool operator!=( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34783     {
34784       return !operator==( rhs );
34785     }
34786 #endif
34787 
34788 
34789 
34790   public:
34791     float xcoeff = {};
34792     float ycoeff = {};
34793 
34794   };
34795   static_assert( sizeof( ViewportWScalingNV ) == sizeof( VkViewportWScalingNV ), "struct and wrapper have different size!" );
34796   static_assert( std::is_standard_layout<ViewportWScalingNV>::value, "struct wrapper is not a standard layout!" );
34797 
34798 #ifdef VK_ENABLE_BETA_EXTENSIONS
34799   struct StridedBufferRegionKHR
34800   {
34801 
34802 
34803 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34804     VULKAN_HPP_CONSTEXPR StridedBufferRegionKHR(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
34805     : buffer( buffer_ ), offset( offset_ ), stride( stride_ ), size( size_ )
34806     {}
34807 
34808     VULKAN_HPP_CONSTEXPR StridedBufferRegionKHR( StridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34809 
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34810     StridedBufferRegionKHR( VkStridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34811     {
34812       *this = rhs;
34813     }
34814 
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34815     explicit StridedBufferRegionKHR( IndirectCommandsStreamNV const& indirectCommandsStreamNV, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} )
34816       : buffer( indirectCommandsStreamNV.buffer )
34817       , offset( indirectCommandsStreamNV.offset )
34818       , stride( stride_ )
34819       , size( size_ )
34820     {}
34821 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34822 
operator =VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34823     StridedBufferRegionKHR & operator=( VkStridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34824     {
34825       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR const *>( &rhs );
34826       return *this;
34827     }
34828 
operator =VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34829     StridedBufferRegionKHR & operator=( StridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34830     {
34831       memcpy( static_cast<void *>( this ), &rhs, sizeof( StridedBufferRegionKHR ) );
34832       return *this;
34833     }
34834 
setBufferVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34835     StridedBufferRegionKHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
34836     {
34837       buffer = buffer_;
34838       return *this;
34839     }
34840 
setOffsetVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34841     StridedBufferRegionKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
34842     {
34843       offset = offset_;
34844       return *this;
34845     }
34846 
setStrideVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34847     StridedBufferRegionKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
34848     {
34849       stride = stride_;
34850       return *this;
34851     }
34852 
setSizeVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34853     StridedBufferRegionKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
34854     {
34855       size = size_;
34856       return *this;
34857     }
34858 
34859 
operator VkStridedBufferRegionKHR const&VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34860     operator VkStridedBufferRegionKHR const&() const VULKAN_HPP_NOEXCEPT
34861     {
34862       return *reinterpret_cast<const VkStridedBufferRegionKHR*>( this );
34863     }
34864 
operator VkStridedBufferRegionKHR&VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34865     operator VkStridedBufferRegionKHR &() VULKAN_HPP_NOEXCEPT
34866     {
34867       return *reinterpret_cast<VkStridedBufferRegionKHR*>( this );
34868     }
34869 
34870 
34871 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34872     auto operator<=>( StridedBufferRegionKHR const& ) const = default;
34873 #else
operator ==VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34874     bool operator==( StridedBufferRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34875     {
34876       return ( buffer == rhs.buffer )
34877           && ( offset == rhs.offset )
34878           && ( stride == rhs.stride )
34879           && ( size == rhs.size );
34880     }
34881 
operator !=VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34882     bool operator!=( StridedBufferRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34883     {
34884       return !operator==( rhs );
34885     }
34886 #endif
34887 
34888 
34889 
34890   public:
34891     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
34892     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
34893     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
34894     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
34895 
34896   };
34897   static_assert( sizeof( StridedBufferRegionKHR ) == sizeof( VkStridedBufferRegionKHR ), "struct and wrapper have different size!" );
34898   static_assert( std::is_standard_layout<StridedBufferRegionKHR>::value, "struct wrapper is not a standard layout!" );
34899 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
34900 
34901   class CommandBuffer
34902   {
34903   public:
34904     using CType = VkCommandBuffer;
34905 
34906     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer;
34907     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer;
34908 
34909   public:
CommandBuffer()34910     VULKAN_HPP_CONSTEXPR CommandBuffer() VULKAN_HPP_NOEXCEPT
34911       : m_commandBuffer(VK_NULL_HANDLE)
34912     {}
34913 
CommandBuffer(std::nullptr_t)34914     VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
34915       : m_commandBuffer(VK_NULL_HANDLE)
34916     {}
34917 
CommandBuffer(VkCommandBuffer commandBuffer)34918     VULKAN_HPP_TYPESAFE_EXPLICIT CommandBuffer( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT
34919       : m_commandBuffer( commandBuffer )
34920     {}
34921 
34922 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandBuffer commandBuffer)34923     CommandBuffer & operator=(VkCommandBuffer commandBuffer) VULKAN_HPP_NOEXCEPT
34924     {
34925       m_commandBuffer = commandBuffer;
34926       return *this;
34927     }
34928 #endif
34929 
operator =(std::nullptr_t)34930     CommandBuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
34931     {
34932       m_commandBuffer = VK_NULL_HANDLE;
34933       return *this;
34934     }
34935 
34936 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34937     auto operator<=>( CommandBuffer const& ) const = default;
34938 #else
operator ==(CommandBuffer const & rhs) const34939     bool operator==( CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
34940     {
34941       return m_commandBuffer == rhs.m_commandBuffer;
34942     }
34943 
operator !=(CommandBuffer const & rhs) const34944     bool operator!=(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
34945     {
34946       return m_commandBuffer != rhs.m_commandBuffer;
34947     }
34948 
operator <(CommandBuffer const & rhs) const34949     bool operator<(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
34950     {
34951       return m_commandBuffer < rhs.m_commandBuffer;
34952     }
34953 #endif
34954 
34955 
34956     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34957     VULKAN_HPP_NODISCARD Result begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34958 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34959     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34960     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
34961 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34962 
34963 
34964     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34965     void beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34966 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34967     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34968     void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34969 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34970 
34971 
34972     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34973     void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34974 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34975     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34976     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34977 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34978 
34979 
34980     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34981     void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34982 
34983 
34984     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34985     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;
34986 
34987 
34988     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34989     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;
34990 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34991     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34992     void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34993 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34994 
34995 
34996     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34997     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;
34998 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34999     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35000     void beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35001 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35002 
35003     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35004     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;
35005 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35006     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35007     void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35008 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35009 
35010 
35011     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35012     void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35013 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35014     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35015     void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
35016 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35017 
35018 
35019     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35020     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;
35021 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35022     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35023     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;
35024 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35025 
35026 
35027     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35028     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;
35029 
35030 
35031     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35032     void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35033 
35034 
35035     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35036     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;
35037 
35038 
35039     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35040     void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35041 
35042 
35043     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35044     void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35045 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35046     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35047     void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
35048 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35049 
35050 
35051     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35052     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;
35053 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35054     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35055     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;
35056 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35057 
35058 
35059     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35060     void bindVertexBuffers2EXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::DeviceSize* pStrides VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35061 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35062     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35063     void bindVertexBuffers2EXT( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
35064 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35065 
35066 
35067     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35068     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;
35069 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35070     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35071     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;
35072 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35073 
35074 
35075     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35076     void blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35077 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35078     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35079     void blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35080 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35081 
35082 
35083 #ifdef VK_ENABLE_BETA_EXTENSIONS
35084     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35085     void buildAccelerationStructureIndirectKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfo, VULKAN_HPP_NAMESPACE::Buffer indirectBuffer, VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset, uint32_t indirectStride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35086 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35087     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35088     void buildAccelerationStructureIndirectKHR( const AccelerationStructureBuildGeometryInfoKHR & info, VULKAN_HPP_NAMESPACE::Buffer indirectBuffer, VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset, uint32_t indirectStride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35089 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35090 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35091 
35092 
35093 #ifdef VK_ENABLE_BETA_EXTENSIONS
35094     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35095     void buildAccelerationStructureKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35096 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35097     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35098     void buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const > const & pOffsetInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
35099 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35100 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35101 
35102 
35103     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35104     void buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV* pInfo, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35105 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35106     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35107     void buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35108 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35109 
35110 
35111     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35112     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;
35113 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35114     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35115     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;
35116 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35117 
35118 
35119     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35120     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;
35121 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35122     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35123     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;
35124 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35125 
35126 
35127     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35128     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;
35129 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35130     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35131     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;
35132 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35133 
35134 
35135 #ifdef VK_ENABLE_BETA_EXTENSIONS
35136     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35137     void copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35138 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35139     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35140     void copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35141 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35142 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35143 
35144 
35145     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35146     void copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35147 
35148 
35149 #ifdef VK_ENABLE_BETA_EXTENSIONS
35150     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35151     void copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35152 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35153     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35154     void copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35155 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35156 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35157 
35158 
35159     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35160     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;
35161 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35162     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35163     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;
35164 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35165 
35166 
35167     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35168     void copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35169 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35170     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35171     void copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35172 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35173 
35174 
35175     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35176     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;
35177 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35178     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35179     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;
35180 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35181 
35182 
35183     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35184     void copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35185 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35186     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35187     void copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35188 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35189 
35190 
35191     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35192     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;
35193 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35194     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35195     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;
35196 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35197 
35198 
35199     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35200     void copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35201 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35202     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35203     void copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35204 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35205 
35206 
35207     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35208     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;
35209 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35210     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35211     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;
35212 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35213 
35214 
35215     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35216     void copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35217 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35218     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35219     void copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35220 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35221 
35222 
35223 #ifdef VK_ENABLE_BETA_EXTENSIONS
35224     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35225     void copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35226 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35227     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35228     void copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35229 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35230 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35231 
35232 
35233     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35234     void copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35235 
35236 
35237     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35238     void debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35239 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35240     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35241     void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35242 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35243 
35244 
35245     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35246     void debugMarkerEndEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35247 
35248 
35249     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35250     void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35251 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35252     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35253     void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35254 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35255 
35256 
35257     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35258     void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35259 
35260 
35261     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35262     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;
35263 
35264     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35265     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;
35266 
35267 
35268     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35269     void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35270 
35271 
35272     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35273     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;
35274 
35275 
35276     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35277     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;
35278 
35279 
35280     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35281     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;
35282 
35283 
35284     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35285     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;
35286 
35287     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35288     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;
35289 
35290     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35291     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;
35292 
35293 
35294     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35295     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;
35296 
35297 
35298     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35299     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;
35300 
35301 
35302     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35303     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;
35304 
35305     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35306     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;
35307 
35308     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35309     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;
35310 
35311 
35312     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35313     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;
35314 
35315 
35316     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35317     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;
35318 
35319 
35320     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35321     void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35322 
35323 
35324     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35325     void endConditionalRenderingEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35326 
35327 
35328     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35329     void endDebugUtilsLabelEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35330 
35331 
35332     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35333     void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35334 
35335 
35336     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35337     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;
35338 
35339 
35340     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35341     void endRenderPass( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35342 
35343 
35344     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35345     void endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35346 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35347     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35348     void endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35349 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35350 
35351     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35352     void endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35353 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35354     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35355     void endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35356 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35357 
35358 
35359     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35360     void endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35361 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35362     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35363     void endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
35364 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35365 
35366 
35367     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35368     void executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35369 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35370     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35371     void executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35372 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35373 
35374 
35375     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35376     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;
35377 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35378     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35379     void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35380 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35381 
35382 
35383     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35384     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;
35385 
35386 
35387     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35388     void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35389 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35390     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35391     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35392 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35393 
35394 
35395     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35396     void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35397 
35398 
35399     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35400     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;
35401 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35402     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35403     void nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35404 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35405 
35406     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35407     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;
35408 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35409     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35410     void nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35411 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35412 
35413 
35414     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35415     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;
35416 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35417     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35418     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;
35419 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35420 
35421 
35422     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35423     void preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35424 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35425     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35426     void preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35427 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35428 
35429 
35430     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35431     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;
35432 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35433     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35434     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;
35435 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35436 
35437 
35438     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35439     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;
35440 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35441     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35442     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;
35443 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35444 
35445 
35446     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35447     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;
35448 
35449 
35450     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35451     void resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35452 
35453 
35454     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35455     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;
35456 
35457 
35458     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35459     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;
35460 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35461     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35462     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;
35463 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35464 
35465 
35466     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35467     void resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35468 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35469     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35470     void resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35471 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35472 
35473 
35474     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35475     void setBlendConstants( const float blendConstants[4], Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35476 
35477 
35478     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35479     void setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35480 
35481 
35482     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35483     void 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;
35484 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35485     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35486     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;
35487 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35488 
35489 
35490     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35491     void setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35492 
35493 
35494     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35495     void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35496 
35497 
35498     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35499     void setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35500 
35501 
35502     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35503     void setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35504 
35505 
35506     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35507     void setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35508 
35509 
35510     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35511     void setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35512 
35513 
35514     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35515     void setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35516 
35517 
35518     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35519     void setDeviceMask( uint32_t deviceMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35520 
35521     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35522     void setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35523 
35524 
35525     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35526     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;
35527 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35528     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35529     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;
35530 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35531 
35532 
35533     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35534     void setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35535 
35536 
35537     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35538     void 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;
35539 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35540     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35541     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;
35542 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35543 
35544 
35545     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35546     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;
35547 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35548     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35549     void setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35550 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35551 
35552 
35553     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35554     void setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35555 
35556 
35557     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35558     void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35559 
35560 
35561     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35562     void setLineWidth( float lineWidth, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35563 
35564 
35565     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35566     VULKAN_HPP_NODISCARD Result setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35567 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35568     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35569     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35570 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35571 
35572 
35573     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35574     VULKAN_HPP_NODISCARD Result setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35575 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35576     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35577     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35579 
35580 
35581     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35582     VULKAN_HPP_NODISCARD Result setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35583 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35584     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35585     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35586 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35587 
35588 
35589     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35590     void setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35591 
35592 
35593     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35594     void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35595 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35596     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35597     void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35598 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35599 
35600 
35601     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35602     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;
35603 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35604     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35605     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;
35606 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35607 
35608 
35609     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35610     void setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35611 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35612     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35613     void setScissorWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35614 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35615 
35616 
35617     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35618     void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35619 
35620 
35621     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35622     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;
35623 
35624 
35625     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35626     void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35627 
35628 
35629     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35630     void setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35631 
35632 
35633     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35634     void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35635 
35636 
35637     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35638     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;
35639 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35640     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35641     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;
35642 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35643 
35644 
35645     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35646     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;
35647 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35648     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35649     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;
35650 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35651 
35652 
35653     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35654     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;
35655 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35656     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35657     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;
35658 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35659 
35660 
35661     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35662     void setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35663 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35664     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35665     void setViewportWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35666 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35667 
35668 
35669 #ifdef VK_ENABLE_BETA_EXTENSIONS
35670     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35671     void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pCallableShaderBindingTable, VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35672 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35673     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35674     void traceRaysIndirectKHR( const StridedBufferRegionKHR & raygenShaderBindingTable, const StridedBufferRegionKHR & missShaderBindingTable, const StridedBufferRegionKHR & hitShaderBindingTable, const StridedBufferRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35675 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35676 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35677 
35678 
35679 #ifdef VK_ENABLE_BETA_EXTENSIONS
35680     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35681     void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35682 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35683     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35684     void traceRaysKHR( const StridedBufferRegionKHR & raygenShaderBindingTable, const StridedBufferRegionKHR & missShaderBindingTable, const StridedBufferRegionKHR & hitShaderBindingTable, const StridedBufferRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35685 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35686 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35687 
35688 
35689     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35690     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;
35691 
35692 
35693     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35694     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;
35695 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35696     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35697     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;
35698 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35699 
35700 
35701     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35702     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;
35703 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35704     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35705     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;
35706 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35707 
35708 
35709 #ifdef VK_ENABLE_BETA_EXTENSIONS
35710     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35711     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;
35712 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35713     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35714     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;
35715 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35716 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35717 
35718     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35719     void writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35720 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35721     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35722     void writeAccelerationStructuresPropertiesNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35723 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35724 
35725 
35726     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35727     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;
35728 
35729 
35730     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35731     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;
35732 
35733 
35734 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
35735     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35736     VULKAN_HPP_NODISCARD Result end( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35737 #else
35738     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35739     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type end( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35740 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35741 
35742 
35743 
35744 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
35745     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35746     VULKAN_HPP_NODISCARD Result reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35747 #else
35748     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35749     typename ResultValueType<void>::type reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35750 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35751 
35752 
operator VkCommandBuffer() const35753     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT
35754     {
35755       return m_commandBuffer;
35756     }
35757 
operator bool() const35758     explicit operator bool() const VULKAN_HPP_NOEXCEPT
35759     {
35760       return m_commandBuffer != VK_NULL_HANDLE;
35761     }
35762 
operator !() const35763     bool operator!() const VULKAN_HPP_NOEXCEPT
35764     {
35765       return m_commandBuffer == VK_NULL_HANDLE;
35766     }
35767 
35768   private:
35769     VkCommandBuffer m_commandBuffer;
35770   };
35771   static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandBuffer ) == sizeof( VkCommandBuffer ), "handle and wrapper have different size!" );
35772 
35773   template <>
35774   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eCommandBuffer>
35775   {
35776     using type = VULKAN_HPP_NAMESPACE::CommandBuffer;
35777   };
35778 
35779   template <>
35780   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer>
35781   {
35782     using Type = VULKAN_HPP_NAMESPACE::CommandBuffer;
35783   };
35784 
35785 
35786   template <>
35787   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer>
35788   {
35789     using Type = VULKAN_HPP_NAMESPACE::CommandBuffer;
35790   };
35791 
35792 
35793   template <>
35794   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CommandBuffer>
35795   {
35796     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
35797   };
35798 
35799   struct MemoryAllocateInfo
35800   {
35801     static const bool allowDuplicate = false;
35802     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateInfo;
35803 
35804 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35805     VULKAN_HPP_CONSTEXPR MemoryAllocateInfo(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeIndex_ = {}) VULKAN_HPP_NOEXCEPT
35806     : allocationSize( allocationSize_ ), memoryTypeIndex( memoryTypeIndex_ )
35807     {}
35808 
35809     VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35810 
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35811     MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35812     {
35813       *this = rhs;
35814     }
35815 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
35816 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35817     MemoryAllocateInfo & operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35818     {
35819       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const *>( &rhs );
35820       return *this;
35821     }
35822 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35823     MemoryAllocateInfo & operator=( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35824     {
35825       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryAllocateInfo ) );
35826       return *this;
35827     }
35828 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35829     MemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35830     {
35831       pNext = pNext_;
35832       return *this;
35833     }
35834 
setAllocationSizeVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35835     MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT
35836     {
35837       allocationSize = allocationSize_;
35838       return *this;
35839     }
35840 
setMemoryTypeIndexVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35841     MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT
35842     {
35843       memoryTypeIndex = memoryTypeIndex_;
35844       return *this;
35845     }
35846 
35847 
operator VkMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35848     operator VkMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
35849     {
35850       return *reinterpret_cast<const VkMemoryAllocateInfo*>( this );
35851     }
35852 
operator VkMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35853     operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
35854     {
35855       return *reinterpret_cast<VkMemoryAllocateInfo*>( this );
35856     }
35857 
35858 
35859 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35860     auto operator<=>( MemoryAllocateInfo const& ) const = default;
35861 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35862     bool operator==( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35863     {
35864       return ( sType == rhs.sType )
35865           && ( pNext == rhs.pNext )
35866           && ( allocationSize == rhs.allocationSize )
35867           && ( memoryTypeIndex == rhs.memoryTypeIndex );
35868     }
35869 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35870     bool operator!=( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35871     {
35872       return !operator==( rhs );
35873     }
35874 #endif
35875 
35876 
35877 
35878   public:
35879     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo;
35880     const void* pNext = {};
35881     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
35882     uint32_t memoryTypeIndex = {};
35883 
35884   };
35885   static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), "struct and wrapper have different size!" );
35886   static_assert( std::is_standard_layout<MemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
35887 
35888   template <>
35889   struct CppType<StructureType, StructureType::eMemoryAllocateInfo>
35890   {
35891     using Type = MemoryAllocateInfo;
35892   };
35893 
35894   class PipelineCache
35895   {
35896   public:
35897     using CType = VkPipelineCache;
35898 
35899     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache;
35900     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache;
35901 
35902   public:
PipelineCache()35903     VULKAN_HPP_CONSTEXPR PipelineCache() VULKAN_HPP_NOEXCEPT
35904       : m_pipelineCache(VK_NULL_HANDLE)
35905     {}
35906 
PipelineCache(std::nullptr_t)35907     VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
35908       : m_pipelineCache(VK_NULL_HANDLE)
35909     {}
35910 
PipelineCache(VkPipelineCache pipelineCache)35911     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache ) VULKAN_HPP_NOEXCEPT
35912       : m_pipelineCache( pipelineCache )
35913     {}
35914 
35915 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineCache pipelineCache)35916     PipelineCache & operator=(VkPipelineCache pipelineCache) VULKAN_HPP_NOEXCEPT
35917     {
35918       m_pipelineCache = pipelineCache;
35919       return *this;
35920     }
35921 #endif
35922 
operator =(std::nullptr_t)35923     PipelineCache & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
35924     {
35925       m_pipelineCache = VK_NULL_HANDLE;
35926       return *this;
35927     }
35928 
35929 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35930     auto operator<=>( PipelineCache const& ) const = default;
35931 #else
operator ==(PipelineCache const & rhs) const35932     bool operator==( PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
35933     {
35934       return m_pipelineCache == rhs.m_pipelineCache;
35935     }
35936 
operator !=(PipelineCache const & rhs) const35937     bool operator!=(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
35938     {
35939       return m_pipelineCache != rhs.m_pipelineCache;
35940     }
35941 
operator <(PipelineCache const & rhs) const35942     bool operator<(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
35943     {
35944       return m_pipelineCache < rhs.m_pipelineCache;
35945     }
35946 #endif
35947 
operator VkPipelineCache() const35948     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineCache() const VULKAN_HPP_NOEXCEPT
35949     {
35950       return m_pipelineCache;
35951     }
35952 
operator bool() const35953     explicit operator bool() const VULKAN_HPP_NOEXCEPT
35954     {
35955       return m_pipelineCache != VK_NULL_HANDLE;
35956     }
35957 
operator !() const35958     bool operator!() const VULKAN_HPP_NOEXCEPT
35959     {
35960       return m_pipelineCache == VK_NULL_HANDLE;
35961     }
35962 
35963   private:
35964     VkPipelineCache m_pipelineCache;
35965   };
35966   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineCache ) == sizeof( VkPipelineCache ), "handle and wrapper have different size!" );
35967 
35968   template <>
35969   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipelineCache>
35970   {
35971     using type = VULKAN_HPP_NAMESPACE::PipelineCache;
35972   };
35973 
35974   template <>
35975   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache>
35976   {
35977     using Type = VULKAN_HPP_NAMESPACE::PipelineCache;
35978   };
35979 
35980 
35981   template <>
35982   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache>
35983   {
35984     using Type = VULKAN_HPP_NAMESPACE::PipelineCache;
35985   };
35986 
35987 
35988   template <>
35989   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PipelineCache>
35990   {
35991     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
35992   };
35993 
35994   struct EventCreateInfo
35995   {
35996     static const bool allowDuplicate = false;
35997     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eEventCreateInfo;
35998 
35999 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo36000     VULKAN_HPP_CONSTEXPR EventCreateInfo(VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
36001     : flags( flags_ )
36002     {}
36003 
36004     VULKAN_HPP_CONSTEXPR EventCreateInfo( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36005 
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo36006     EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36007     {
36008       *this = rhs;
36009     }
36010 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36011 
operator =VULKAN_HPP_NAMESPACE::EventCreateInfo36012     EventCreateInfo & operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36013     {
36014       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::EventCreateInfo const *>( &rhs );
36015       return *this;
36016     }
36017 
operator =VULKAN_HPP_NAMESPACE::EventCreateInfo36018     EventCreateInfo & operator=( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36019     {
36020       memcpy( static_cast<void *>( this ), &rhs, sizeof( EventCreateInfo ) );
36021       return *this;
36022     }
36023 
setPNextVULKAN_HPP_NAMESPACE::EventCreateInfo36024     EventCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36025     {
36026       pNext = pNext_;
36027       return *this;
36028     }
36029 
setFlagsVULKAN_HPP_NAMESPACE::EventCreateInfo36030     EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36031     {
36032       flags = flags_;
36033       return *this;
36034     }
36035 
36036 
operator VkEventCreateInfo const&VULKAN_HPP_NAMESPACE::EventCreateInfo36037     operator VkEventCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36038     {
36039       return *reinterpret_cast<const VkEventCreateInfo*>( this );
36040     }
36041 
operator VkEventCreateInfo&VULKAN_HPP_NAMESPACE::EventCreateInfo36042     operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT
36043     {
36044       return *reinterpret_cast<VkEventCreateInfo*>( this );
36045     }
36046 
36047 
36048 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36049     auto operator<=>( EventCreateInfo const& ) const = default;
36050 #else
operator ==VULKAN_HPP_NAMESPACE::EventCreateInfo36051     bool operator==( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36052     {
36053       return ( sType == rhs.sType )
36054           && ( pNext == rhs.pNext )
36055           && ( flags == rhs.flags );
36056     }
36057 
operator !=VULKAN_HPP_NAMESPACE::EventCreateInfo36058     bool operator!=( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36059     {
36060       return !operator==( rhs );
36061     }
36062 #endif
36063 
36064 
36065 
36066   public:
36067     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo;
36068     const void* pNext = {};
36069     VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {};
36070 
36071   };
36072   static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" );
36073   static_assert( std::is_standard_layout<EventCreateInfo>::value, "struct wrapper is not a standard layout!" );
36074 
36075   template <>
36076   struct CppType<StructureType, StructureType::eEventCreateInfo>
36077   {
36078     using Type = EventCreateInfo;
36079   };
36080 
36081   struct FenceCreateInfo
36082   {
36083     static const bool allowDuplicate = false;
36084     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceCreateInfo;
36085 
36086 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo36087     VULKAN_HPP_CONSTEXPR FenceCreateInfo(VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
36088     : flags( flags_ )
36089     {}
36090 
36091     VULKAN_HPP_CONSTEXPR FenceCreateInfo( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36092 
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo36093     FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36094     {
36095       *this = rhs;
36096     }
36097 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36098 
operator =VULKAN_HPP_NAMESPACE::FenceCreateInfo36099     FenceCreateInfo & operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36100     {
36101       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceCreateInfo const *>( &rhs );
36102       return *this;
36103     }
36104 
operator =VULKAN_HPP_NAMESPACE::FenceCreateInfo36105     FenceCreateInfo & operator=( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36106     {
36107       memcpy( static_cast<void *>( this ), &rhs, sizeof( FenceCreateInfo ) );
36108       return *this;
36109     }
36110 
setPNextVULKAN_HPP_NAMESPACE::FenceCreateInfo36111     FenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36112     {
36113       pNext = pNext_;
36114       return *this;
36115     }
36116 
setFlagsVULKAN_HPP_NAMESPACE::FenceCreateInfo36117     FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36118     {
36119       flags = flags_;
36120       return *this;
36121     }
36122 
36123 
operator VkFenceCreateInfo const&VULKAN_HPP_NAMESPACE::FenceCreateInfo36124     operator VkFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36125     {
36126       return *reinterpret_cast<const VkFenceCreateInfo*>( this );
36127     }
36128 
operator VkFenceCreateInfo&VULKAN_HPP_NAMESPACE::FenceCreateInfo36129     operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
36130     {
36131       return *reinterpret_cast<VkFenceCreateInfo*>( this );
36132     }
36133 
36134 
36135 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36136     auto operator<=>( FenceCreateInfo const& ) const = default;
36137 #else
operator ==VULKAN_HPP_NAMESPACE::FenceCreateInfo36138     bool operator==( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36139     {
36140       return ( sType == rhs.sType )
36141           && ( pNext == rhs.pNext )
36142           && ( flags == rhs.flags );
36143     }
36144 
operator !=VULKAN_HPP_NAMESPACE::FenceCreateInfo36145     bool operator!=( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36146     {
36147       return !operator==( rhs );
36148     }
36149 #endif
36150 
36151 
36152 
36153   public:
36154     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo;
36155     const void* pNext = {};
36156     VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {};
36157 
36158   };
36159   static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" );
36160   static_assert( std::is_standard_layout<FenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
36161 
36162   template <>
36163   struct CppType<StructureType, StructureType::eFenceCreateInfo>
36164   {
36165     using Type = FenceCreateInfo;
36166   };
36167 
36168   struct FramebufferCreateInfo
36169   {
36170     static const bool allowDuplicate = false;
36171     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferCreateInfo;
36172 
36173 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36174     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
36175     : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), width( width_ ), height( height_ ), layers( layers_ )
36176     {}
36177 
36178     VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36179 
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36180     FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36181     {
36182       *this = rhs;
36183     }
36184 
36185 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36186     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_ = {} )
36187     : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), width( width_ ), height( height_ ), layers( layers_ )
36188     {}
36189 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36190 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36191 
operator =VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36192     FramebufferCreateInfo & operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36193     {
36194       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const *>( &rhs );
36195       return *this;
36196     }
36197 
operator =VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36198     FramebufferCreateInfo & operator=( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36199     {
36200       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferCreateInfo ) );
36201       return *this;
36202     }
36203 
setPNextVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36204     FramebufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36205     {
36206       pNext = pNext_;
36207       return *this;
36208     }
36209 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36210     FramebufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36211     {
36212       flags = flags_;
36213       return *this;
36214     }
36215 
setRenderPassVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36216     FramebufferCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
36217     {
36218       renderPass = renderPass_;
36219       return *this;
36220     }
36221 
setAttachmentCountVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36222     FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
36223     {
36224       attachmentCount = attachmentCount_;
36225       return *this;
36226     }
36227 
setPAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36228     FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT
36229     {
36230       pAttachments = pAttachments_;
36231       return *this;
36232     }
36233 
36234 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36235     FramebufferCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
36236     {
36237       attachmentCount = static_cast<uint32_t>( attachments_.size() );
36238       pAttachments = attachments_.data();
36239       return *this;
36240     }
36241 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36242 
setWidthVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36243     FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
36244     {
36245       width = width_;
36246       return *this;
36247     }
36248 
setHeightVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36249     FramebufferCreateInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
36250     {
36251       height = height_;
36252       return *this;
36253     }
36254 
setLayersVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36255     FramebufferCreateInfo & setLayers( uint32_t layers_ ) VULKAN_HPP_NOEXCEPT
36256     {
36257       layers = layers_;
36258       return *this;
36259     }
36260 
36261 
operator VkFramebufferCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36262     operator VkFramebufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36263     {
36264       return *reinterpret_cast<const VkFramebufferCreateInfo*>( this );
36265     }
36266 
operator VkFramebufferCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36267     operator VkFramebufferCreateInfo &() VULKAN_HPP_NOEXCEPT
36268     {
36269       return *reinterpret_cast<VkFramebufferCreateInfo*>( this );
36270     }
36271 
36272 
36273 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36274     auto operator<=>( FramebufferCreateInfo const& ) const = default;
36275 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36276     bool operator==( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36277     {
36278       return ( sType == rhs.sType )
36279           && ( pNext == rhs.pNext )
36280           && ( flags == rhs.flags )
36281           && ( renderPass == rhs.renderPass )
36282           && ( attachmentCount == rhs.attachmentCount )
36283           && ( pAttachments == rhs.pAttachments )
36284           && ( width == rhs.width )
36285           && ( height == rhs.height )
36286           && ( layers == rhs.layers );
36287     }
36288 
operator !=VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36289     bool operator!=( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36290     {
36291       return !operator==( rhs );
36292     }
36293 #endif
36294 
36295 
36296 
36297   public:
36298     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo;
36299     const void* pNext = {};
36300     VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {};
36301     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
36302     uint32_t attachmentCount = {};
36303     const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {};
36304     uint32_t width = {};
36305     uint32_t height = {};
36306     uint32_t layers = {};
36307 
36308   };
36309   static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), "struct and wrapper have different size!" );
36310   static_assert( std::is_standard_layout<FramebufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
36311 
36312   template <>
36313   struct CppType<StructureType, StructureType::eFramebufferCreateInfo>
36314   {
36315     using Type = FramebufferCreateInfo;
36316   };
36317 
36318   struct VertexInputBindingDescription
36319   {
36320 
36321 
36322 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36323     VULKAN_HPP_CONSTEXPR VertexInputBindingDescription(uint32_t binding_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex) VULKAN_HPP_NOEXCEPT
36324     : binding( binding_ ), stride( stride_ ), inputRate( inputRate_ )
36325     {}
36326 
36327     VULKAN_HPP_CONSTEXPR VertexInputBindingDescription( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36328 
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36329     VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36330     {
36331       *this = rhs;
36332     }
36333 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36334 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36335     VertexInputBindingDescription & operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36336     {
36337       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const *>( &rhs );
36338       return *this;
36339     }
36340 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36341     VertexInputBindingDescription & operator=( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36342     {
36343       memcpy( static_cast<void *>( this ), &rhs, sizeof( VertexInputBindingDescription ) );
36344       return *this;
36345     }
36346 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36347     VertexInputBindingDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
36348     {
36349       binding = binding_;
36350       return *this;
36351     }
36352 
setStrideVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36353     VertexInputBindingDescription & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
36354     {
36355       stride = stride_;
36356       return *this;
36357     }
36358 
setInputRateVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36359     VertexInputBindingDescription & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT
36360     {
36361       inputRate = inputRate_;
36362       return *this;
36363     }
36364 
36365 
operator VkVertexInputBindingDescription const&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36366     operator VkVertexInputBindingDescription const&() const VULKAN_HPP_NOEXCEPT
36367     {
36368       return *reinterpret_cast<const VkVertexInputBindingDescription*>( this );
36369     }
36370 
operator VkVertexInputBindingDescription&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36371     operator VkVertexInputBindingDescription &() VULKAN_HPP_NOEXCEPT
36372     {
36373       return *reinterpret_cast<VkVertexInputBindingDescription*>( this );
36374     }
36375 
36376 
36377 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36378     auto operator<=>( VertexInputBindingDescription const& ) const = default;
36379 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36380     bool operator==( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36381     {
36382       return ( binding == rhs.binding )
36383           && ( stride == rhs.stride )
36384           && ( inputRate == rhs.inputRate );
36385     }
36386 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36387     bool operator!=( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36388     {
36389       return !operator==( rhs );
36390     }
36391 #endif
36392 
36393 
36394 
36395   public:
36396     uint32_t binding = {};
36397     uint32_t stride = {};
36398     VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex;
36399 
36400   };
36401   static_assert( sizeof( VertexInputBindingDescription ) == sizeof( VkVertexInputBindingDescription ), "struct and wrapper have different size!" );
36402   static_assert( std::is_standard_layout<VertexInputBindingDescription>::value, "struct wrapper is not a standard layout!" );
36403 
36404   struct VertexInputAttributeDescription
36405   {
36406 
36407 
36408 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36409     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
36410     : location( location_ ), binding( binding_ ), format( format_ ), offset( offset_ )
36411     {}
36412 
36413     VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36414 
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36415     VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36416     {
36417       *this = rhs;
36418     }
36419 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36420 
operator =VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36421     VertexInputAttributeDescription & operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36422     {
36423       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription const *>( &rhs );
36424       return *this;
36425     }
36426 
operator =VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36427     VertexInputAttributeDescription & operator=( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36428     {
36429       memcpy( static_cast<void *>( this ), &rhs, sizeof( VertexInputAttributeDescription ) );
36430       return *this;
36431     }
36432 
setLocationVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36433     VertexInputAttributeDescription & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
36434     {
36435       location = location_;
36436       return *this;
36437     }
36438 
setBindingVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36439     VertexInputAttributeDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
36440     {
36441       binding = binding_;
36442       return *this;
36443     }
36444 
setFormatVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36445     VertexInputAttributeDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
36446     {
36447       format = format_;
36448       return *this;
36449     }
36450 
setOffsetVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36451     VertexInputAttributeDescription & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
36452     {
36453       offset = offset_;
36454       return *this;
36455     }
36456 
36457 
operator VkVertexInputAttributeDescription const&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36458     operator VkVertexInputAttributeDescription const&() const VULKAN_HPP_NOEXCEPT
36459     {
36460       return *reinterpret_cast<const VkVertexInputAttributeDescription*>( this );
36461     }
36462 
operator VkVertexInputAttributeDescription&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36463     operator VkVertexInputAttributeDescription &() VULKAN_HPP_NOEXCEPT
36464     {
36465       return *reinterpret_cast<VkVertexInputAttributeDescription*>( this );
36466     }
36467 
36468 
36469 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36470     auto operator<=>( VertexInputAttributeDescription const& ) const = default;
36471 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36472     bool operator==( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36473     {
36474       return ( location == rhs.location )
36475           && ( binding == rhs.binding )
36476           && ( format == rhs.format )
36477           && ( offset == rhs.offset );
36478     }
36479 
operator !=VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36480     bool operator!=( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36481     {
36482       return !operator==( rhs );
36483     }
36484 #endif
36485 
36486 
36487 
36488   public:
36489     uint32_t location = {};
36490     uint32_t binding = {};
36491     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
36492     uint32_t offset = {};
36493 
36494   };
36495   static_assert( sizeof( VertexInputAttributeDescription ) == sizeof( VkVertexInputAttributeDescription ), "struct and wrapper have different size!" );
36496   static_assert( std::is_standard_layout<VertexInputAttributeDescription>::value, "struct wrapper is not a standard layout!" );
36497 
36498   struct PipelineVertexInputStateCreateInfo
36499   {
36500     static const bool allowDuplicate = false;
36501     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputStateCreateInfo;
36502 
36503 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36504     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
36505     : flags( flags_ ), vertexBindingDescriptionCount( vertexBindingDescriptionCount_ ), pVertexBindingDescriptions( pVertexBindingDescriptions_ ), vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ ), pVertexAttributeDescriptions( pVertexAttributeDescriptions_ )
36506     {}
36507 
36508     VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36509 
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36510     PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36511     {
36512       *this = rhs;
36513     }
36514 
36515 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36516     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_ = {} )
36517     : flags( flags_ ), vertexBindingDescriptionCount( static_cast<uint32_t>( vertexBindingDescriptions_.size() ) ), pVertexBindingDescriptions( vertexBindingDescriptions_.data() ), vertexAttributeDescriptionCount( static_cast<uint32_t>( vertexAttributeDescriptions_.size() ) ), pVertexAttributeDescriptions( vertexAttributeDescriptions_.data() )
36518     {}
36519 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36520 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36521 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36522     PipelineVertexInputStateCreateInfo & operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36523     {
36524       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo const *>( &rhs );
36525       return *this;
36526     }
36527 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36528     PipelineVertexInputStateCreateInfo & operator=( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36529     {
36530       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineVertexInputStateCreateInfo ) );
36531       return *this;
36532     }
36533 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36534     PipelineVertexInputStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36535     {
36536       pNext = pNext_;
36537       return *this;
36538     }
36539 
setFlagsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36540     PipelineVertexInputStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36541     {
36542       flags = flags_;
36543       return *this;
36544     }
36545 
setVertexBindingDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36546     PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
36547     {
36548       vertexBindingDescriptionCount = vertexBindingDescriptionCount_;
36549       return *this;
36550     }
36551 
setPVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36552     PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
36553     {
36554       pVertexBindingDescriptions = pVertexBindingDescriptions_;
36555       return *this;
36556     }
36557 
36558 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36559     PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const & vertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
36560     {
36561       vertexBindingDescriptionCount = static_cast<uint32_t>( vertexBindingDescriptions_.size() );
36562       pVertexBindingDescriptions = vertexBindingDescriptions_.data();
36563       return *this;
36564     }
36565 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36566 
setVertexAttributeDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36567     PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
36568     {
36569       vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_;
36570       return *this;
36571     }
36572 
setPVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36573     PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
36574     {
36575       pVertexAttributeDescriptions = pVertexAttributeDescriptions_;
36576       return *this;
36577     }
36578 
36579 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36580     PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const & vertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
36581     {
36582       vertexAttributeDescriptionCount = static_cast<uint32_t>( vertexAttributeDescriptions_.size() );
36583       pVertexAttributeDescriptions = vertexAttributeDescriptions_.data();
36584       return *this;
36585     }
36586 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36587 
36588 
operator VkPipelineVertexInputStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36589     operator VkPipelineVertexInputStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36590     {
36591       return *reinterpret_cast<const VkPipelineVertexInputStateCreateInfo*>( this );
36592     }
36593 
operator VkPipelineVertexInputStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36594     operator VkPipelineVertexInputStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36595     {
36596       return *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>( this );
36597     }
36598 
36599 
36600 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36601     auto operator<=>( PipelineVertexInputStateCreateInfo const& ) const = default;
36602 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36603     bool operator==( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36604     {
36605       return ( sType == rhs.sType )
36606           && ( pNext == rhs.pNext )
36607           && ( flags == rhs.flags )
36608           && ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount )
36609           && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions )
36610           && ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount )
36611           && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions );
36612     }
36613 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36614     bool operator!=( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36615     {
36616       return !operator==( rhs );
36617     }
36618 #endif
36619 
36620 
36621 
36622   public:
36623     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo;
36624     const void* pNext = {};
36625     VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {};
36626     uint32_t vertexBindingDescriptionCount = {};
36627     const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions = {};
36628     uint32_t vertexAttributeDescriptionCount = {};
36629     const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions = {};
36630 
36631   };
36632   static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), "struct and wrapper have different size!" );
36633   static_assert( std::is_standard_layout<PipelineVertexInputStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
36634 
36635   template <>
36636   struct CppType<StructureType, StructureType::ePipelineVertexInputStateCreateInfo>
36637   {
36638     using Type = PipelineVertexInputStateCreateInfo;
36639   };
36640 
36641   struct PipelineInputAssemblyStateCreateInfo
36642   {
36643     static const bool allowDuplicate = false;
36644     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInputAssemblyStateCreateInfo;
36645 
36646 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36647     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
36648     : flags( flags_ ), topology( topology_ ), primitiveRestartEnable( primitiveRestartEnable_ )
36649     {}
36650 
36651     VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36652 
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36653     PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36654     {
36655       *this = rhs;
36656     }
36657 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36658 
operator =VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36659     PipelineInputAssemblyStateCreateInfo & operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36660     {
36661       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo const *>( &rhs );
36662       return *this;
36663     }
36664 
operator =VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36665     PipelineInputAssemblyStateCreateInfo & operator=( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36666     {
36667       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineInputAssemblyStateCreateInfo ) );
36668       return *this;
36669     }
36670 
setPNextVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36671     PipelineInputAssemblyStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36672     {
36673       pNext = pNext_;
36674       return *this;
36675     }
36676 
setFlagsVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36677     PipelineInputAssemblyStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36678     {
36679       flags = flags_;
36680       return *this;
36681     }
36682 
setTopologyVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36683     PipelineInputAssemblyStateCreateInfo & setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT
36684     {
36685       topology = topology_;
36686       return *this;
36687     }
36688 
setPrimitiveRestartEnableVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36689     PipelineInputAssemblyStateCreateInfo & setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT
36690     {
36691       primitiveRestartEnable = primitiveRestartEnable_;
36692       return *this;
36693     }
36694 
36695 
operator VkPipelineInputAssemblyStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36696     operator VkPipelineInputAssemblyStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36697     {
36698       return *reinterpret_cast<const VkPipelineInputAssemblyStateCreateInfo*>( this );
36699     }
36700 
operator VkPipelineInputAssemblyStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36701     operator VkPipelineInputAssemblyStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36702     {
36703       return *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>( this );
36704     }
36705 
36706 
36707 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36708     auto operator<=>( PipelineInputAssemblyStateCreateInfo const& ) const = default;
36709 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36710     bool operator==( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36711     {
36712       return ( sType == rhs.sType )
36713           && ( pNext == rhs.pNext )
36714           && ( flags == rhs.flags )
36715           && ( topology == rhs.topology )
36716           && ( primitiveRestartEnable == rhs.primitiveRestartEnable );
36717     }
36718 
operator !=VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36719     bool operator!=( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36720     {
36721       return !operator==( rhs );
36722     }
36723 #endif
36724 
36725 
36726 
36727   public:
36728     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo;
36729     const void* pNext = {};
36730     VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags = {};
36731     VULKAN_HPP_NAMESPACE::PrimitiveTopology topology = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList;
36732     VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {};
36733 
36734   };
36735   static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), "struct and wrapper have different size!" );
36736   static_assert( std::is_standard_layout<PipelineInputAssemblyStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
36737 
36738   template <>
36739   struct CppType<StructureType, StructureType::ePipelineInputAssemblyStateCreateInfo>
36740   {
36741     using Type = PipelineInputAssemblyStateCreateInfo;
36742   };
36743 
36744   struct PipelineTessellationStateCreateInfo
36745   {
36746     static const bool allowDuplicate = false;
36747     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationStateCreateInfo;
36748 
36749 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36750     VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {}, uint32_t patchControlPoints_ = {}) VULKAN_HPP_NOEXCEPT
36751     : flags( flags_ ), patchControlPoints( patchControlPoints_ )
36752     {}
36753 
36754     VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36755 
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36756     PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36757     {
36758       *this = rhs;
36759     }
36760 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36761 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36762     PipelineTessellationStateCreateInfo & operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36763     {
36764       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo const *>( &rhs );
36765       return *this;
36766     }
36767 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36768     PipelineTessellationStateCreateInfo & operator=( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36769     {
36770       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineTessellationStateCreateInfo ) );
36771       return *this;
36772     }
36773 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36774     PipelineTessellationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36775     {
36776       pNext = pNext_;
36777       return *this;
36778     }
36779 
setFlagsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36780     PipelineTessellationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36781     {
36782       flags = flags_;
36783       return *this;
36784     }
36785 
setPatchControlPointsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36786     PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ ) VULKAN_HPP_NOEXCEPT
36787     {
36788       patchControlPoints = patchControlPoints_;
36789       return *this;
36790     }
36791 
36792 
operator VkPipelineTessellationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36793     operator VkPipelineTessellationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36794     {
36795       return *reinterpret_cast<const VkPipelineTessellationStateCreateInfo*>( this );
36796     }
36797 
operator VkPipelineTessellationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36798     operator VkPipelineTessellationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36799     {
36800       return *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>( this );
36801     }
36802 
36803 
36804 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36805     auto operator<=>( PipelineTessellationStateCreateInfo const& ) const = default;
36806 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36807     bool operator==( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36808     {
36809       return ( sType == rhs.sType )
36810           && ( pNext == rhs.pNext )
36811           && ( flags == rhs.flags )
36812           && ( patchControlPoints == rhs.patchControlPoints );
36813     }
36814 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36815     bool operator!=( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36816     {
36817       return !operator==( rhs );
36818     }
36819 #endif
36820 
36821 
36822 
36823   public:
36824     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo;
36825     const void* pNext = {};
36826     VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {};
36827     uint32_t patchControlPoints = {};
36828 
36829   };
36830   static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), "struct and wrapper have different size!" );
36831   static_assert( std::is_standard_layout<PipelineTessellationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
36832 
36833   template <>
36834   struct CppType<StructureType, StructureType::ePipelineTessellationStateCreateInfo>
36835   {
36836     using Type = PipelineTessellationStateCreateInfo;
36837   };
36838 
36839   struct PipelineViewportStateCreateInfo
36840   {
36841     static const bool allowDuplicate = false;
36842     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportStateCreateInfo;
36843 
36844 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36845     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
36846     : flags( flags_ ), viewportCount( viewportCount_ ), pViewports( pViewports_ ), scissorCount( scissorCount_ ), pScissors( pScissors_ )
36847     {}
36848 
36849     VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36850 
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36851     PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36852     {
36853       *this = rhs;
36854     }
36855 
36856 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36857     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_ = {} )
36858     : flags( flags_ ), viewportCount( static_cast<uint32_t>( viewports_.size() ) ), pViewports( viewports_.data() ), scissorCount( static_cast<uint32_t>( scissors_.size() ) ), pScissors( scissors_.data() )
36859     {}
36860 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36861 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36862 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36863     PipelineViewportStateCreateInfo & operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36864     {
36865       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo const *>( &rhs );
36866       return *this;
36867     }
36868 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36869     PipelineViewportStateCreateInfo & operator=( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36870     {
36871       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportStateCreateInfo ) );
36872       return *this;
36873     }
36874 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36875     PipelineViewportStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36876     {
36877       pNext = pNext_;
36878       return *this;
36879     }
36880 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36881     PipelineViewportStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36882     {
36883       flags = flags_;
36884       return *this;
36885     }
36886 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36887     PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
36888     {
36889       viewportCount = viewportCount_;
36890       return *this;
36891     }
36892 
setPViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36893     PipelineViewportStateCreateInfo & setPViewports( const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ ) VULKAN_HPP_NOEXCEPT
36894     {
36895       pViewports = pViewports_;
36896       return *this;
36897     }
36898 
36899 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36900     PipelineViewportStateCreateInfo & setViewports( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_ ) VULKAN_HPP_NOEXCEPT
36901     {
36902       viewportCount = static_cast<uint32_t>( viewports_.size() );
36903       pViewports = viewports_.data();
36904       return *this;
36905     }
36906 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36907 
setScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36908     PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT
36909     {
36910       scissorCount = scissorCount_;
36911       return *this;
36912     }
36913 
setPScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36914     PipelineViewportStateCreateInfo & setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ ) VULKAN_HPP_NOEXCEPT
36915     {
36916       pScissors = pScissors_;
36917       return *this;
36918     }
36919 
36920 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36921     PipelineViewportStateCreateInfo & setScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ ) VULKAN_HPP_NOEXCEPT
36922     {
36923       scissorCount = static_cast<uint32_t>( scissors_.size() );
36924       pScissors = scissors_.data();
36925       return *this;
36926     }
36927 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36928 
36929 
operator VkPipelineViewportStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36930     operator VkPipelineViewportStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36931     {
36932       return *reinterpret_cast<const VkPipelineViewportStateCreateInfo*>( this );
36933     }
36934 
operator VkPipelineViewportStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36935     operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36936     {
36937       return *reinterpret_cast<VkPipelineViewportStateCreateInfo*>( this );
36938     }
36939 
36940 
36941 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36942     auto operator<=>( PipelineViewportStateCreateInfo const& ) const = default;
36943 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36944     bool operator==( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36945     {
36946       return ( sType == rhs.sType )
36947           && ( pNext == rhs.pNext )
36948           && ( flags == rhs.flags )
36949           && ( viewportCount == rhs.viewportCount )
36950           && ( pViewports == rhs.pViewports )
36951           && ( scissorCount == rhs.scissorCount )
36952           && ( pScissors == rhs.pScissors );
36953     }
36954 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36955     bool operator!=( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36956     {
36957       return !operator==( rhs );
36958     }
36959 #endif
36960 
36961 
36962 
36963   public:
36964     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo;
36965     const void* pNext = {};
36966     VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {};
36967     uint32_t viewportCount = {};
36968     const VULKAN_HPP_NAMESPACE::Viewport* pViewports = {};
36969     uint32_t scissorCount = {};
36970     const VULKAN_HPP_NAMESPACE::Rect2D* pScissors = {};
36971 
36972   };
36973   static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), "struct and wrapper have different size!" );
36974   static_assert( std::is_standard_layout<PipelineViewportStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
36975 
36976   template <>
36977   struct CppType<StructureType, StructureType::ePipelineViewportStateCreateInfo>
36978   {
36979     using Type = PipelineViewportStateCreateInfo;
36980   };
36981 
36982   struct PipelineRasterizationStateCreateInfo
36983   {
36984     static const bool allowDuplicate = false;
36985     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateCreateInfo;
36986 
36987 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36988     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
36989     : flags( flags_ ), depthClampEnable( depthClampEnable_ ), rasterizerDiscardEnable( rasterizerDiscardEnable_ ), polygonMode( polygonMode_ ), cullMode( cullMode_ ), frontFace( frontFace_ ), depthBiasEnable( depthBiasEnable_ ), depthBiasConstantFactor( depthBiasConstantFactor_ ), depthBiasClamp( depthBiasClamp_ ), depthBiasSlopeFactor( depthBiasSlopeFactor_ ), lineWidth( lineWidth_ )
36990     {}
36991 
36992     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36993 
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36994     PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36995     {
36996       *this = rhs;
36997     }
36998 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36999 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37000     PipelineRasterizationStateCreateInfo & operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37001     {
37002       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo const *>( &rhs );
37003       return *this;
37004     }
37005 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37006     PipelineRasterizationStateCreateInfo & operator=( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37007     {
37008       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationStateCreateInfo ) );
37009       return *this;
37010     }
37011 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37012     PipelineRasterizationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37013     {
37014       pNext = pNext_;
37015       return *this;
37016     }
37017 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37018     PipelineRasterizationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37019     {
37020       flags = flags_;
37021       return *this;
37022     }
37023 
setDepthClampEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37024     PipelineRasterizationStateCreateInfo & setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT
37025     {
37026       depthClampEnable = depthClampEnable_;
37027       return *this;
37028     }
37029 
setRasterizerDiscardEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37030     PipelineRasterizationStateCreateInfo & setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT
37031     {
37032       rasterizerDiscardEnable = rasterizerDiscardEnable_;
37033       return *this;
37034     }
37035 
setPolygonModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37036     PipelineRasterizationStateCreateInfo & setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT
37037     {
37038       polygonMode = polygonMode_;
37039       return *this;
37040     }
37041 
setCullModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37042     PipelineRasterizationStateCreateInfo & setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT
37043     {
37044       cullMode = cullMode_;
37045       return *this;
37046     }
37047 
setFrontFaceVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37048     PipelineRasterizationStateCreateInfo & setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT
37049     {
37050       frontFace = frontFace_;
37051       return *this;
37052     }
37053 
setDepthBiasEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37054     PipelineRasterizationStateCreateInfo & setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT
37055     {
37056       depthBiasEnable = depthBiasEnable_;
37057       return *this;
37058     }
37059 
setDepthBiasConstantFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37060     PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT
37061     {
37062       depthBiasConstantFactor = depthBiasConstantFactor_;
37063       return *this;
37064     }
37065 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37066     PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
37067     {
37068       depthBiasClamp = depthBiasClamp_;
37069       return *this;
37070     }
37071 
setDepthBiasSlopeFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37072     PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT
37073     {
37074       depthBiasSlopeFactor = depthBiasSlopeFactor_;
37075       return *this;
37076     }
37077 
setLineWidthVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37078     PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ ) VULKAN_HPP_NOEXCEPT
37079     {
37080       lineWidth = lineWidth_;
37081       return *this;
37082     }
37083 
37084 
operator VkPipelineRasterizationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37085     operator VkPipelineRasterizationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37086     {
37087       return *reinterpret_cast<const VkPipelineRasterizationStateCreateInfo*>( this );
37088     }
37089 
operator VkPipelineRasterizationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37090     operator VkPipelineRasterizationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37091     {
37092       return *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>( this );
37093     }
37094 
37095 
37096 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37097     auto operator<=>( PipelineRasterizationStateCreateInfo const& ) const = default;
37098 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37099     bool operator==( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37100     {
37101       return ( sType == rhs.sType )
37102           && ( pNext == rhs.pNext )
37103           && ( flags == rhs.flags )
37104           && ( depthClampEnable == rhs.depthClampEnable )
37105           && ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable )
37106           && ( polygonMode == rhs.polygonMode )
37107           && ( cullMode == rhs.cullMode )
37108           && ( frontFace == rhs.frontFace )
37109           && ( depthBiasEnable == rhs.depthBiasEnable )
37110           && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor )
37111           && ( depthBiasClamp == rhs.depthBiasClamp )
37112           && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor )
37113           && ( lineWidth == rhs.lineWidth );
37114     }
37115 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37116     bool operator!=( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37117     {
37118       return !operator==( rhs );
37119     }
37120 #endif
37121 
37122 
37123 
37124   public:
37125     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo;
37126     const void* pNext = {};
37127     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {};
37128     VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {};
37129     VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {};
37130     VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill;
37131     VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {};
37132     VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise;
37133     VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {};
37134     float depthBiasConstantFactor = {};
37135     float depthBiasClamp = {};
37136     float depthBiasSlopeFactor = {};
37137     float lineWidth = {};
37138 
37139   };
37140   static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), "struct and wrapper have different size!" );
37141   static_assert( std::is_standard_layout<PipelineRasterizationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37142 
37143   template <>
37144   struct CppType<StructureType, StructureType::ePipelineRasterizationStateCreateInfo>
37145   {
37146     using Type = PipelineRasterizationStateCreateInfo;
37147   };
37148 
37149   struct PipelineMultisampleStateCreateInfo
37150   {
37151     static const bool allowDuplicate = false;
37152     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineMultisampleStateCreateInfo;
37153 
37154 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37155     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
37156     : flags( flags_ ), rasterizationSamples( rasterizationSamples_ ), sampleShadingEnable( sampleShadingEnable_ ), minSampleShading( minSampleShading_ ), pSampleMask( pSampleMask_ ), alphaToCoverageEnable( alphaToCoverageEnable_ ), alphaToOneEnable( alphaToOneEnable_ )
37157     {}
37158 
37159     VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37160 
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37161     PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37162     {
37163       *this = rhs;
37164     }
37165 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37166 
operator =VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37167     PipelineMultisampleStateCreateInfo & operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37168     {
37169       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo const *>( &rhs );
37170       return *this;
37171     }
37172 
operator =VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37173     PipelineMultisampleStateCreateInfo & operator=( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37174     {
37175       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineMultisampleStateCreateInfo ) );
37176       return *this;
37177     }
37178 
setPNextVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37179     PipelineMultisampleStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37180     {
37181       pNext = pNext_;
37182       return *this;
37183     }
37184 
setFlagsVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37185     PipelineMultisampleStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37186     {
37187       flags = flags_;
37188       return *this;
37189     }
37190 
setRasterizationSamplesVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37191     PipelineMultisampleStateCreateInfo & setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
37192     {
37193       rasterizationSamples = rasterizationSamples_;
37194       return *this;
37195     }
37196 
setSampleShadingEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37197     PipelineMultisampleStateCreateInfo & setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT
37198     {
37199       sampleShadingEnable = sampleShadingEnable_;
37200       return *this;
37201     }
37202 
setMinSampleShadingVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37203     PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ ) VULKAN_HPP_NOEXCEPT
37204     {
37205       minSampleShading = minSampleShading_;
37206       return *this;
37207     }
37208 
setPSampleMaskVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37209     PipelineMultisampleStateCreateInfo & setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ ) VULKAN_HPP_NOEXCEPT
37210     {
37211       pSampleMask = pSampleMask_;
37212       return *this;
37213     }
37214 
setAlphaToCoverageEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37215     PipelineMultisampleStateCreateInfo & setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
37216     {
37217       alphaToCoverageEnable = alphaToCoverageEnable_;
37218       return *this;
37219     }
37220 
setAlphaToOneEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37221     PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
37222     {
37223       alphaToOneEnable = alphaToOneEnable_;
37224       return *this;
37225     }
37226 
37227 
operator VkPipelineMultisampleStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37228     operator VkPipelineMultisampleStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37229     {
37230       return *reinterpret_cast<const VkPipelineMultisampleStateCreateInfo*>( this );
37231     }
37232 
operator VkPipelineMultisampleStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37233     operator VkPipelineMultisampleStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37234     {
37235       return *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>( this );
37236     }
37237 
37238 
37239 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37240     auto operator<=>( PipelineMultisampleStateCreateInfo const& ) const = default;
37241 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37242     bool operator==( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37243     {
37244       return ( sType == rhs.sType )
37245           && ( pNext == rhs.pNext )
37246           && ( flags == rhs.flags )
37247           && ( rasterizationSamples == rhs.rasterizationSamples )
37248           && ( sampleShadingEnable == rhs.sampleShadingEnable )
37249           && ( minSampleShading == rhs.minSampleShading )
37250           && ( pSampleMask == rhs.pSampleMask )
37251           && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable )
37252           && ( alphaToOneEnable == rhs.alphaToOneEnable );
37253     }
37254 
operator !=VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37255     bool operator!=( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37256     {
37257       return !operator==( rhs );
37258     }
37259 #endif
37260 
37261 
37262 
37263   public:
37264     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo;
37265     const void* pNext = {};
37266     VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags = {};
37267     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
37268     VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {};
37269     float minSampleShading = {};
37270     const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask = {};
37271     VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {};
37272     VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {};
37273 
37274   };
37275   static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), "struct and wrapper have different size!" );
37276   static_assert( std::is_standard_layout<PipelineMultisampleStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37277 
37278   template <>
37279   struct CppType<StructureType, StructureType::ePipelineMultisampleStateCreateInfo>
37280   {
37281     using Type = PipelineMultisampleStateCreateInfo;
37282   };
37283 
37284   struct StencilOpState
37285   {
37286 
37287 
37288 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState37289     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
37290     : failOp( failOp_ ), passOp( passOp_ ), depthFailOp( depthFailOp_ ), compareOp( compareOp_ ), compareMask( compareMask_ ), writeMask( writeMask_ ), reference( reference_ )
37291     {}
37292 
37293     VULKAN_HPP_CONSTEXPR StencilOpState( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37294 
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState37295     StencilOpState( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
37296     {
37297       *this = rhs;
37298     }
37299 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37300 
operator =VULKAN_HPP_NAMESPACE::StencilOpState37301     StencilOpState & operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
37302     {
37303       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StencilOpState const *>( &rhs );
37304       return *this;
37305     }
37306 
operator =VULKAN_HPP_NAMESPACE::StencilOpState37307     StencilOpState & operator=( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
37308     {
37309       memcpy( static_cast<void *>( this ), &rhs, sizeof( StencilOpState ) );
37310       return *this;
37311     }
37312 
setFailOpVULKAN_HPP_NAMESPACE::StencilOpState37313     StencilOpState & setFailOp( VULKAN_HPP_NAMESPACE::StencilOp failOp_ ) VULKAN_HPP_NOEXCEPT
37314     {
37315       failOp = failOp_;
37316       return *this;
37317     }
37318 
setPassOpVULKAN_HPP_NAMESPACE::StencilOpState37319     StencilOpState & setPassOp( VULKAN_HPP_NAMESPACE::StencilOp passOp_ ) VULKAN_HPP_NOEXCEPT
37320     {
37321       passOp = passOp_;
37322       return *this;
37323     }
37324 
setDepthFailOpVULKAN_HPP_NAMESPACE::StencilOpState37325     StencilOpState & setDepthFailOp( VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ ) VULKAN_HPP_NOEXCEPT
37326     {
37327       depthFailOp = depthFailOp_;
37328       return *this;
37329     }
37330 
setCompareOpVULKAN_HPP_NAMESPACE::StencilOpState37331     StencilOpState & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
37332     {
37333       compareOp = compareOp_;
37334       return *this;
37335     }
37336 
setCompareMaskVULKAN_HPP_NAMESPACE::StencilOpState37337     StencilOpState & setCompareMask( uint32_t compareMask_ ) VULKAN_HPP_NOEXCEPT
37338     {
37339       compareMask = compareMask_;
37340       return *this;
37341     }
37342 
setWriteMaskVULKAN_HPP_NAMESPACE::StencilOpState37343     StencilOpState & setWriteMask( uint32_t writeMask_ ) VULKAN_HPP_NOEXCEPT
37344     {
37345       writeMask = writeMask_;
37346       return *this;
37347     }
37348 
setReferenceVULKAN_HPP_NAMESPACE::StencilOpState37349     StencilOpState & setReference( uint32_t reference_ ) VULKAN_HPP_NOEXCEPT
37350     {
37351       reference = reference_;
37352       return *this;
37353     }
37354 
37355 
operator VkStencilOpState const&VULKAN_HPP_NAMESPACE::StencilOpState37356     operator VkStencilOpState const&() const VULKAN_HPP_NOEXCEPT
37357     {
37358       return *reinterpret_cast<const VkStencilOpState*>( this );
37359     }
37360 
operator VkStencilOpState&VULKAN_HPP_NAMESPACE::StencilOpState37361     operator VkStencilOpState &() VULKAN_HPP_NOEXCEPT
37362     {
37363       return *reinterpret_cast<VkStencilOpState*>( this );
37364     }
37365 
37366 
37367 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37368     auto operator<=>( StencilOpState const& ) const = default;
37369 #else
operator ==VULKAN_HPP_NAMESPACE::StencilOpState37370     bool operator==( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT
37371     {
37372       return ( failOp == rhs.failOp )
37373           && ( passOp == rhs.passOp )
37374           && ( depthFailOp == rhs.depthFailOp )
37375           && ( compareOp == rhs.compareOp )
37376           && ( compareMask == rhs.compareMask )
37377           && ( writeMask == rhs.writeMask )
37378           && ( reference == rhs.reference );
37379     }
37380 
operator !=VULKAN_HPP_NAMESPACE::StencilOpState37381     bool operator!=( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT
37382     {
37383       return !operator==( rhs );
37384     }
37385 #endif
37386 
37387 
37388 
37389   public:
37390     VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37391     VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37392     VULKAN_HPP_NAMESPACE::StencilOp depthFailOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37393     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
37394     uint32_t compareMask = {};
37395     uint32_t writeMask = {};
37396     uint32_t reference = {};
37397 
37398   };
37399   static_assert( sizeof( StencilOpState ) == sizeof( VkStencilOpState ), "struct and wrapper have different size!" );
37400   static_assert( std::is_standard_layout<StencilOpState>::value, "struct wrapper is not a standard layout!" );
37401 
37402   struct PipelineDepthStencilStateCreateInfo
37403   {
37404     static const bool allowDuplicate = false;
37405     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDepthStencilStateCreateInfo;
37406 
37407 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37408     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
37409     : flags( flags_ ), depthTestEnable( depthTestEnable_ ), depthWriteEnable( depthWriteEnable_ ), depthCompareOp( depthCompareOp_ ), depthBoundsTestEnable( depthBoundsTestEnable_ ), stencilTestEnable( stencilTestEnable_ ), front( front_ ), back( back_ ), minDepthBounds( minDepthBounds_ ), maxDepthBounds( maxDepthBounds_ )
37410     {}
37411 
37412     VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37413 
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37414     PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37415     {
37416       *this = rhs;
37417     }
37418 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37419 
operator =VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37420     PipelineDepthStencilStateCreateInfo & operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37421     {
37422       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo const *>( &rhs );
37423       return *this;
37424     }
37425 
operator =VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37426     PipelineDepthStencilStateCreateInfo & operator=( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37427     {
37428       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineDepthStencilStateCreateInfo ) );
37429       return *this;
37430     }
37431 
setPNextVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37432     PipelineDepthStencilStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37433     {
37434       pNext = pNext_;
37435       return *this;
37436     }
37437 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37438     PipelineDepthStencilStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37439     {
37440       flags = flags_;
37441       return *this;
37442     }
37443 
setDepthTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37444     PipelineDepthStencilStateCreateInfo & setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT
37445     {
37446       depthTestEnable = depthTestEnable_;
37447       return *this;
37448     }
37449 
setDepthWriteEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37450     PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT
37451     {
37452       depthWriteEnable = depthWriteEnable_;
37453       return *this;
37454     }
37455 
setDepthCompareOpVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37456     PipelineDepthStencilStateCreateInfo & setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT
37457     {
37458       depthCompareOp = depthCompareOp_;
37459       return *this;
37460     }
37461 
setDepthBoundsTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37462     PipelineDepthStencilStateCreateInfo & setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT
37463     {
37464       depthBoundsTestEnable = depthBoundsTestEnable_;
37465       return *this;
37466     }
37467 
setStencilTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37468     PipelineDepthStencilStateCreateInfo & setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT
37469     {
37470       stencilTestEnable = stencilTestEnable_;
37471       return *this;
37472     }
37473 
setFrontVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37474     PipelineDepthStencilStateCreateInfo & setFront( VULKAN_HPP_NAMESPACE::StencilOpState const & front_ ) VULKAN_HPP_NOEXCEPT
37475     {
37476       front = front_;
37477       return *this;
37478     }
37479 
setBackVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37480     PipelineDepthStencilStateCreateInfo & setBack( VULKAN_HPP_NAMESPACE::StencilOpState const & back_ ) VULKAN_HPP_NOEXCEPT
37481     {
37482       back = back_;
37483       return *this;
37484     }
37485 
setMinDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37486     PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ ) VULKAN_HPP_NOEXCEPT
37487     {
37488       minDepthBounds = minDepthBounds_;
37489       return *this;
37490     }
37491 
setMaxDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37492     PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ ) VULKAN_HPP_NOEXCEPT
37493     {
37494       maxDepthBounds = maxDepthBounds_;
37495       return *this;
37496     }
37497 
37498 
operator VkPipelineDepthStencilStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37499     operator VkPipelineDepthStencilStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37500     {
37501       return *reinterpret_cast<const VkPipelineDepthStencilStateCreateInfo*>( this );
37502     }
37503 
operator VkPipelineDepthStencilStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37504     operator VkPipelineDepthStencilStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37505     {
37506       return *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>( this );
37507     }
37508 
37509 
37510 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37511     auto operator<=>( PipelineDepthStencilStateCreateInfo const& ) const = default;
37512 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37513     bool operator==( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37514     {
37515       return ( sType == rhs.sType )
37516           && ( pNext == rhs.pNext )
37517           && ( flags == rhs.flags )
37518           && ( depthTestEnable == rhs.depthTestEnable )
37519           && ( depthWriteEnable == rhs.depthWriteEnable )
37520           && ( depthCompareOp == rhs.depthCompareOp )
37521           && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable )
37522           && ( stencilTestEnable == rhs.stencilTestEnable )
37523           && ( front == rhs.front )
37524           && ( back == rhs.back )
37525           && ( minDepthBounds == rhs.minDepthBounds )
37526           && ( maxDepthBounds == rhs.maxDepthBounds );
37527     }
37528 
operator !=VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37529     bool operator!=( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37530     {
37531       return !operator==( rhs );
37532     }
37533 #endif
37534 
37535 
37536 
37537   public:
37538     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo;
37539     const void* pNext = {};
37540     VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {};
37541     VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {};
37542     VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {};
37543     VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
37544     VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {};
37545     VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {};
37546     VULKAN_HPP_NAMESPACE::StencilOpState front = {};
37547     VULKAN_HPP_NAMESPACE::StencilOpState back = {};
37548     float minDepthBounds = {};
37549     float maxDepthBounds = {};
37550 
37551   };
37552   static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), "struct and wrapper have different size!" );
37553   static_assert( std::is_standard_layout<PipelineDepthStencilStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37554 
37555   template <>
37556   struct CppType<StructureType, StructureType::ePipelineDepthStencilStateCreateInfo>
37557   {
37558     using Type = PipelineDepthStencilStateCreateInfo;
37559   };
37560 
37561   struct PipelineColorBlendAttachmentState
37562   {
37563 
37564 
37565 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37566     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
37567     : blendEnable( blendEnable_ ), srcColorBlendFactor( srcColorBlendFactor_ ), dstColorBlendFactor( dstColorBlendFactor_ ), colorBlendOp( colorBlendOp_ ), srcAlphaBlendFactor( srcAlphaBlendFactor_ ), dstAlphaBlendFactor( dstAlphaBlendFactor_ ), alphaBlendOp( alphaBlendOp_ ), colorWriteMask( colorWriteMask_ )
37568     {}
37569 
37570     VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37571 
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37572     PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
37573     {
37574       *this = rhs;
37575     }
37576 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37577 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37578     PipelineColorBlendAttachmentState & operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
37579     {
37580       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState const *>( &rhs );
37581       return *this;
37582     }
37583 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37584     PipelineColorBlendAttachmentState & operator=( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
37585     {
37586       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineColorBlendAttachmentState ) );
37587       return *this;
37588     }
37589 
setBlendEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37590     PipelineColorBlendAttachmentState & setBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ ) VULKAN_HPP_NOEXCEPT
37591     {
37592       blendEnable = blendEnable_;
37593       return *this;
37594     }
37595 
setSrcColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37596     PipelineColorBlendAttachmentState & setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37597     {
37598       srcColorBlendFactor = srcColorBlendFactor_;
37599       return *this;
37600     }
37601 
setDstColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37602     PipelineColorBlendAttachmentState & setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37603     {
37604       dstColorBlendFactor = dstColorBlendFactor_;
37605       return *this;
37606     }
37607 
setColorBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37608     PipelineColorBlendAttachmentState & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT
37609     {
37610       colorBlendOp = colorBlendOp_;
37611       return *this;
37612     }
37613 
setSrcAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37614     PipelineColorBlendAttachmentState & setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37615     {
37616       srcAlphaBlendFactor = srcAlphaBlendFactor_;
37617       return *this;
37618     }
37619 
setDstAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37620     PipelineColorBlendAttachmentState & setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37621     {
37622       dstAlphaBlendFactor = dstAlphaBlendFactor_;
37623       return *this;
37624     }
37625 
setAlphaBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37626     PipelineColorBlendAttachmentState & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT
37627     {
37628       alphaBlendOp = alphaBlendOp_;
37629       return *this;
37630     }
37631 
setColorWriteMaskVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37632     PipelineColorBlendAttachmentState & setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT
37633     {
37634       colorWriteMask = colorWriteMask_;
37635       return *this;
37636     }
37637 
37638 
operator VkPipelineColorBlendAttachmentState const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37639     operator VkPipelineColorBlendAttachmentState const&() const VULKAN_HPP_NOEXCEPT
37640     {
37641       return *reinterpret_cast<const VkPipelineColorBlendAttachmentState*>( this );
37642     }
37643 
operator VkPipelineColorBlendAttachmentState&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37644     operator VkPipelineColorBlendAttachmentState &() VULKAN_HPP_NOEXCEPT
37645     {
37646       return *reinterpret_cast<VkPipelineColorBlendAttachmentState*>( this );
37647     }
37648 
37649 
37650 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37651     auto operator<=>( PipelineColorBlendAttachmentState const& ) const = default;
37652 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37653     bool operator==( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT
37654     {
37655       return ( blendEnable == rhs.blendEnable )
37656           && ( srcColorBlendFactor == rhs.srcColorBlendFactor )
37657           && ( dstColorBlendFactor == rhs.dstColorBlendFactor )
37658           && ( colorBlendOp == rhs.colorBlendOp )
37659           && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor )
37660           && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor )
37661           && ( alphaBlendOp == rhs.alphaBlendOp )
37662           && ( colorWriteMask == rhs.colorWriteMask );
37663     }
37664 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37665     bool operator!=( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT
37666     {
37667       return !operator==( rhs );
37668     }
37669 #endif
37670 
37671 
37672 
37673   public:
37674     VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {};
37675     VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37676     VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37677     VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
37678     VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37679     VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37680     VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
37681     VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {};
37682 
37683   };
37684   static_assert( sizeof( PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ), "struct and wrapper have different size!" );
37685   static_assert( std::is_standard_layout<PipelineColorBlendAttachmentState>::value, "struct wrapper is not a standard layout!" );
37686 
37687   struct PipelineColorBlendStateCreateInfo
37688   {
37689     static const bool allowDuplicate = false;
37690     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendStateCreateInfo;
37691 
37692 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37693     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
37694     : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), blendConstants( blendConstants_ )
37695     {}
37696 
37697     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37698 
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37699     PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37700     {
37701       *this = rhs;
37702     }
37703 
37704 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37705     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_ = {} )
37706     : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), blendConstants( blendConstants_ )
37707     {}
37708 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37709 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37710 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37711     PipelineColorBlendStateCreateInfo & operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37712     {
37713       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo const *>( &rhs );
37714       return *this;
37715     }
37716 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37717     PipelineColorBlendStateCreateInfo & operator=( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37718     {
37719       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineColorBlendStateCreateInfo ) );
37720       return *this;
37721     }
37722 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37723     PipelineColorBlendStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37724     {
37725       pNext = pNext_;
37726       return *this;
37727     }
37728 
setFlagsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37729     PipelineColorBlendStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37730     {
37731       flags = flags_;
37732       return *this;
37733     }
37734 
setLogicOpEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37735     PipelineColorBlendStateCreateInfo & setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT
37736     {
37737       logicOpEnable = logicOpEnable_;
37738       return *this;
37739     }
37740 
setLogicOpVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37741     PipelineColorBlendStateCreateInfo & setLogicOp( VULKAN_HPP_NAMESPACE::LogicOp logicOp_ ) VULKAN_HPP_NOEXCEPT
37742     {
37743       logicOp = logicOp_;
37744       return *this;
37745     }
37746 
setAttachmentCountVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37747     PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
37748     {
37749       attachmentCount = attachmentCount_;
37750       return *this;
37751     }
37752 
setPAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37753     PipelineColorBlendStateCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ ) VULKAN_HPP_NOEXCEPT
37754     {
37755       pAttachments = pAttachments_;
37756       return *this;
37757     }
37758 
37759 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37760     PipelineColorBlendStateCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_ ) VULKAN_HPP_NOEXCEPT
37761     {
37762       attachmentCount = static_cast<uint32_t>( attachments_.size() );
37763       pAttachments = attachments_.data();
37764       return *this;
37765     }
37766 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37767 
setBlendConstantsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37768     PipelineColorBlendStateCreateInfo & setBlendConstants( std::array<float,4> blendConstants_ ) VULKAN_HPP_NOEXCEPT
37769     {
37770       blendConstants = blendConstants_;
37771       return *this;
37772     }
37773 
37774 
operator VkPipelineColorBlendStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37775     operator VkPipelineColorBlendStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37776     {
37777       return *reinterpret_cast<const VkPipelineColorBlendStateCreateInfo*>( this );
37778     }
37779 
operator VkPipelineColorBlendStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37780     operator VkPipelineColorBlendStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37781     {
37782       return *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>( this );
37783     }
37784 
37785 
37786 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37787     auto operator<=>( PipelineColorBlendStateCreateInfo const& ) const = default;
37788 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37789     bool operator==( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37790     {
37791       return ( sType == rhs.sType )
37792           && ( pNext == rhs.pNext )
37793           && ( flags == rhs.flags )
37794           && ( logicOpEnable == rhs.logicOpEnable )
37795           && ( logicOp == rhs.logicOp )
37796           && ( attachmentCount == rhs.attachmentCount )
37797           && ( pAttachments == rhs.pAttachments )
37798           && ( blendConstants == rhs.blendConstants );
37799     }
37800 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37801     bool operator!=( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37802     {
37803       return !operator==( rhs );
37804     }
37805 #endif
37806 
37807 
37808 
37809   public:
37810     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo;
37811     const void* pNext = {};
37812     VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags = {};
37813     VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {};
37814     VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear;
37815     uint32_t attachmentCount = {};
37816     const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments = {};
37817     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> blendConstants = {};
37818 
37819   };
37820   static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), "struct and wrapper have different size!" );
37821   static_assert( std::is_standard_layout<PipelineColorBlendStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37822 
37823   template <>
37824   struct CppType<StructureType, StructureType::ePipelineColorBlendStateCreateInfo>
37825   {
37826     using Type = PipelineColorBlendStateCreateInfo;
37827   };
37828 
37829   struct PipelineDynamicStateCreateInfo
37830   {
37831     static const bool allowDuplicate = false;
37832     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDynamicStateCreateInfo;
37833 
37834 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37835     VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {}, uint32_t dynamicStateCount_ = {}, const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ = {}) VULKAN_HPP_NOEXCEPT
37836     : flags( flags_ ), dynamicStateCount( dynamicStateCount_ ), pDynamicStates( pDynamicStates_ )
37837     {}
37838 
37839     VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37840 
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37841     PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37842     {
37843       *this = rhs;
37844     }
37845 
37846 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37847     PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ )
37848     : flags( flags_ ), dynamicStateCount( static_cast<uint32_t>( dynamicStates_.size() ) ), pDynamicStates( dynamicStates_.data() )
37849     {}
37850 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37851 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37852 
operator =VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37853     PipelineDynamicStateCreateInfo & operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37854     {
37855       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo const *>( &rhs );
37856       return *this;
37857     }
37858 
operator =VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37859     PipelineDynamicStateCreateInfo & operator=( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37860     {
37861       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineDynamicStateCreateInfo ) );
37862       return *this;
37863     }
37864 
setPNextVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37865     PipelineDynamicStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37866     {
37867       pNext = pNext_;
37868       return *this;
37869     }
37870 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37871     PipelineDynamicStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37872     {
37873       flags = flags_;
37874       return *this;
37875     }
37876 
setDynamicStateCountVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37877     PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ ) VULKAN_HPP_NOEXCEPT
37878     {
37879       dynamicStateCount = dynamicStateCount_;
37880       return *this;
37881     }
37882 
setPDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37883     PipelineDynamicStateCreateInfo & setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ ) VULKAN_HPP_NOEXCEPT
37884     {
37885       pDynamicStates = pDynamicStates_;
37886       return *this;
37887     }
37888 
37889 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37890     PipelineDynamicStateCreateInfo & setDynamicStates( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ ) VULKAN_HPP_NOEXCEPT
37891     {
37892       dynamicStateCount = static_cast<uint32_t>( dynamicStates_.size() );
37893       pDynamicStates = dynamicStates_.data();
37894       return *this;
37895     }
37896 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37897 
37898 
operator VkPipelineDynamicStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37899     operator VkPipelineDynamicStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37900     {
37901       return *reinterpret_cast<const VkPipelineDynamicStateCreateInfo*>( this );
37902     }
37903 
operator VkPipelineDynamicStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37904     operator VkPipelineDynamicStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37905     {
37906       return *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>( this );
37907     }
37908 
37909 
37910 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37911     auto operator<=>( PipelineDynamicStateCreateInfo const& ) const = default;
37912 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37913     bool operator==( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37914     {
37915       return ( sType == rhs.sType )
37916           && ( pNext == rhs.pNext )
37917           && ( flags == rhs.flags )
37918           && ( dynamicStateCount == rhs.dynamicStateCount )
37919           && ( pDynamicStates == rhs.pDynamicStates );
37920     }
37921 
operator !=VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37922     bool operator!=( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37923     {
37924       return !operator==( rhs );
37925     }
37926 #endif
37927 
37928 
37929 
37930   public:
37931     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo;
37932     const void* pNext = {};
37933     VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags = {};
37934     uint32_t dynamicStateCount = {};
37935     const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates = {};
37936 
37937   };
37938   static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), "struct and wrapper have different size!" );
37939   static_assert( std::is_standard_layout<PipelineDynamicStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37940 
37941   template <>
37942   struct CppType<StructureType, StructureType::ePipelineDynamicStateCreateInfo>
37943   {
37944     using Type = PipelineDynamicStateCreateInfo;
37945   };
37946 
37947   struct GraphicsPipelineCreateInfo
37948   {
37949     static const bool allowDuplicate = false;
37950     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineCreateInfo;
37951 
37952 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37953     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
37954     : 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_ )
37955     {}
37956 
37957     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37958 
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37959     GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37960     {
37961       *this = rhs;
37962     }
37963 
37964 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37965     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_ = {} )
37966     : 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_ )
37967     {}
37968 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37969 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37970 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37971     GraphicsPipelineCreateInfo & operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37972     {
37973       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const *>( &rhs );
37974       return *this;
37975     }
37976 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37977     GraphicsPipelineCreateInfo & operator=( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37978     {
37979       memcpy( static_cast<void *>( this ), &rhs, sizeof( GraphicsPipelineCreateInfo ) );
37980       return *this;
37981     }
37982 
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37983     GraphicsPipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37984     {
37985       pNext = pNext_;
37986       return *this;
37987     }
37988 
setFlagsVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37989     GraphicsPipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37990     {
37991       flags = flags_;
37992       return *this;
37993     }
37994 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37995     GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
37996     {
37997       stageCount = stageCount_;
37998       return *this;
37999     }
38000 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38001     GraphicsPipelineCreateInfo & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
38002     {
38003       pStages = pStages_;
38004       return *this;
38005     }
38006 
38007 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38008     GraphicsPipelineCreateInfo & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
38009     {
38010       stageCount = static_cast<uint32_t>( stages_.size() );
38011       pStages = stages_.data();
38012       return *this;
38013     }
38014 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38015 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38016     GraphicsPipelineCreateInfo & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
38017     {
38018       pVertexInputState = pVertexInputState_;
38019       return *this;
38020     }
38021 
setPInputAssemblyStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38022     GraphicsPipelineCreateInfo & setPInputAssemblyState( const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT
38023     {
38024       pInputAssemblyState = pInputAssemblyState_;
38025       return *this;
38026     }
38027 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38028     GraphicsPipelineCreateInfo & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT
38029     {
38030       pTessellationState = pTessellationState_;
38031       return *this;
38032     }
38033 
setPViewportStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38034     GraphicsPipelineCreateInfo & setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ ) VULKAN_HPP_NOEXCEPT
38035     {
38036       pViewportState = pViewportState_;
38037       return *this;
38038     }
38039 
setPRasterizationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38040     GraphicsPipelineCreateInfo & setPRasterizationState( const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ ) VULKAN_HPP_NOEXCEPT
38041     {
38042       pRasterizationState = pRasterizationState_;
38043       return *this;
38044     }
38045 
setPMultisampleStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38046     GraphicsPipelineCreateInfo & setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ ) VULKAN_HPP_NOEXCEPT
38047     {
38048       pMultisampleState = pMultisampleState_;
38049       return *this;
38050     }
38051 
setPDepthStencilStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38052     GraphicsPipelineCreateInfo & setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT
38053     {
38054       pDepthStencilState = pDepthStencilState_;
38055       return *this;
38056     }
38057 
setPColorBlendStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38058     GraphicsPipelineCreateInfo & setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ ) VULKAN_HPP_NOEXCEPT
38059     {
38060       pColorBlendState = pColorBlendState_;
38061       return *this;
38062     }
38063 
setPDynamicStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38064     GraphicsPipelineCreateInfo & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ ) VULKAN_HPP_NOEXCEPT
38065     {
38066       pDynamicState = pDynamicState_;
38067       return *this;
38068     }
38069 
setLayoutVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38070     GraphicsPipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
38071     {
38072       layout = layout_;
38073       return *this;
38074     }
38075 
setRenderPassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38076     GraphicsPipelineCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
38077     {
38078       renderPass = renderPass_;
38079       return *this;
38080     }
38081 
setSubpassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38082     GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
38083     {
38084       subpass = subpass_;
38085       return *this;
38086     }
38087 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38088     GraphicsPipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
38089     {
38090       basePipelineHandle = basePipelineHandle_;
38091       return *this;
38092     }
38093 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38094     GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
38095     {
38096       basePipelineIndex = basePipelineIndex_;
38097       return *this;
38098     }
38099 
38100 
operator VkGraphicsPipelineCreateInfo const&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38101     operator VkGraphicsPipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38102     {
38103       return *reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( this );
38104     }
38105 
operator VkGraphicsPipelineCreateInfo&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38106     operator VkGraphicsPipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
38107     {
38108       return *reinterpret_cast<VkGraphicsPipelineCreateInfo*>( this );
38109     }
38110 
38111 
38112 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38113     auto operator<=>( GraphicsPipelineCreateInfo const& ) const = default;
38114 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38115     bool operator==( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38116     {
38117       return ( sType == rhs.sType )
38118           && ( pNext == rhs.pNext )
38119           && ( flags == rhs.flags )
38120           && ( stageCount == rhs.stageCount )
38121           && ( pStages == rhs.pStages )
38122           && ( pVertexInputState == rhs.pVertexInputState )
38123           && ( pInputAssemblyState == rhs.pInputAssemblyState )
38124           && ( pTessellationState == rhs.pTessellationState )
38125           && ( pViewportState == rhs.pViewportState )
38126           && ( pRasterizationState == rhs.pRasterizationState )
38127           && ( pMultisampleState == rhs.pMultisampleState )
38128           && ( pDepthStencilState == rhs.pDepthStencilState )
38129           && ( pColorBlendState == rhs.pColorBlendState )
38130           && ( pDynamicState == rhs.pDynamicState )
38131           && ( layout == rhs.layout )
38132           && ( renderPass == rhs.renderPass )
38133           && ( subpass == rhs.subpass )
38134           && ( basePipelineHandle == rhs.basePipelineHandle )
38135           && ( basePipelineIndex == rhs.basePipelineIndex );
38136     }
38137 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38138     bool operator!=( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38139     {
38140       return !operator==( rhs );
38141     }
38142 #endif
38143 
38144 
38145 
38146   public:
38147     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo;
38148     const void* pNext = {};
38149     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
38150     uint32_t stageCount = {};
38151     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
38152     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {};
38153     const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState = {};
38154     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {};
38155     const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState = {};
38156     const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState = {};
38157     const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState = {};
38158     const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState = {};
38159     const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState = {};
38160     const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState = {};
38161     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
38162     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
38163     uint32_t subpass = {};
38164     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
38165     int32_t basePipelineIndex = {};
38166 
38167   };
38168   static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), "struct and wrapper have different size!" );
38169   static_assert( std::is_standard_layout<GraphicsPipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
38170 
38171   template <>
38172   struct CppType<StructureType, StructureType::eGraphicsPipelineCreateInfo>
38173   {
38174     using Type = GraphicsPipelineCreateInfo;
38175   };
38176 
38177   struct ImageCreateInfo
38178   {
38179     static const bool allowDuplicate = false;
38180     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCreateInfo;
38181 
38182 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo38183     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
38184     : 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_ )
38185     {}
38186 
38187     VULKAN_HPP_CONSTEXPR ImageCreateInfo( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38188 
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo38189     ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38190     {
38191       *this = rhs;
38192     }
38193 
38194 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo38195     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 )
38196     : 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_ )
38197     {}
38198 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38199 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38200 
operator =VULKAN_HPP_NAMESPACE::ImageCreateInfo38201     ImageCreateInfo & operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38202     {
38203       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCreateInfo const *>( &rhs );
38204       return *this;
38205     }
38206 
operator =VULKAN_HPP_NAMESPACE::ImageCreateInfo38207     ImageCreateInfo & operator=( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38208     {
38209       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageCreateInfo ) );
38210       return *this;
38211     }
38212 
setPNextVULKAN_HPP_NAMESPACE::ImageCreateInfo38213     ImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38214     {
38215       pNext = pNext_;
38216       return *this;
38217     }
38218 
setFlagsVULKAN_HPP_NAMESPACE::ImageCreateInfo38219     ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38220     {
38221       flags = flags_;
38222       return *this;
38223     }
38224 
setImageTypeVULKAN_HPP_NAMESPACE::ImageCreateInfo38225     ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT
38226     {
38227       imageType = imageType_;
38228       return *this;
38229     }
38230 
setFormatVULKAN_HPP_NAMESPACE::ImageCreateInfo38231     ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
38232     {
38233       format = format_;
38234       return *this;
38235     }
38236 
setExtentVULKAN_HPP_NAMESPACE::ImageCreateInfo38237     ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
38238     {
38239       extent = extent_;
38240       return *this;
38241     }
38242 
setMipLevelsVULKAN_HPP_NAMESPACE::ImageCreateInfo38243     ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT
38244     {
38245       mipLevels = mipLevels_;
38246       return *this;
38247     }
38248 
setArrayLayersVULKAN_HPP_NAMESPACE::ImageCreateInfo38249     ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT
38250     {
38251       arrayLayers = arrayLayers_;
38252       return *this;
38253     }
38254 
setSamplesVULKAN_HPP_NAMESPACE::ImageCreateInfo38255     ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
38256     {
38257       samples = samples_;
38258       return *this;
38259     }
38260 
setTilingVULKAN_HPP_NAMESPACE::ImageCreateInfo38261     ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
38262     {
38263       tiling = tiling_;
38264       return *this;
38265     }
38266 
setUsageVULKAN_HPP_NAMESPACE::ImageCreateInfo38267     ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
38268     {
38269       usage = usage_;
38270       return *this;
38271     }
38272 
setSharingModeVULKAN_HPP_NAMESPACE::ImageCreateInfo38273     ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
38274     {
38275       sharingMode = sharingMode_;
38276       return *this;
38277     }
38278 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::ImageCreateInfo38279     ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
38280     {
38281       queueFamilyIndexCount = queueFamilyIndexCount_;
38282       return *this;
38283     }
38284 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo38285     ImageCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
38286     {
38287       pQueueFamilyIndices = pQueueFamilyIndices_;
38288       return *this;
38289     }
38290 
38291 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo38292     ImageCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
38293     {
38294       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
38295       pQueueFamilyIndices = queueFamilyIndices_.data();
38296       return *this;
38297     }
38298 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38299 
setInitialLayoutVULKAN_HPP_NAMESPACE::ImageCreateInfo38300     ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
38301     {
38302       initialLayout = initialLayout_;
38303       return *this;
38304     }
38305 
38306 
operator VkImageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageCreateInfo38307     operator VkImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38308     {
38309       return *reinterpret_cast<const VkImageCreateInfo*>( this );
38310     }
38311 
operator VkImageCreateInfo&VULKAN_HPP_NAMESPACE::ImageCreateInfo38312     operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT
38313     {
38314       return *reinterpret_cast<VkImageCreateInfo*>( this );
38315     }
38316 
38317 
38318 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38319     auto operator<=>( ImageCreateInfo const& ) const = default;
38320 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCreateInfo38321     bool operator==( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38322     {
38323       return ( sType == rhs.sType )
38324           && ( pNext == rhs.pNext )
38325           && ( flags == rhs.flags )
38326           && ( imageType == rhs.imageType )
38327           && ( format == rhs.format )
38328           && ( extent == rhs.extent )
38329           && ( mipLevels == rhs.mipLevels )
38330           && ( arrayLayers == rhs.arrayLayers )
38331           && ( samples == rhs.samples )
38332           && ( tiling == rhs.tiling )
38333           && ( usage == rhs.usage )
38334           && ( sharingMode == rhs.sharingMode )
38335           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
38336           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
38337           && ( initialLayout == rhs.initialLayout );
38338     }
38339 
operator !=VULKAN_HPP_NAMESPACE::ImageCreateInfo38340     bool operator!=( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38341     {
38342       return !operator==( rhs );
38343     }
38344 #endif
38345 
38346 
38347 
38348   public:
38349     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo;
38350     const void* pNext = {};
38351     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
38352     VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D;
38353     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
38354     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
38355     uint32_t mipLevels = {};
38356     uint32_t arrayLayers = {};
38357     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
38358     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
38359     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
38360     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
38361     uint32_t queueFamilyIndexCount = {};
38362     const uint32_t* pQueueFamilyIndices = {};
38363     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
38364 
38365   };
38366   static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" );
38367   static_assert( std::is_standard_layout<ImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
38368 
38369   template <>
38370   struct CppType<StructureType, StructureType::eImageCreateInfo>
38371   {
38372     using Type = ImageCreateInfo;
38373   };
38374 
38375   struct ImageViewCreateInfo
38376   {
38377     static const bool allowDuplicate = false;
38378     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCreateInfo;
38379 
38380 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38381     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
38382     : flags( flags_ ), image( image_ ), viewType( viewType_ ), format( format_ ), components( components_ ), subresourceRange( subresourceRange_ )
38383     {}
38384 
38385     VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38386 
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38387     ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38388     {
38389       *this = rhs;
38390     }
38391 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38392 
operator =VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38393     ImageViewCreateInfo & operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38394     {
38395       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const *>( &rhs );
38396       return *this;
38397     }
38398 
operator =VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38399     ImageViewCreateInfo & operator=( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38400     {
38401       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewCreateInfo ) );
38402       return *this;
38403     }
38404 
setPNextVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38405     ImageViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38406     {
38407       pNext = pNext_;
38408       return *this;
38409     }
38410 
setFlagsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38411     ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38412     {
38413       flags = flags_;
38414       return *this;
38415     }
38416 
setImageVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38417     ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
38418     {
38419       image = image_;
38420       return *this;
38421     }
38422 
setViewTypeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38423     ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT
38424     {
38425       viewType = viewType_;
38426       return *this;
38427     }
38428 
setFormatVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38429     ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
38430     {
38431       format = format_;
38432       return *this;
38433     }
38434 
setComponentsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38435     ImageViewCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
38436     {
38437       components = components_;
38438       return *this;
38439     }
38440 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38441     ImageViewCreateInfo & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
38442     {
38443       subresourceRange = subresourceRange_;
38444       return *this;
38445     }
38446 
38447 
operator VkImageViewCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38448     operator VkImageViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38449     {
38450       return *reinterpret_cast<const VkImageViewCreateInfo*>( this );
38451     }
38452 
operator VkImageViewCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38453     operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT
38454     {
38455       return *reinterpret_cast<VkImageViewCreateInfo*>( this );
38456     }
38457 
38458 
38459 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38460     auto operator<=>( ImageViewCreateInfo const& ) const = default;
38461 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38462     bool operator==( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38463     {
38464       return ( sType == rhs.sType )
38465           && ( pNext == rhs.pNext )
38466           && ( flags == rhs.flags )
38467           && ( image == rhs.image )
38468           && ( viewType == rhs.viewType )
38469           && ( format == rhs.format )
38470           && ( components == rhs.components )
38471           && ( subresourceRange == rhs.subresourceRange );
38472     }
38473 
operator !=VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38474     bool operator!=( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38475     {
38476       return !operator==( rhs );
38477     }
38478 #endif
38479 
38480 
38481 
38482   public:
38483     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo;
38484     const void* pNext = {};
38485     VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {};
38486     VULKAN_HPP_NAMESPACE::Image image = {};
38487     VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
38488     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
38489     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
38490     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
38491 
38492   };
38493   static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "struct and wrapper have different size!" );
38494   static_assert( std::is_standard_layout<ImageViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
38495 
38496   template <>
38497   struct CppType<StructureType, StructureType::eImageViewCreateInfo>
38498   {
38499     using Type = ImageViewCreateInfo;
38500   };
38501 
38502   struct IndirectCommandsLayoutTokenNV
38503   {
38504     static const bool allowDuplicate = false;
38505     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutTokenNV;
38506 
38507 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38508     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
38509     : 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_ )
38510     {}
38511 
38512     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38513 
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38514     IndirectCommandsLayoutTokenNV( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
38515     {
38516       *this = rhs;
38517     }
38518 
38519 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38520     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_ = {} )
38521     : 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() )
38522     {
38523 #ifdef VULKAN_HPP_NO_EXCEPTIONS
38524       VULKAN_HPP_ASSERT( indexTypes_.size() == indexTypeValues_.size() );
38525 #else
38526       if ( indexTypes_.size() != indexTypeValues_.size() )
38527       {
38528         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::IndirectCommandsLayoutTokenNV::IndirectCommandsLayoutTokenNV: indexTypes_.size() != indexTypeValues_.size()" );
38529       }
38530 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
38531     }
38532 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38533 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38534 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38535     IndirectCommandsLayoutTokenNV & operator=( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
38536     {
38537       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV const *>( &rhs );
38538       return *this;
38539     }
38540 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38541     IndirectCommandsLayoutTokenNV & operator=( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
38542     {
38543       memcpy( static_cast<void *>( this ), &rhs, sizeof( IndirectCommandsLayoutTokenNV ) );
38544       return *this;
38545     }
38546 
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38547     IndirectCommandsLayoutTokenNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38548     {
38549       pNext = pNext_;
38550       return *this;
38551     }
38552 
setTokenTypeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38553     IndirectCommandsLayoutTokenNV & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ ) VULKAN_HPP_NOEXCEPT
38554     {
38555       tokenType = tokenType_;
38556       return *this;
38557     }
38558 
setStreamVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38559     IndirectCommandsLayoutTokenNV & setStream( uint32_t stream_ ) VULKAN_HPP_NOEXCEPT
38560     {
38561       stream = stream_;
38562       return *this;
38563     }
38564 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38565     IndirectCommandsLayoutTokenNV & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
38566     {
38567       offset = offset_;
38568       return *this;
38569     }
38570 
setVertexBindingUnitVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38571     IndirectCommandsLayoutTokenNV & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT
38572     {
38573       vertexBindingUnit = vertexBindingUnit_;
38574       return *this;
38575     }
38576 
setVertexDynamicStrideVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38577     IndirectCommandsLayoutTokenNV & setVertexDynamicStride( VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ ) VULKAN_HPP_NOEXCEPT
38578     {
38579       vertexDynamicStride = vertexDynamicStride_;
38580       return *this;
38581     }
38582 
setPushconstantPipelineLayoutVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38583     IndirectCommandsLayoutTokenNV & setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
38584     {
38585       pushconstantPipelineLayout = pushconstantPipelineLayout_;
38586       return *this;
38587     }
38588 
setPushconstantShaderStageFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38589     IndirectCommandsLayoutTokenNV & setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT
38590     {
38591       pushconstantShaderStageFlags = pushconstantShaderStageFlags_;
38592       return *this;
38593     }
38594 
setPushconstantOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38595     IndirectCommandsLayoutTokenNV & setPushconstantOffset( uint32_t pushconstantOffset_ ) VULKAN_HPP_NOEXCEPT
38596     {
38597       pushconstantOffset = pushconstantOffset_;
38598       return *this;
38599     }
38600 
setPushconstantSizeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38601     IndirectCommandsLayoutTokenNV & setPushconstantSize( uint32_t pushconstantSize_ ) VULKAN_HPP_NOEXCEPT
38602     {
38603       pushconstantSize = pushconstantSize_;
38604       return *this;
38605     }
38606 
setIndirectStateFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38607     IndirectCommandsLayoutTokenNV & setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT
38608     {
38609       indirectStateFlags = indirectStateFlags_;
38610       return *this;
38611     }
38612 
setIndexTypeCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38613     IndirectCommandsLayoutTokenNV & setIndexTypeCount( uint32_t indexTypeCount_ ) VULKAN_HPP_NOEXCEPT
38614     {
38615       indexTypeCount = indexTypeCount_;
38616       return *this;
38617     }
38618 
setPIndexTypesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38619     IndirectCommandsLayoutTokenNV & setPIndexTypes( const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes_ ) VULKAN_HPP_NOEXCEPT
38620     {
38621       pIndexTypes = pIndexTypes_;
38622       return *this;
38623     }
38624 
38625 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setIndexTypesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38626     IndirectCommandsLayoutTokenNV & setIndexTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_ ) VULKAN_HPP_NOEXCEPT
38627     {
38628       indexTypeCount = static_cast<uint32_t>( indexTypes_.size() );
38629       pIndexTypes = indexTypes_.data();
38630       return *this;
38631     }
38632 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38633 
setPIndexTypeValuesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38634     IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t* pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT
38635     {
38636       pIndexTypeValues = pIndexTypeValues_;
38637       return *this;
38638     }
38639 
38640 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setIndexTypeValuesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38641     IndirectCommandsLayoutTokenNV & setIndexTypeValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ ) VULKAN_HPP_NOEXCEPT
38642     {
38643       indexTypeCount = static_cast<uint32_t>( indexTypeValues_.size() );
38644       pIndexTypeValues = indexTypeValues_.data();
38645       return *this;
38646     }
38647 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38648 
38649 
operator VkIndirectCommandsLayoutTokenNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38650     operator VkIndirectCommandsLayoutTokenNV const&() const VULKAN_HPP_NOEXCEPT
38651     {
38652       return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNV*>( this );
38653     }
38654 
operator VkIndirectCommandsLayoutTokenNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38655     operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT
38656     {
38657       return *reinterpret_cast<VkIndirectCommandsLayoutTokenNV*>( this );
38658     }
38659 
38660 
38661 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38662     auto operator<=>( IndirectCommandsLayoutTokenNV const& ) const = default;
38663 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38664     bool operator==( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38665     {
38666       return ( sType == rhs.sType )
38667           && ( pNext == rhs.pNext )
38668           && ( tokenType == rhs.tokenType )
38669           && ( stream == rhs.stream )
38670           && ( offset == rhs.offset )
38671           && ( vertexBindingUnit == rhs.vertexBindingUnit )
38672           && ( vertexDynamicStride == rhs.vertexDynamicStride )
38673           && ( pushconstantPipelineLayout == rhs.pushconstantPipelineLayout )
38674           && ( pushconstantShaderStageFlags == rhs.pushconstantShaderStageFlags )
38675           && ( pushconstantOffset == rhs.pushconstantOffset )
38676           && ( pushconstantSize == rhs.pushconstantSize )
38677           && ( indirectStateFlags == rhs.indirectStateFlags )
38678           && ( indexTypeCount == rhs.indexTypeCount )
38679           && ( pIndexTypes == rhs.pIndexTypes )
38680           && ( pIndexTypeValues == rhs.pIndexTypeValues );
38681     }
38682 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38683     bool operator!=( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38684     {
38685       return !operator==( rhs );
38686     }
38687 #endif
38688 
38689 
38690 
38691   public:
38692     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutTokenNV;
38693     const void* pNext = {};
38694     VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup;
38695     uint32_t stream = {};
38696     uint32_t offset = {};
38697     uint32_t vertexBindingUnit = {};
38698     VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride = {};
38699     VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout = {};
38700     VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags = {};
38701     uint32_t pushconstantOffset = {};
38702     uint32_t pushconstantSize = {};
38703     VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags = {};
38704     uint32_t indexTypeCount = {};
38705     const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes = {};
38706     const uint32_t* pIndexTypeValues = {};
38707 
38708   };
38709   static_assert( sizeof( IndirectCommandsLayoutTokenNV ) == sizeof( VkIndirectCommandsLayoutTokenNV ), "struct and wrapper have different size!" );
38710   static_assert( std::is_standard_layout<IndirectCommandsLayoutTokenNV>::value, "struct wrapper is not a standard layout!" );
38711 
38712   template <>
38713   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutTokenNV>
38714   {
38715     using Type = IndirectCommandsLayoutTokenNV;
38716   };
38717 
38718   struct IndirectCommandsLayoutCreateInfoNV
38719   {
38720     static const bool allowDuplicate = false;
38721     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
38722 
38723 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38724     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
38725     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( tokenCount_ ), pTokens( pTokens_ ), streamCount( streamCount_ ), pStreamStrides( pStreamStrides_ )
38726     {}
38727 
38728     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38729 
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38730     IndirectCommandsLayoutCreateInfoNV( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38731     {
38732       *this = rhs;
38733     }
38734 
38735 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38736     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_ = {} )
38737     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( static_cast<uint32_t>( tokens_.size() ) ), pTokens( tokens_.data() ), streamCount( static_cast<uint32_t>( streamStrides_.size() ) ), pStreamStrides( streamStrides_.data() )
38738     {}
38739 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38740 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38741 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38742     IndirectCommandsLayoutCreateInfoNV & operator=( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38743     {
38744       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const *>( &rhs );
38745       return *this;
38746     }
38747 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38748     IndirectCommandsLayoutCreateInfoNV & operator=( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38749     {
38750       memcpy( static_cast<void *>( this ), &rhs, sizeof( IndirectCommandsLayoutCreateInfoNV ) );
38751       return *this;
38752     }
38753 
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38754     IndirectCommandsLayoutCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38755     {
38756       pNext = pNext_;
38757       return *this;
38758     }
38759 
setFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38760     IndirectCommandsLayoutCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
38761     {
38762       flags = flags_;
38763       return *this;
38764     }
38765 
setPipelineBindPointVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38766     IndirectCommandsLayoutCreateInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
38767     {
38768       pipelineBindPoint = pipelineBindPoint_;
38769       return *this;
38770     }
38771 
setTokenCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38772     IndirectCommandsLayoutCreateInfoNV & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT
38773     {
38774       tokenCount = tokenCount_;
38775       return *this;
38776     }
38777 
setPTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38778     IndirectCommandsLayoutCreateInfoNV & setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens_ ) VULKAN_HPP_NOEXCEPT
38779     {
38780       pTokens = pTokens_;
38781       return *this;
38782     }
38783 
38784 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38785     IndirectCommandsLayoutCreateInfoNV & setTokens( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const & tokens_ ) VULKAN_HPP_NOEXCEPT
38786     {
38787       tokenCount = static_cast<uint32_t>( tokens_.size() );
38788       pTokens = tokens_.data();
38789       return *this;
38790     }
38791 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38792 
setStreamCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38793     IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
38794     {
38795       streamCount = streamCount_;
38796       return *this;
38797     }
38798 
setPStreamStridesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38799     IndirectCommandsLayoutCreateInfoNV & setPStreamStrides( const uint32_t* pStreamStrides_ ) VULKAN_HPP_NOEXCEPT
38800     {
38801       pStreamStrides = pStreamStrides_;
38802       return *this;
38803     }
38804 
38805 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStreamStridesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38806     IndirectCommandsLayoutCreateInfoNV & setStreamStrides( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ ) VULKAN_HPP_NOEXCEPT
38807     {
38808       streamCount = static_cast<uint32_t>( streamStrides_.size() );
38809       pStreamStrides = streamStrides_.data();
38810       return *this;
38811     }
38812 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38813 
38814 
operator VkIndirectCommandsLayoutCreateInfoNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38815     operator VkIndirectCommandsLayoutCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
38816     {
38817       return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( this );
38818     }
38819 
operator VkIndirectCommandsLayoutCreateInfoNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38820     operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT
38821     {
38822       return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNV*>( this );
38823     }
38824 
38825 
38826 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38827     auto operator<=>( IndirectCommandsLayoutCreateInfoNV const& ) const = default;
38828 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38829     bool operator==( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38830     {
38831       return ( sType == rhs.sType )
38832           && ( pNext == rhs.pNext )
38833           && ( flags == rhs.flags )
38834           && ( pipelineBindPoint == rhs.pipelineBindPoint )
38835           && ( tokenCount == rhs.tokenCount )
38836           && ( pTokens == rhs.pTokens )
38837           && ( streamCount == rhs.streamCount )
38838           && ( pStreamStrides == rhs.pStreamStrides );
38839     }
38840 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38841     bool operator!=( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38842     {
38843       return !operator==( rhs );
38844     }
38845 #endif
38846 
38847 
38848 
38849   public:
38850     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
38851     const void* pNext = {};
38852     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags = {};
38853     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
38854     uint32_t tokenCount = {};
38855     const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens = {};
38856     uint32_t streamCount = {};
38857     const uint32_t* pStreamStrides = {};
38858 
38859   };
38860   static_assert( sizeof( IndirectCommandsLayoutCreateInfoNV ) == sizeof( VkIndirectCommandsLayoutCreateInfoNV ), "struct and wrapper have different size!" );
38861   static_assert( std::is_standard_layout<IndirectCommandsLayoutCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
38862 
38863   template <>
38864   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutCreateInfoNV>
38865   {
38866     using Type = IndirectCommandsLayoutCreateInfoNV;
38867   };
38868 
38869   struct PipelineCacheCreateInfo
38870   {
38871     static const bool allowDuplicate = false;
38872     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCacheCreateInfo;
38873 
38874 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38875     VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT
38876     : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ )
38877     {}
38878 
38879     VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38880 
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38881     PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38882     {
38883       *this = rhs;
38884     }
38885 
38886 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38887     template <typename T>
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38888     PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ )
38889     : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() )
38890     {}
38891 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38892 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38893 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38894     PipelineCacheCreateInfo & operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38895     {
38896       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const *>( &rhs );
38897       return *this;
38898     }
38899 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38900     PipelineCacheCreateInfo & operator=( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38901     {
38902       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCacheCreateInfo ) );
38903       return *this;
38904     }
38905 
setPNextVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38906     PipelineCacheCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38907     {
38908       pNext = pNext_;
38909       return *this;
38910     }
38911 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38912     PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38913     {
38914       flags = flags_;
38915       return *this;
38916     }
38917 
setInitialDataSizeVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38918     PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
38919     {
38920       initialDataSize = initialDataSize_;
38921       return *this;
38922     }
38923 
setPInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38924     PipelineCacheCreateInfo & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT
38925     {
38926       pInitialData = pInitialData_;
38927       return *this;
38928     }
38929 
38930 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38931     template <typename T>
setInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38932     PipelineCacheCreateInfo & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
38933     {
38934       initialDataSize = initialData_.size() * sizeof(T);
38935       pInitialData = initialData_.data();
38936       return *this;
38937     }
38938 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38939 
38940 
operator VkPipelineCacheCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38941     operator VkPipelineCacheCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38942     {
38943       return *reinterpret_cast<const VkPipelineCacheCreateInfo*>( this );
38944     }
38945 
operator VkPipelineCacheCreateInfo&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38946     operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT
38947     {
38948       return *reinterpret_cast<VkPipelineCacheCreateInfo*>( this );
38949     }
38950 
38951 
38952 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38953     auto operator<=>( PipelineCacheCreateInfo const& ) const = default;
38954 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38955     bool operator==( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38956     {
38957       return ( sType == rhs.sType )
38958           && ( pNext == rhs.pNext )
38959           && ( flags == rhs.flags )
38960           && ( initialDataSize == rhs.initialDataSize )
38961           && ( pInitialData == rhs.pInitialData );
38962     }
38963 
operator !=VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38964     bool operator!=( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38965     {
38966       return !operator==( rhs );
38967     }
38968 #endif
38969 
38970 
38971 
38972   public:
38973     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo;
38974     const void* pNext = {};
38975     VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {};
38976     size_t initialDataSize = {};
38977     const void* pInitialData = {};
38978 
38979   };
38980   static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), "struct and wrapper have different size!" );
38981   static_assert( std::is_standard_layout<PipelineCacheCreateInfo>::value, "struct wrapper is not a standard layout!" );
38982 
38983   template <>
38984   struct CppType<StructureType, StructureType::ePipelineCacheCreateInfo>
38985   {
38986     using Type = PipelineCacheCreateInfo;
38987   };
38988 
38989   struct PushConstantRange
38990   {
38991 
38992 
38993 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange38994     VULKAN_HPP_CONSTEXPR PushConstantRange(VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {}) VULKAN_HPP_NOEXCEPT
38995     : stageFlags( stageFlags_ ), offset( offset_ ), size( size_ )
38996     {}
38997 
38998     VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38999 
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange39000     PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
39001     {
39002       *this = rhs;
39003     }
39004 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39005 
operator =VULKAN_HPP_NAMESPACE::PushConstantRange39006     PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
39007     {
39008       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushConstantRange const *>( &rhs );
39009       return *this;
39010     }
39011 
operator =VULKAN_HPP_NAMESPACE::PushConstantRange39012     PushConstantRange & operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
39013     {
39014       memcpy( static_cast<void *>( this ), &rhs, sizeof( PushConstantRange ) );
39015       return *this;
39016     }
39017 
setStageFlagsVULKAN_HPP_NAMESPACE::PushConstantRange39018     PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
39019     {
39020       stageFlags = stageFlags_;
39021       return *this;
39022     }
39023 
setOffsetVULKAN_HPP_NAMESPACE::PushConstantRange39024     PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
39025     {
39026       offset = offset_;
39027       return *this;
39028     }
39029 
setSizeVULKAN_HPP_NAMESPACE::PushConstantRange39030     PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
39031     {
39032       size = size_;
39033       return *this;
39034     }
39035 
39036 
operator VkPushConstantRange const&VULKAN_HPP_NAMESPACE::PushConstantRange39037     operator VkPushConstantRange const&() const VULKAN_HPP_NOEXCEPT
39038     {
39039       return *reinterpret_cast<const VkPushConstantRange*>( this );
39040     }
39041 
operator VkPushConstantRange&VULKAN_HPP_NAMESPACE::PushConstantRange39042     operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
39043     {
39044       return *reinterpret_cast<VkPushConstantRange*>( this );
39045     }
39046 
39047 
39048 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39049     auto operator<=>( PushConstantRange const& ) const = default;
39050 #else
operator ==VULKAN_HPP_NAMESPACE::PushConstantRange39051     bool operator==( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT
39052     {
39053       return ( stageFlags == rhs.stageFlags )
39054           && ( offset == rhs.offset )
39055           && ( size == rhs.size );
39056     }
39057 
operator !=VULKAN_HPP_NAMESPACE::PushConstantRange39058     bool operator!=( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT
39059     {
39060       return !operator==( rhs );
39061     }
39062 #endif
39063 
39064 
39065 
39066   public:
39067     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
39068     uint32_t offset = {};
39069     uint32_t size = {};
39070 
39071   };
39072   static_assert( sizeof( PushConstantRange ) == sizeof( VkPushConstantRange ), "struct and wrapper have different size!" );
39073   static_assert( std::is_standard_layout<PushConstantRange>::value, "struct wrapper is not a standard layout!" );
39074 
39075   struct PipelineLayoutCreateInfo
39076   {
39077     static const bool allowDuplicate = false;
39078     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLayoutCreateInfo;
39079 
39080 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39081     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
39082     : flags( flags_ ), setLayoutCount( setLayoutCount_ ), pSetLayouts( pSetLayouts_ ), pushConstantRangeCount( pushConstantRangeCount_ ), pPushConstantRanges( pPushConstantRanges_ )
39083     {}
39084 
39085     VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39086 
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39087     PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39088     {
39089       *this = rhs;
39090     }
39091 
39092 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39093     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_ = {} )
39094     : flags( flags_ ), setLayoutCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() ), pushConstantRangeCount( static_cast<uint32_t>( pushConstantRanges_.size() ) ), pPushConstantRanges( pushConstantRanges_.data() )
39095     {}
39096 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39097 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39098 
operator =VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39099     PipelineLayoutCreateInfo & operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39100     {
39101       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const *>( &rhs );
39102       return *this;
39103     }
39104 
operator =VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39105     PipelineLayoutCreateInfo & operator=( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39106     {
39107       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineLayoutCreateInfo ) );
39108       return *this;
39109     }
39110 
setPNextVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39111     PipelineLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39112     {
39113       pNext = pNext_;
39114       return *this;
39115     }
39116 
setFlagsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39117     PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39118     {
39119       flags = flags_;
39120       return *this;
39121     }
39122 
setSetLayoutCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39123     PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
39124     {
39125       setLayoutCount = setLayoutCount_;
39126       return *this;
39127     }
39128 
setPSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39129     PipelineLayoutCreateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
39130     {
39131       pSetLayouts = pSetLayouts_;
39132       return *this;
39133     }
39134 
39135 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39136     PipelineLayoutCreateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
39137     {
39138       setLayoutCount = static_cast<uint32_t>( setLayouts_.size() );
39139       pSetLayouts = setLayouts_.data();
39140       return *this;
39141     }
39142 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39143 
setPushConstantRangeCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39144     PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
39145     {
39146       pushConstantRangeCount = pushConstantRangeCount_;
39147       return *this;
39148     }
39149 
setPPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39150     PipelineLayoutCreateInfo & setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
39151     {
39152       pPushConstantRanges = pPushConstantRanges_;
39153       return *this;
39154     }
39155 
39156 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39157     PipelineLayoutCreateInfo & setPushConstantRanges( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
39158     {
39159       pushConstantRangeCount = static_cast<uint32_t>( pushConstantRanges_.size() );
39160       pPushConstantRanges = pushConstantRanges_.data();
39161       return *this;
39162     }
39163 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39164 
39165 
operator VkPipelineLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39166     operator VkPipelineLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39167     {
39168       return *reinterpret_cast<const VkPipelineLayoutCreateInfo*>( this );
39169     }
39170 
operator VkPipelineLayoutCreateInfo&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39171     operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
39172     {
39173       return *reinterpret_cast<VkPipelineLayoutCreateInfo*>( this );
39174     }
39175 
39176 
39177 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39178     auto operator<=>( PipelineLayoutCreateInfo const& ) const = default;
39179 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39180     bool operator==( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39181     {
39182       return ( sType == rhs.sType )
39183           && ( pNext == rhs.pNext )
39184           && ( flags == rhs.flags )
39185           && ( setLayoutCount == rhs.setLayoutCount )
39186           && ( pSetLayouts == rhs.pSetLayouts )
39187           && ( pushConstantRangeCount == rhs.pushConstantRangeCount )
39188           && ( pPushConstantRanges == rhs.pPushConstantRanges );
39189     }
39190 
operator !=VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39191     bool operator!=( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39192     {
39193       return !operator==( rhs );
39194     }
39195 #endif
39196 
39197 
39198 
39199   public:
39200     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo;
39201     const void* pNext = {};
39202     VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {};
39203     uint32_t setLayoutCount = {};
39204     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {};
39205     uint32_t pushConstantRangeCount = {};
39206     const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges = {};
39207 
39208   };
39209   static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), "struct and wrapper have different size!" );
39210   static_assert( std::is_standard_layout<PipelineLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
39211 
39212   template <>
39213   struct CppType<StructureType, StructureType::ePipelineLayoutCreateInfo>
39214   {
39215     using Type = PipelineLayoutCreateInfo;
39216   };
39217 
39218   struct PrivateDataSlotCreateInfoEXT
39219   {
39220     static const bool allowDuplicate = false;
39221     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePrivateDataSlotCreateInfoEXT;
39222 
39223 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PrivateDataSlotCreateInfoEXTVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39224     VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
39225     : flags( flags_ )
39226     {}
39227 
39228     VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39229 
PrivateDataSlotCreateInfoEXTVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39230     PrivateDataSlotCreateInfoEXT( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39231     {
39232       *this = rhs;
39233     }
39234 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39235 
operator =VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39236     PrivateDataSlotCreateInfoEXT & operator=( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39237     {
39238       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT const *>( &rhs );
39239       return *this;
39240     }
39241 
operator =VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39242     PrivateDataSlotCreateInfoEXT & operator=( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39243     {
39244       memcpy( static_cast<void *>( this ), &rhs, sizeof( PrivateDataSlotCreateInfoEXT ) );
39245       return *this;
39246     }
39247 
setPNextVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39248     PrivateDataSlotCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39249     {
39250       pNext = pNext_;
39251       return *this;
39252     }
39253 
setFlagsVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39254     PrivateDataSlotCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
39255     {
39256       flags = flags_;
39257       return *this;
39258     }
39259 
39260 
operator VkPrivateDataSlotCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39261     operator VkPrivateDataSlotCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
39262     {
39263       return *reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT*>( this );
39264     }
39265 
operator VkPrivateDataSlotCreateInfoEXT&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39266     operator VkPrivateDataSlotCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
39267     {
39268       return *reinterpret_cast<VkPrivateDataSlotCreateInfoEXT*>( this );
39269     }
39270 
39271 
39272 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39273     auto operator<=>( PrivateDataSlotCreateInfoEXT const& ) const = default;
39274 #else
operator ==VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39275     bool operator==( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
39276     {
39277       return ( sType == rhs.sType )
39278           && ( pNext == rhs.pNext )
39279           && ( flags == rhs.flags );
39280     }
39281 
operator !=VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39282     bool operator!=( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
39283     {
39284       return !operator==( rhs );
39285     }
39286 #endif
39287 
39288 
39289 
39290   public:
39291     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePrivateDataSlotCreateInfoEXT;
39292     const void* pNext = {};
39293     VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags = {};
39294 
39295   };
39296   static_assert( sizeof( PrivateDataSlotCreateInfoEXT ) == sizeof( VkPrivateDataSlotCreateInfoEXT ), "struct and wrapper have different size!" );
39297   static_assert( std::is_standard_layout<PrivateDataSlotCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
39298 
39299   template <>
39300   struct CppType<StructureType, StructureType::ePrivateDataSlotCreateInfoEXT>
39301   {
39302     using Type = PrivateDataSlotCreateInfoEXT;
39303   };
39304 
39305   class PrivateDataSlotEXT
39306   {
39307   public:
39308     using CType = VkPrivateDataSlotEXT;
39309 
39310     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT;
39311     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
39312 
39313   public:
PrivateDataSlotEXT()39314     VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT() VULKAN_HPP_NOEXCEPT
39315       : m_privateDataSlotEXT(VK_NULL_HANDLE)
39316     {}
39317 
PrivateDataSlotEXT(std::nullptr_t)39318     VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
39319       : m_privateDataSlotEXT(VK_NULL_HANDLE)
39320     {}
39321 
PrivateDataSlotEXT(VkPrivateDataSlotEXT privateDataSlotEXT)39322     VULKAN_HPP_TYPESAFE_EXPLICIT PrivateDataSlotEXT( VkPrivateDataSlotEXT privateDataSlotEXT ) VULKAN_HPP_NOEXCEPT
39323       : m_privateDataSlotEXT( privateDataSlotEXT )
39324     {}
39325 
39326 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPrivateDataSlotEXT privateDataSlotEXT)39327     PrivateDataSlotEXT & operator=(VkPrivateDataSlotEXT privateDataSlotEXT) VULKAN_HPP_NOEXCEPT
39328     {
39329       m_privateDataSlotEXT = privateDataSlotEXT;
39330       return *this;
39331     }
39332 #endif
39333 
operator =(std::nullptr_t)39334     PrivateDataSlotEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
39335     {
39336       m_privateDataSlotEXT = VK_NULL_HANDLE;
39337       return *this;
39338     }
39339 
39340 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39341     auto operator<=>( PrivateDataSlotEXT const& ) const = default;
39342 #else
operator ==(PrivateDataSlotEXT const & rhs) const39343     bool operator==( PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39344     {
39345       return m_privateDataSlotEXT == rhs.m_privateDataSlotEXT;
39346     }
39347 
operator !=(PrivateDataSlotEXT const & rhs) const39348     bool operator!=(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39349     {
39350       return m_privateDataSlotEXT != rhs.m_privateDataSlotEXT;
39351     }
39352 
operator <(PrivateDataSlotEXT const & rhs) const39353     bool operator<(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39354     {
39355       return m_privateDataSlotEXT < rhs.m_privateDataSlotEXT;
39356     }
39357 #endif
39358 
operator VkPrivateDataSlotEXT() const39359     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPrivateDataSlotEXT() const VULKAN_HPP_NOEXCEPT
39360     {
39361       return m_privateDataSlotEXT;
39362     }
39363 
operator bool() const39364     explicit operator bool() const VULKAN_HPP_NOEXCEPT
39365     {
39366       return m_privateDataSlotEXT != VK_NULL_HANDLE;
39367     }
39368 
operator !() const39369     bool operator!() const VULKAN_HPP_NOEXCEPT
39370     {
39371       return m_privateDataSlotEXT == VK_NULL_HANDLE;
39372     }
39373 
39374   private:
39375     VkPrivateDataSlotEXT m_privateDataSlotEXT;
39376   };
39377   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT ) == sizeof( VkPrivateDataSlotEXT ), "handle and wrapper have different size!" );
39378 
39379   template <>
39380   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePrivateDataSlotEXT>
39381   {
39382     using type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT;
39383   };
39384 
39385   template <>
39386   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT>
39387   {
39388     using Type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT;
39389   };
39390 
39391 
39392 
39393   template <>
39394   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>
39395   {
39396     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
39397   };
39398 
39399   struct QueryPoolCreateInfo
39400   {
39401     static const bool allowDuplicate = false;
39402     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolCreateInfo;
39403 
39404 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39405     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
39406     : flags( flags_ ), queryType( queryType_ ), queryCount( queryCount_ ), pipelineStatistics( pipelineStatistics_ )
39407     {}
39408 
39409     VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39410 
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39411     QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39412     {
39413       *this = rhs;
39414     }
39415 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39416 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39417     QueryPoolCreateInfo & operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39418     {
39419       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const *>( &rhs );
39420       return *this;
39421     }
39422 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39423     QueryPoolCreateInfo & operator=( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39424     {
39425       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueryPoolCreateInfo ) );
39426       return *this;
39427     }
39428 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39429     QueryPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39430     {
39431       pNext = pNext_;
39432       return *this;
39433     }
39434 
setFlagsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39435     QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39436     {
39437       flags = flags_;
39438       return *this;
39439     }
39440 
setQueryTypeVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39441     QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT
39442     {
39443       queryType = queryType_;
39444       return *this;
39445     }
39446 
setQueryCountVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39447     QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT
39448     {
39449       queryCount = queryCount_;
39450       return *this;
39451     }
39452 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39453     QueryPoolCreateInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
39454     {
39455       pipelineStatistics = pipelineStatistics_;
39456       return *this;
39457     }
39458 
39459 
operator VkQueryPoolCreateInfo const&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39460     operator VkQueryPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39461     {
39462       return *reinterpret_cast<const VkQueryPoolCreateInfo*>( this );
39463     }
39464 
operator VkQueryPoolCreateInfo&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39465     operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
39466     {
39467       return *reinterpret_cast<VkQueryPoolCreateInfo*>( this );
39468     }
39469 
39470 
39471 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39472     auto operator<=>( QueryPoolCreateInfo const& ) const = default;
39473 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39474     bool operator==( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39475     {
39476       return ( sType == rhs.sType )
39477           && ( pNext == rhs.pNext )
39478           && ( flags == rhs.flags )
39479           && ( queryType == rhs.queryType )
39480           && ( queryCount == rhs.queryCount )
39481           && ( pipelineStatistics == rhs.pipelineStatistics );
39482     }
39483 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39484     bool operator!=( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39485     {
39486       return !operator==( rhs );
39487     }
39488 #endif
39489 
39490 
39491 
39492   public:
39493     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo;
39494     const void* pNext = {};
39495     VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {};
39496     VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion;
39497     uint32_t queryCount = {};
39498     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
39499 
39500   };
39501   static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "struct and wrapper have different size!" );
39502   static_assert( std::is_standard_layout<QueryPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
39503 
39504   template <>
39505   struct CppType<StructureType, StructureType::eQueryPoolCreateInfo>
39506   {
39507     using Type = QueryPoolCreateInfo;
39508   };
39509 
39510 #ifdef VK_ENABLE_BETA_EXTENSIONS
39511   struct RayTracingShaderGroupCreateInfoKHR
39512   {
39513     static const bool allowDuplicate = false;
39514     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
39515 
39516 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39517     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
39518     : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ ), pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ )
39519     {}
39520 
39521     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39522 
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39523     RayTracingShaderGroupCreateInfoKHR( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39524     {
39525       *this = rhs;
39526     }
39527 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39528 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39529     RayTracingShaderGroupCreateInfoKHR & operator=( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39530     {
39531       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR const *>( &rhs );
39532       return *this;
39533     }
39534 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39535     RayTracingShaderGroupCreateInfoKHR & operator=( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39536     {
39537       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingShaderGroupCreateInfoKHR ) );
39538       return *this;
39539     }
39540 
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39541     RayTracingShaderGroupCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39542     {
39543       pNext = pNext_;
39544       return *this;
39545     }
39546 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39547     RayTracingShaderGroupCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
39548     {
39549       type = type_;
39550       return *this;
39551     }
39552 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39553     RayTracingShaderGroupCreateInfoKHR & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
39554     {
39555       generalShader = generalShader_;
39556       return *this;
39557     }
39558 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39559     RayTracingShaderGroupCreateInfoKHR & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
39560     {
39561       closestHitShader = closestHitShader_;
39562       return *this;
39563     }
39564 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39565     RayTracingShaderGroupCreateInfoKHR & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
39566     {
39567       anyHitShader = anyHitShader_;
39568       return *this;
39569     }
39570 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39571     RayTracingShaderGroupCreateInfoKHR & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
39572     {
39573       intersectionShader = intersectionShader_;
39574       return *this;
39575     }
39576 
setPShaderGroupCaptureReplayHandleVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39577     RayTracingShaderGroupCreateInfoKHR & setPShaderGroupCaptureReplayHandle( const void* pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT
39578     {
39579       pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_;
39580       return *this;
39581     }
39582 
39583 
operator VkRayTracingShaderGroupCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39584     operator VkRayTracingShaderGroupCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39585     {
39586       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoKHR*>( this );
39587     }
39588 
operator VkRayTracingShaderGroupCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39589     operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
39590     {
39591       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoKHR*>( this );
39592     }
39593 
39594 
39595 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39596     auto operator<=>( RayTracingShaderGroupCreateInfoKHR const& ) const = default;
39597 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39598     bool operator==( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39599     {
39600       return ( sType == rhs.sType )
39601           && ( pNext == rhs.pNext )
39602           && ( type == rhs.type )
39603           && ( generalShader == rhs.generalShader )
39604           && ( closestHitShader == rhs.closestHitShader )
39605           && ( anyHitShader == rhs.anyHitShader )
39606           && ( intersectionShader == rhs.intersectionShader )
39607           && ( pShaderGroupCaptureReplayHandle == rhs.pShaderGroupCaptureReplayHandle );
39608     }
39609 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39610     bool operator!=( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39611     {
39612       return !operator==( rhs );
39613     }
39614 #endif
39615 
39616 
39617 
39618   public:
39619     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
39620     const void* pNext = {};
39621     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
39622     uint32_t generalShader = {};
39623     uint32_t closestHitShader = {};
39624     uint32_t anyHitShader = {};
39625     uint32_t intersectionShader = {};
39626     const void* pShaderGroupCaptureReplayHandle = {};
39627 
39628   };
39629   static_assert( sizeof( RayTracingShaderGroupCreateInfoKHR ) == sizeof( VkRayTracingShaderGroupCreateInfoKHR ), "struct and wrapper have different size!" );
39630   static_assert( std::is_standard_layout<RayTracingShaderGroupCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
39631 
39632   template <>
39633   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoKHR>
39634   {
39635     using Type = RayTracingShaderGroupCreateInfoKHR;
39636   };
39637 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
39638 
39639 #ifdef VK_ENABLE_BETA_EXTENSIONS
39640   struct PipelineLibraryCreateInfoKHR
39641   {
39642     static const bool allowDuplicate = false;
39643     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLibraryCreateInfoKHR;
39644 
39645 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39646     VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR(uint32_t libraryCount_ = {}, const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ = {}) VULKAN_HPP_NOEXCEPT
39647     : libraryCount( libraryCount_ ), pLibraries( pLibraries_ )
39648     {}
39649 
39650     VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39651 
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39652     PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39653     {
39654       *this = rhs;
39655     }
39656 
39657 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39658     PipelineLibraryCreateInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ )
39659     : libraryCount( static_cast<uint32_t>( libraries_.size() ) ), pLibraries( libraries_.data() )
39660     {}
39661 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39662 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39663 
operator =VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39664     PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39665     {
39666       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const *>( &rhs );
39667       return *this;
39668     }
39669 
operator =VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39670     PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39671     {
39672       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineLibraryCreateInfoKHR ) );
39673       return *this;
39674     }
39675 
setPNextVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39676     PipelineLibraryCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39677     {
39678       pNext = pNext_;
39679       return *this;
39680     }
39681 
setLibraryCountVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39682     PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT
39683     {
39684       libraryCount = libraryCount_;
39685       return *this;
39686     }
39687 
setPLibrariesVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39688     PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ ) VULKAN_HPP_NOEXCEPT
39689     {
39690       pLibraries = pLibraries_;
39691       return *this;
39692     }
39693 
39694 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setLibrariesVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39695     PipelineLibraryCreateInfoKHR & setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ ) VULKAN_HPP_NOEXCEPT
39696     {
39697       libraryCount = static_cast<uint32_t>( libraries_.size() );
39698       pLibraries = libraries_.data();
39699       return *this;
39700     }
39701 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39702 
39703 
operator VkPipelineLibraryCreateInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39704     operator VkPipelineLibraryCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39705     {
39706       return *reinterpret_cast<const VkPipelineLibraryCreateInfoKHR*>( this );
39707     }
39708 
operator VkPipelineLibraryCreateInfoKHR&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39709     operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
39710     {
39711       return *reinterpret_cast<VkPipelineLibraryCreateInfoKHR*>( this );
39712     }
39713 
39714 
39715 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39716     auto operator<=>( PipelineLibraryCreateInfoKHR const& ) const = default;
39717 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39718     bool operator==( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39719     {
39720       return ( sType == rhs.sType )
39721           && ( pNext == rhs.pNext )
39722           && ( libraryCount == rhs.libraryCount )
39723           && ( pLibraries == rhs.pLibraries );
39724     }
39725 
operator !=VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39726     bool operator!=( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39727     {
39728       return !operator==( rhs );
39729     }
39730 #endif
39731 
39732 
39733 
39734   public:
39735     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLibraryCreateInfoKHR;
39736     const void* pNext = {};
39737     uint32_t libraryCount = {};
39738     const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries = {};
39739 
39740   };
39741   static_assert( sizeof( PipelineLibraryCreateInfoKHR ) == sizeof( VkPipelineLibraryCreateInfoKHR ), "struct and wrapper have different size!" );
39742   static_assert( std::is_standard_layout<PipelineLibraryCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
39743 
39744   template <>
39745   struct CppType<StructureType, StructureType::ePipelineLibraryCreateInfoKHR>
39746   {
39747     using Type = PipelineLibraryCreateInfoKHR;
39748   };
39749 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
39750 
39751 #ifdef VK_ENABLE_BETA_EXTENSIONS
39752   struct RayTracingPipelineInterfaceCreateInfoKHR
39753   {
39754     static const bool allowDuplicate = false;
39755     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
39756 
39757 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39758     VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR(uint32_t maxPayloadSize_ = {}, uint32_t maxAttributeSize_ = {}, uint32_t maxCallableSize_ = {}) VULKAN_HPP_NOEXCEPT
39759     : maxPayloadSize( maxPayloadSize_ ), maxAttributeSize( maxAttributeSize_ ), maxCallableSize( maxCallableSize_ )
39760     {}
39761 
39762     VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39763 
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39764     RayTracingPipelineInterfaceCreateInfoKHR( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39765     {
39766       *this = rhs;
39767     }
39768 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39769 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39770     RayTracingPipelineInterfaceCreateInfoKHR & operator=( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39771     {
39772       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR const *>( &rhs );
39773       return *this;
39774     }
39775 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39776     RayTracingPipelineInterfaceCreateInfoKHR & operator=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39777     {
39778       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) );
39779       return *this;
39780     }
39781 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39782     RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39783     {
39784       pNext = pNext_;
39785       return *this;
39786     }
39787 
setMaxPayloadSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39788     RayTracingPipelineInterfaceCreateInfoKHR & setMaxPayloadSize( uint32_t maxPayloadSize_ ) VULKAN_HPP_NOEXCEPT
39789     {
39790       maxPayloadSize = maxPayloadSize_;
39791       return *this;
39792     }
39793 
setMaxAttributeSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39794     RayTracingPipelineInterfaceCreateInfoKHR & setMaxAttributeSize( uint32_t maxAttributeSize_ ) VULKAN_HPP_NOEXCEPT
39795     {
39796       maxAttributeSize = maxAttributeSize_;
39797       return *this;
39798     }
39799 
setMaxCallableSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39800     RayTracingPipelineInterfaceCreateInfoKHR & setMaxCallableSize( uint32_t maxCallableSize_ ) VULKAN_HPP_NOEXCEPT
39801     {
39802       maxCallableSize = maxCallableSize_;
39803       return *this;
39804     }
39805 
39806 
operator VkRayTracingPipelineInterfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39807     operator VkRayTracingPipelineInterfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39808     {
39809       return *reinterpret_cast<const VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
39810     }
39811 
operator VkRayTracingPipelineInterfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39812     operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
39813     {
39814       return *reinterpret_cast<VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
39815     }
39816 
39817 
39818 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39819     auto operator<=>( RayTracingPipelineInterfaceCreateInfoKHR const& ) const = default;
39820 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39821     bool operator==( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39822     {
39823       return ( sType == rhs.sType )
39824           && ( pNext == rhs.pNext )
39825           && ( maxPayloadSize == rhs.maxPayloadSize )
39826           && ( maxAttributeSize == rhs.maxAttributeSize )
39827           && ( maxCallableSize == rhs.maxCallableSize );
39828     }
39829 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39830     bool operator!=( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39831     {
39832       return !operator==( rhs );
39833     }
39834 #endif
39835 
39836 
39837 
39838   public:
39839     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
39840     const void* pNext = {};
39841     uint32_t maxPayloadSize = {};
39842     uint32_t maxAttributeSize = {};
39843     uint32_t maxCallableSize = {};
39844 
39845   };
39846   static_assert( sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) == sizeof( VkRayTracingPipelineInterfaceCreateInfoKHR ), "struct and wrapper have different size!" );
39847   static_assert( std::is_standard_layout<RayTracingPipelineInterfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
39848 
39849   template <>
39850   struct CppType<StructureType, StructureType::eRayTracingPipelineInterfaceCreateInfoKHR>
39851   {
39852     using Type = RayTracingPipelineInterfaceCreateInfoKHR;
39853   };
39854 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
39855 
39856 #ifdef VK_ENABLE_BETA_EXTENSIONS
39857   struct RayTracingPipelineCreateInfoKHR
39858   {
39859     static const bool allowDuplicate = false;
39860     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoKHR;
39861 
39862 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39863     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR libraries_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT
39864     : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxRecursionDepth( maxRecursionDepth_ ), libraries( libraries_ ), pLibraryInterface( pLibraryInterface_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
39865     {}
39866 
39867     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39868 
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39869     RayTracingPipelineCreateInfoKHR( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39870     {
39871       *this = rhs;
39872     }
39873 
39874 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39875     RayTracingPipelineCreateInfoKHR( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR libraries_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {} )
39876     : flags( flags_ ), stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), groupCount( static_cast<uint32_t>( groups_.size() ) ), pGroups( groups_.data() ), maxRecursionDepth( maxRecursionDepth_ ), libraries( libraries_ ), pLibraryInterface( pLibraryInterface_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
39877     {}
39878 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39879 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39880 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39881     RayTracingPipelineCreateInfoKHR & operator=( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39882     {
39883       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const *>( &rhs );
39884       return *this;
39885     }
39886 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39887     RayTracingPipelineCreateInfoKHR & operator=( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39888     {
39889       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingPipelineCreateInfoKHR ) );
39890       return *this;
39891     }
39892 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39893     RayTracingPipelineCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39894     {
39895       pNext = pNext_;
39896       return *this;
39897     }
39898 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39899     RayTracingPipelineCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39900     {
39901       flags = flags_;
39902       return *this;
39903     }
39904 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39905     RayTracingPipelineCreateInfoKHR & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
39906     {
39907       stageCount = stageCount_;
39908       return *this;
39909     }
39910 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39911     RayTracingPipelineCreateInfoKHR & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
39912     {
39913       pStages = pStages_;
39914       return *this;
39915     }
39916 
39917 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39918     RayTracingPipelineCreateInfoKHR & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
39919     {
39920       stageCount = static_cast<uint32_t>( stages_.size() );
39921       pStages = stages_.data();
39922       return *this;
39923     }
39924 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39925 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39926     RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
39927     {
39928       groupCount = groupCount_;
39929       return *this;
39930     }
39931 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39932     RayTracingPipelineCreateInfoKHR & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ ) VULKAN_HPP_NOEXCEPT
39933     {
39934       pGroups = pGroups_;
39935       return *this;
39936     }
39937 
39938 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39939     RayTracingPipelineCreateInfoKHR & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ ) VULKAN_HPP_NOEXCEPT
39940     {
39941       groupCount = static_cast<uint32_t>( groups_.size() );
39942       pGroups = groups_.data();
39943       return *this;
39944     }
39945 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39946 
setMaxRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39947     RayTracingPipelineCreateInfoKHR & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
39948     {
39949       maxRecursionDepth = maxRecursionDepth_;
39950       return *this;
39951     }
39952 
setLibrariesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39953     RayTracingPipelineCreateInfoKHR & setLibraries( VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const & libraries_ ) VULKAN_HPP_NOEXCEPT
39954     {
39955       libraries = libraries_;
39956       return *this;
39957     }
39958 
setPLibraryInterfaceVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39959     RayTracingPipelineCreateInfoKHR & setPLibraryInterface( const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ ) VULKAN_HPP_NOEXCEPT
39960     {
39961       pLibraryInterface = pLibraryInterface_;
39962       return *this;
39963     }
39964 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39965     RayTracingPipelineCreateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
39966     {
39967       layout = layout_;
39968       return *this;
39969     }
39970 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39971     RayTracingPipelineCreateInfoKHR & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
39972     {
39973       basePipelineHandle = basePipelineHandle_;
39974       return *this;
39975     }
39976 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39977     RayTracingPipelineCreateInfoKHR & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
39978     {
39979       basePipelineIndex = basePipelineIndex_;
39980       return *this;
39981     }
39982 
39983 
operator VkRayTracingPipelineCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39984     operator VkRayTracingPipelineCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39985     {
39986       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( this );
39987     }
39988 
operator VkRayTracingPipelineCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39989     operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
39990     {
39991       return *reinterpret_cast<VkRayTracingPipelineCreateInfoKHR*>( this );
39992     }
39993 
39994 
39995 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39996     auto operator<=>( RayTracingPipelineCreateInfoKHR const& ) const = default;
39997 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39998     bool operator==( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39999     {
40000       return ( sType == rhs.sType )
40001           && ( pNext == rhs.pNext )
40002           && ( flags == rhs.flags )
40003           && ( stageCount == rhs.stageCount )
40004           && ( pStages == rhs.pStages )
40005           && ( groupCount == rhs.groupCount )
40006           && ( pGroups == rhs.pGroups )
40007           && ( maxRecursionDepth == rhs.maxRecursionDepth )
40008           && ( libraries == rhs.libraries )
40009           && ( pLibraryInterface == rhs.pLibraryInterface )
40010           && ( layout == rhs.layout )
40011           && ( basePipelineHandle == rhs.basePipelineHandle )
40012           && ( basePipelineIndex == rhs.basePipelineIndex );
40013     }
40014 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40015     bool operator!=( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
40016     {
40017       return !operator==( rhs );
40018     }
40019 #endif
40020 
40021 
40022 
40023   public:
40024     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoKHR;
40025     const void* pNext = {};
40026     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
40027     uint32_t stageCount = {};
40028     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
40029     uint32_t groupCount = {};
40030     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups = {};
40031     uint32_t maxRecursionDepth = {};
40032     VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR libraries = {};
40033     const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface = {};
40034     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
40035     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
40036     int32_t basePipelineIndex = {};
40037 
40038   };
40039   static_assert( sizeof( RayTracingPipelineCreateInfoKHR ) == sizeof( VkRayTracingPipelineCreateInfoKHR ), "struct and wrapper have different size!" );
40040   static_assert( std::is_standard_layout<RayTracingPipelineCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
40041 
40042   template <>
40043   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoKHR>
40044   {
40045     using Type = RayTracingPipelineCreateInfoKHR;
40046   };
40047 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
40048 
40049   struct RayTracingShaderGroupCreateInfoNV
40050   {
40051     static const bool allowDuplicate = false;
40052     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoNV;
40053 
40054 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40055     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
40056     : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ )
40057     {}
40058 
40059     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40060 
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40061     RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40062     {
40063       *this = rhs;
40064     }
40065 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40066 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40067     RayTracingShaderGroupCreateInfoNV & operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40068     {
40069       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV const *>( &rhs );
40070       return *this;
40071     }
40072 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40073     RayTracingShaderGroupCreateInfoNV & operator=( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40074     {
40075       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingShaderGroupCreateInfoNV ) );
40076       return *this;
40077     }
40078 
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40079     RayTracingShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40080     {
40081       pNext = pNext_;
40082       return *this;
40083     }
40084 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40085     RayTracingShaderGroupCreateInfoNV & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
40086     {
40087       type = type_;
40088       return *this;
40089     }
40090 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40091     RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
40092     {
40093       generalShader = generalShader_;
40094       return *this;
40095     }
40096 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40097     RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
40098     {
40099       closestHitShader = closestHitShader_;
40100       return *this;
40101     }
40102 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40103     RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
40104     {
40105       anyHitShader = anyHitShader_;
40106       return *this;
40107     }
40108 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40109     RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
40110     {
40111       intersectionShader = intersectionShader_;
40112       return *this;
40113     }
40114 
40115 
operator VkRayTracingShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40116     operator VkRayTracingShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
40117     {
40118       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoNV*>( this );
40119     }
40120 
operator VkRayTracingShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40121     operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
40122     {
40123       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>( this );
40124     }
40125 
40126 
40127 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40128     auto operator<=>( RayTracingShaderGroupCreateInfoNV const& ) const = default;
40129 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40130     bool operator==( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40131     {
40132       return ( sType == rhs.sType )
40133           && ( pNext == rhs.pNext )
40134           && ( type == rhs.type )
40135           && ( generalShader == rhs.generalShader )
40136           && ( closestHitShader == rhs.closestHitShader )
40137           && ( anyHitShader == rhs.anyHitShader )
40138           && ( intersectionShader == rhs.intersectionShader );
40139     }
40140 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40141     bool operator!=( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40142     {
40143       return !operator==( rhs );
40144     }
40145 #endif
40146 
40147 
40148 
40149   public:
40150     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV;
40151     const void* pNext = {};
40152     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
40153     uint32_t generalShader = {};
40154     uint32_t closestHitShader = {};
40155     uint32_t anyHitShader = {};
40156     uint32_t intersectionShader = {};
40157 
40158   };
40159   static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
40160   static_assert( std::is_standard_layout<RayTracingShaderGroupCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
40161 
40162   template <>
40163   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoNV>
40164   {
40165     using Type = RayTracingShaderGroupCreateInfoNV;
40166   };
40167 
40168   struct RayTracingPipelineCreateInfoNV
40169   {
40170     static const bool allowDuplicate = false;
40171     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoNV;
40172 
40173 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40174     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
40175     : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxRecursionDepth( maxRecursionDepth_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
40176     {}
40177 
40178     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40179 
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40180     RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40181     {
40182       *this = rhs;
40183     }
40184 
40185 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40186     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_ = {} )
40187     : 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_ )
40188     {}
40189 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40190 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40191 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40192     RayTracingPipelineCreateInfoNV & operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40193     {
40194       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const *>( &rhs );
40195       return *this;
40196     }
40197 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40198     RayTracingPipelineCreateInfoNV & operator=( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40199     {
40200       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingPipelineCreateInfoNV ) );
40201       return *this;
40202     }
40203 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40204     RayTracingPipelineCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40205     {
40206       pNext = pNext_;
40207       return *this;
40208     }
40209 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40210     RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40211     {
40212       flags = flags_;
40213       return *this;
40214     }
40215 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40216     RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
40217     {
40218       stageCount = stageCount_;
40219       return *this;
40220     }
40221 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40222     RayTracingPipelineCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
40223     {
40224       pStages = pStages_;
40225       return *this;
40226     }
40227 
40228 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40229     RayTracingPipelineCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
40230     {
40231       stageCount = static_cast<uint32_t>( stages_.size() );
40232       pStages = stages_.data();
40233       return *this;
40234     }
40235 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40236 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40237     RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
40238     {
40239       groupCount = groupCount_;
40240       return *this;
40241     }
40242 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40243     RayTracingPipelineCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT
40244     {
40245       pGroups = pGroups_;
40246       return *this;
40247     }
40248 
40249 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40250     RayTracingPipelineCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
40251     {
40252       groupCount = static_cast<uint32_t>( groups_.size() );
40253       pGroups = groups_.data();
40254       return *this;
40255     }
40256 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40257 
setMaxRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40258     RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
40259     {
40260       maxRecursionDepth = maxRecursionDepth_;
40261       return *this;
40262     }
40263 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40264     RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
40265     {
40266       layout = layout_;
40267       return *this;
40268     }
40269 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40270     RayTracingPipelineCreateInfoNV & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
40271     {
40272       basePipelineHandle = basePipelineHandle_;
40273       return *this;
40274     }
40275 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40276     RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
40277     {
40278       basePipelineIndex = basePipelineIndex_;
40279       return *this;
40280     }
40281 
40282 
operator VkRayTracingPipelineCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40283     operator VkRayTracingPipelineCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
40284     {
40285       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( this );
40286     }
40287 
operator VkRayTracingPipelineCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40288     operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT
40289     {
40290       return *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>( this );
40291     }
40292 
40293 
40294 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40295     auto operator<=>( RayTracingPipelineCreateInfoNV const& ) const = default;
40296 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40297     bool operator==( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40298     {
40299       return ( sType == rhs.sType )
40300           && ( pNext == rhs.pNext )
40301           && ( flags == rhs.flags )
40302           && ( stageCount == rhs.stageCount )
40303           && ( pStages == rhs.pStages )
40304           && ( groupCount == rhs.groupCount )
40305           && ( pGroups == rhs.pGroups )
40306           && ( maxRecursionDepth == rhs.maxRecursionDepth )
40307           && ( layout == rhs.layout )
40308           && ( basePipelineHandle == rhs.basePipelineHandle )
40309           && ( basePipelineIndex == rhs.basePipelineIndex );
40310     }
40311 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40312     bool operator!=( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40313     {
40314       return !operator==( rhs );
40315     }
40316 #endif
40317 
40318 
40319 
40320   public:
40321     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV;
40322     const void* pNext = {};
40323     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
40324     uint32_t stageCount = {};
40325     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
40326     uint32_t groupCount = {};
40327     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups = {};
40328     uint32_t maxRecursionDepth = {};
40329     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
40330     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
40331     int32_t basePipelineIndex = {};
40332 
40333   };
40334   static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), "struct and wrapper have different size!" );
40335   static_assert( std::is_standard_layout<RayTracingPipelineCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
40336 
40337   template <>
40338   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoNV>
40339   {
40340     using Type = RayTracingPipelineCreateInfoNV;
40341   };
40342 
40343   struct SubpassDescription
40344   {
40345 
40346 
40347 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription40348     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
40349     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ )
40350     {}
40351 
40352     VULKAN_HPP_CONSTEXPR SubpassDescription( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40353 
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription40354     SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40355     {
40356       *this = rhs;
40357     }
40358 
40359 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription40360     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_ = {} )
40361     : 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() )
40362     {
40363 #ifdef VULKAN_HPP_NO_EXCEPTIONS
40364       VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
40365 #else
40366       if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
40367       {
40368         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription::SubpassDescription: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
40369       }
40370 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
40371     }
40372 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40373 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40374 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription40375     SubpassDescription & operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40376     {
40377       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription const *>( &rhs );
40378       return *this;
40379     }
40380 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription40381     SubpassDescription & operator=( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40382     {
40383       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDescription ) );
40384       return *this;
40385     }
40386 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription40387     SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
40388     {
40389       flags = flags_;
40390       return *this;
40391     }
40392 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription40393     SubpassDescription & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
40394     {
40395       pipelineBindPoint = pipelineBindPoint_;
40396       return *this;
40397     }
40398 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription40399     SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40400     {
40401       inputAttachmentCount = inputAttachmentCount_;
40402       return *this;
40403     }
40404 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40405     SubpassDescription & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
40406     {
40407       pInputAttachments = pInputAttachments_;
40408       return *this;
40409     }
40410 
40411 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40412     SubpassDescription & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
40413     {
40414       inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
40415       pInputAttachments = inputAttachments_.data();
40416       return *this;
40417     }
40418 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40419 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription40420     SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40421     {
40422       colorAttachmentCount = colorAttachmentCount_;
40423       return *this;
40424     }
40425 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40426     SubpassDescription & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
40427     {
40428       pColorAttachments = pColorAttachments_;
40429       return *this;
40430     }
40431 
40432 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40433     SubpassDescription & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
40434     {
40435       colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
40436       pColorAttachments = colorAttachments_.data();
40437       return *this;
40438     }
40439 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40440 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40441     SubpassDescription & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
40442     {
40443       pResolveAttachments = pResolveAttachments_;
40444       return *this;
40445     }
40446 
40447 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40448     SubpassDescription & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
40449     {
40450       colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
40451       pResolveAttachments = resolveAttachments_.data();
40452       return *this;
40453     }
40454 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40455 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription40456     SubpassDescription & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
40457     {
40458       pDepthStencilAttachment = pDepthStencilAttachment_;
40459       return *this;
40460     }
40461 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription40462     SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40463     {
40464       preserveAttachmentCount = preserveAttachmentCount_;
40465       return *this;
40466     }
40467 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40468     SubpassDescription & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
40469     {
40470       pPreserveAttachments = pPreserveAttachments_;
40471       return *this;
40472     }
40473 
40474 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40475     SubpassDescription & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
40476     {
40477       preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
40478       pPreserveAttachments = preserveAttachments_.data();
40479       return *this;
40480     }
40481 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40482 
40483 
operator VkSubpassDescription const&VULKAN_HPP_NAMESPACE::SubpassDescription40484     operator VkSubpassDescription const&() const VULKAN_HPP_NOEXCEPT
40485     {
40486       return *reinterpret_cast<const VkSubpassDescription*>( this );
40487     }
40488 
operator VkSubpassDescription&VULKAN_HPP_NAMESPACE::SubpassDescription40489     operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT
40490     {
40491       return *reinterpret_cast<VkSubpassDescription*>( this );
40492     }
40493 
40494 
40495 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40496     auto operator<=>( SubpassDescription const& ) const = default;
40497 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription40498     bool operator==( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
40499     {
40500       return ( flags == rhs.flags )
40501           && ( pipelineBindPoint == rhs.pipelineBindPoint )
40502           && ( inputAttachmentCount == rhs.inputAttachmentCount )
40503           && ( pInputAttachments == rhs.pInputAttachments )
40504           && ( colorAttachmentCount == rhs.colorAttachmentCount )
40505           && ( pColorAttachments == rhs.pColorAttachments )
40506           && ( pResolveAttachments == rhs.pResolveAttachments )
40507           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
40508           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
40509           && ( pPreserveAttachments == rhs.pPreserveAttachments );
40510     }
40511 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription40512     bool operator!=( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
40513     {
40514       return !operator==( rhs );
40515     }
40516 #endif
40517 
40518 
40519 
40520   public:
40521     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
40522     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
40523     uint32_t inputAttachmentCount = {};
40524     const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments = {};
40525     uint32_t colorAttachmentCount = {};
40526     const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments = {};
40527     const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments = {};
40528     const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment = {};
40529     uint32_t preserveAttachmentCount = {};
40530     const uint32_t* pPreserveAttachments = {};
40531 
40532   };
40533   static_assert( sizeof( SubpassDescription ) == sizeof( VkSubpassDescription ), "struct and wrapper have different size!" );
40534   static_assert( std::is_standard_layout<SubpassDescription>::value, "struct wrapper is not a standard layout!" );
40535 
40536   struct SubpassDependency
40537   {
40538 
40539 
40540 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency40541     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
40542     : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ )
40543     {}
40544 
40545     VULKAN_HPP_CONSTEXPR SubpassDependency( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40546 
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency40547     SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
40548     {
40549       *this = rhs;
40550     }
40551 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40552 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency40553     SubpassDependency & operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
40554     {
40555       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency const *>( &rhs );
40556       return *this;
40557     }
40558 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency40559     SubpassDependency & operator=( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
40560     {
40561       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDependency ) );
40562       return *this;
40563     }
40564 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency40565     SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
40566     {
40567       srcSubpass = srcSubpass_;
40568       return *this;
40569     }
40570 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency40571     SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
40572     {
40573       dstSubpass = dstSubpass_;
40574       return *this;
40575     }
40576 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency40577     SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
40578     {
40579       srcStageMask = srcStageMask_;
40580       return *this;
40581     }
40582 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency40583     SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
40584     {
40585       dstStageMask = dstStageMask_;
40586       return *this;
40587     }
40588 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency40589     SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
40590     {
40591       srcAccessMask = srcAccessMask_;
40592       return *this;
40593     }
40594 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency40595     SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
40596     {
40597       dstAccessMask = dstAccessMask_;
40598       return *this;
40599     }
40600 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency40601     SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
40602     {
40603       dependencyFlags = dependencyFlags_;
40604       return *this;
40605     }
40606 
40607 
operator VkSubpassDependency const&VULKAN_HPP_NAMESPACE::SubpassDependency40608     operator VkSubpassDependency const&() const VULKAN_HPP_NOEXCEPT
40609     {
40610       return *reinterpret_cast<const VkSubpassDependency*>( this );
40611     }
40612 
operator VkSubpassDependency&VULKAN_HPP_NAMESPACE::SubpassDependency40613     operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT
40614     {
40615       return *reinterpret_cast<VkSubpassDependency*>( this );
40616     }
40617 
40618 
40619 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40620     auto operator<=>( SubpassDependency const& ) const = default;
40621 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency40622     bool operator==( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT
40623     {
40624       return ( srcSubpass == rhs.srcSubpass )
40625           && ( dstSubpass == rhs.dstSubpass )
40626           && ( srcStageMask == rhs.srcStageMask )
40627           && ( dstStageMask == rhs.dstStageMask )
40628           && ( srcAccessMask == rhs.srcAccessMask )
40629           && ( dstAccessMask == rhs.dstAccessMask )
40630           && ( dependencyFlags == rhs.dependencyFlags );
40631     }
40632 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency40633     bool operator!=( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT
40634     {
40635       return !operator==( rhs );
40636     }
40637 #endif
40638 
40639 
40640 
40641   public:
40642     uint32_t srcSubpass = {};
40643     uint32_t dstSubpass = {};
40644     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
40645     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
40646     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
40647     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
40648     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
40649 
40650   };
40651   static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), "struct and wrapper have different size!" );
40652   static_assert( std::is_standard_layout<SubpassDependency>::value, "struct wrapper is not a standard layout!" );
40653 
40654   struct RenderPassCreateInfo
40655   {
40656     static const bool allowDuplicate = false;
40657     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo;
40658 
40659 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40660     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
40661     : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ )
40662     {}
40663 
40664     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40665 
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40666     RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40667     {
40668       *this = rhs;
40669     }
40670 
40671 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40672     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_ = {} )
40673     : 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() )
40674     {}
40675 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40676 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40677 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40678     RenderPassCreateInfo & operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40679     {
40680       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const *>( &rhs );
40681       return *this;
40682     }
40683 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40684     RenderPassCreateInfo & operator=( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40685     {
40686       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassCreateInfo ) );
40687       return *this;
40688     }
40689 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40690     RenderPassCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40691     {
40692       pNext = pNext_;
40693       return *this;
40694     }
40695 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40696     RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40697     {
40698       flags = flags_;
40699       return *this;
40700     }
40701 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40702     RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
40703     {
40704       attachmentCount = attachmentCount_;
40705       return *this;
40706     }
40707 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40708     RenderPassCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ ) VULKAN_HPP_NOEXCEPT
40709     {
40710       pAttachments = pAttachments_;
40711       return *this;
40712     }
40713 
40714 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40715     RenderPassCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const & attachments_ ) VULKAN_HPP_NOEXCEPT
40716     {
40717       attachmentCount = static_cast<uint32_t>( attachments_.size() );
40718       pAttachments = attachments_.data();
40719       return *this;
40720     }
40721 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40722 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40723     RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
40724     {
40725       subpassCount = subpassCount_;
40726       return *this;
40727     }
40728 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40729     RenderPassCreateInfo & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ ) VULKAN_HPP_NOEXCEPT
40730     {
40731       pSubpasses = pSubpasses_;
40732       return *this;
40733     }
40734 
40735 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40736     RenderPassCreateInfo & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
40737     {
40738       subpassCount = static_cast<uint32_t>( subpasses_.size() );
40739       pSubpasses = subpasses_.data();
40740       return *this;
40741     }
40742 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40743 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40744     RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
40745     {
40746       dependencyCount = dependencyCount_;
40747       return *this;
40748     }
40749 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40750     RenderPassCreateInfo & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ ) VULKAN_HPP_NOEXCEPT
40751     {
40752       pDependencies = pDependencies_;
40753       return *this;
40754     }
40755 
40756 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40757     RenderPassCreateInfo & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
40758     {
40759       dependencyCount = static_cast<uint32_t>( dependencies_.size() );
40760       pDependencies = dependencies_.data();
40761       return *this;
40762     }
40763 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40764 
40765 
operator VkRenderPassCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40766     operator VkRenderPassCreateInfo const&() const VULKAN_HPP_NOEXCEPT
40767     {
40768       return *reinterpret_cast<const VkRenderPassCreateInfo*>( this );
40769     }
40770 
operator VkRenderPassCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40771     operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT
40772     {
40773       return *reinterpret_cast<VkRenderPassCreateInfo*>( this );
40774     }
40775 
40776 
40777 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40778     auto operator<=>( RenderPassCreateInfo const& ) const = default;
40779 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40780     bool operator==( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40781     {
40782       return ( sType == rhs.sType )
40783           && ( pNext == rhs.pNext )
40784           && ( flags == rhs.flags )
40785           && ( attachmentCount == rhs.attachmentCount )
40786           && ( pAttachments == rhs.pAttachments )
40787           && ( subpassCount == rhs.subpassCount )
40788           && ( pSubpasses == rhs.pSubpasses )
40789           && ( dependencyCount == rhs.dependencyCount )
40790           && ( pDependencies == rhs.pDependencies );
40791     }
40792 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40793     bool operator!=( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40794     {
40795       return !operator==( rhs );
40796     }
40797 #endif
40798 
40799 
40800 
40801   public:
40802     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo;
40803     const void* pNext = {};
40804     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
40805     uint32_t attachmentCount = {};
40806     const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments = {};
40807     uint32_t subpassCount = {};
40808     const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses = {};
40809     uint32_t dependencyCount = {};
40810     const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies = {};
40811 
40812   };
40813   static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" );
40814   static_assert( std::is_standard_layout<RenderPassCreateInfo>::value, "struct wrapper is not a standard layout!" );
40815 
40816   template <>
40817   struct CppType<StructureType, StructureType::eRenderPassCreateInfo>
40818   {
40819     using Type = RenderPassCreateInfo;
40820   };
40821 
40822   struct SubpassDescription2
40823   {
40824     static const bool allowDuplicate = false;
40825     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescription2;
40826 
40827 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription240828     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
40829     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), viewMask( viewMask_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ )
40830     {}
40831 
40832     VULKAN_HPP_CONSTEXPR SubpassDescription2( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40833 
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription240834     SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
40835     {
40836       *this = rhs;
40837     }
40838 
40839 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription240840     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_ = {} )
40841     : 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() )
40842     {
40843 #ifdef VULKAN_HPP_NO_EXCEPTIONS
40844       VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
40845 #else
40846       if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
40847       {
40848         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription2::SubpassDescription2: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
40849       }
40850 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
40851     }
40852 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40853 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40854 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription240855     SubpassDescription2 & operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
40856     {
40857       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription2 const *>( &rhs );
40858       return *this;
40859     }
40860 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription240861     SubpassDescription2 & operator=( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
40862     {
40863       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDescription2 ) );
40864       return *this;
40865     }
40866 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescription240867     SubpassDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40868     {
40869       pNext = pNext_;
40870       return *this;
40871     }
40872 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription240873     SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
40874     {
40875       flags = flags_;
40876       return *this;
40877     }
40878 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription240879     SubpassDescription2 & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
40880     {
40881       pipelineBindPoint = pipelineBindPoint_;
40882       return *this;
40883     }
40884 
setViewMaskVULKAN_HPP_NAMESPACE::SubpassDescription240885     SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
40886     {
40887       viewMask = viewMask_;
40888       return *this;
40889     }
40890 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription240891     SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40892     {
40893       inputAttachmentCount = inputAttachmentCount_;
40894       return *this;
40895     }
40896 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240897     SubpassDescription2 & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
40898     {
40899       pInputAttachments = pInputAttachments_;
40900       return *this;
40901     }
40902 
40903 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240904     SubpassDescription2 & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
40905     {
40906       inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
40907       pInputAttachments = inputAttachments_.data();
40908       return *this;
40909     }
40910 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40911 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription240912     SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40913     {
40914       colorAttachmentCount = colorAttachmentCount_;
40915       return *this;
40916     }
40917 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240918     SubpassDescription2 & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
40919     {
40920       pColorAttachments = pColorAttachments_;
40921       return *this;
40922     }
40923 
40924 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240925     SubpassDescription2 & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
40926     {
40927       colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
40928       pColorAttachments = colorAttachments_.data();
40929       return *this;
40930     }
40931 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40932 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240933     SubpassDescription2 & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
40934     {
40935       pResolveAttachments = pResolveAttachments_;
40936       return *this;
40937     }
40938 
40939 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240940     SubpassDescription2 & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
40941     {
40942       colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
40943       pResolveAttachments = resolveAttachments_.data();
40944       return *this;
40945     }
40946 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40947 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription240948     SubpassDescription2 & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
40949     {
40950       pDepthStencilAttachment = pDepthStencilAttachment_;
40951       return *this;
40952     }
40953 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription240954     SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40955     {
40956       preserveAttachmentCount = preserveAttachmentCount_;
40957       return *this;
40958     }
40959 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240960     SubpassDescription2 & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
40961     {
40962       pPreserveAttachments = pPreserveAttachments_;
40963       return *this;
40964     }
40965 
40966 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240967     SubpassDescription2 & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
40968     {
40969       preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
40970       pPreserveAttachments = preserveAttachments_.data();
40971       return *this;
40972     }
40973 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40974 
40975 
operator VkSubpassDescription2 const&VULKAN_HPP_NAMESPACE::SubpassDescription240976     operator VkSubpassDescription2 const&() const VULKAN_HPP_NOEXCEPT
40977     {
40978       return *reinterpret_cast<const VkSubpassDescription2*>( this );
40979     }
40980 
operator VkSubpassDescription2&VULKAN_HPP_NAMESPACE::SubpassDescription240981     operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT
40982     {
40983       return *reinterpret_cast<VkSubpassDescription2*>( this );
40984     }
40985 
40986 
40987 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40988     auto operator<=>( SubpassDescription2 const& ) const = default;
40989 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription240990     bool operator==( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
40991     {
40992       return ( sType == rhs.sType )
40993           && ( pNext == rhs.pNext )
40994           && ( flags == rhs.flags )
40995           && ( pipelineBindPoint == rhs.pipelineBindPoint )
40996           && ( viewMask == rhs.viewMask )
40997           && ( inputAttachmentCount == rhs.inputAttachmentCount )
40998           && ( pInputAttachments == rhs.pInputAttachments )
40999           && ( colorAttachmentCount == rhs.colorAttachmentCount )
41000           && ( pColorAttachments == rhs.pColorAttachments )
41001           && ( pResolveAttachments == rhs.pResolveAttachments )
41002           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
41003           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
41004           && ( pPreserveAttachments == rhs.pPreserveAttachments );
41005     }
41006 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription241007     bool operator!=( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41008     {
41009       return !operator==( rhs );
41010     }
41011 #endif
41012 
41013 
41014 
41015   public:
41016     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2;
41017     const void* pNext = {};
41018     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
41019     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
41020     uint32_t viewMask = {};
41021     uint32_t inputAttachmentCount = {};
41022     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments = {};
41023     uint32_t colorAttachmentCount = {};
41024     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments = {};
41025     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments = {};
41026     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment = {};
41027     uint32_t preserveAttachmentCount = {};
41028     const uint32_t* pPreserveAttachments = {};
41029 
41030   };
41031   static_assert( sizeof( SubpassDescription2 ) == sizeof( VkSubpassDescription2 ), "struct and wrapper have different size!" );
41032   static_assert( std::is_standard_layout<SubpassDescription2>::value, "struct wrapper is not a standard layout!" );
41033 
41034   template <>
41035   struct CppType<StructureType, StructureType::eSubpassDescription2>
41036   {
41037     using Type = SubpassDescription2;
41038   };
41039   using SubpassDescription2KHR = SubpassDescription2;
41040 
41041   struct SubpassDependency2
41042   {
41043     static const bool allowDuplicate = false;
41044     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDependency2;
41045 
41046 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency241047     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
41048     : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ ), viewOffset( viewOffset_ )
41049     {}
41050 
41051     VULKAN_HPP_CONSTEXPR SubpassDependency2( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41052 
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency241053     SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
41054     {
41055       *this = rhs;
41056     }
41057 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41058 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency241059     SubpassDependency2 & operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
41060     {
41061       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency2 const *>( &rhs );
41062       return *this;
41063     }
41064 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency241065     SubpassDependency2 & operator=( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
41066     {
41067       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDependency2 ) );
41068       return *this;
41069     }
41070 
setPNextVULKAN_HPP_NAMESPACE::SubpassDependency241071     SubpassDependency2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41072     {
41073       pNext = pNext_;
41074       return *this;
41075     }
41076 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency241077     SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
41078     {
41079       srcSubpass = srcSubpass_;
41080       return *this;
41081     }
41082 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency241083     SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
41084     {
41085       dstSubpass = dstSubpass_;
41086       return *this;
41087     }
41088 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency241089     SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
41090     {
41091       srcStageMask = srcStageMask_;
41092       return *this;
41093     }
41094 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency241095     SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
41096     {
41097       dstStageMask = dstStageMask_;
41098       return *this;
41099     }
41100 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency241101     SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
41102     {
41103       srcAccessMask = srcAccessMask_;
41104       return *this;
41105     }
41106 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency241107     SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
41108     {
41109       dstAccessMask = dstAccessMask_;
41110       return *this;
41111     }
41112 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency241113     SubpassDependency2 & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
41114     {
41115       dependencyFlags = dependencyFlags_;
41116       return *this;
41117     }
41118 
setViewOffsetVULKAN_HPP_NAMESPACE::SubpassDependency241119     SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT
41120     {
41121       viewOffset = viewOffset_;
41122       return *this;
41123     }
41124 
41125 
operator VkSubpassDependency2 const&VULKAN_HPP_NAMESPACE::SubpassDependency241126     operator VkSubpassDependency2 const&() const VULKAN_HPP_NOEXCEPT
41127     {
41128       return *reinterpret_cast<const VkSubpassDependency2*>( this );
41129     }
41130 
operator VkSubpassDependency2&VULKAN_HPP_NAMESPACE::SubpassDependency241131     operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT
41132     {
41133       return *reinterpret_cast<VkSubpassDependency2*>( this );
41134     }
41135 
41136 
41137 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41138     auto operator<=>( SubpassDependency2 const& ) const = default;
41139 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency241140     bool operator==( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41141     {
41142       return ( sType == rhs.sType )
41143           && ( pNext == rhs.pNext )
41144           && ( srcSubpass == rhs.srcSubpass )
41145           && ( dstSubpass == rhs.dstSubpass )
41146           && ( srcStageMask == rhs.srcStageMask )
41147           && ( dstStageMask == rhs.dstStageMask )
41148           && ( srcAccessMask == rhs.srcAccessMask )
41149           && ( dstAccessMask == rhs.dstAccessMask )
41150           && ( dependencyFlags == rhs.dependencyFlags )
41151           && ( viewOffset == rhs.viewOffset );
41152     }
41153 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency241154     bool operator!=( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41155     {
41156       return !operator==( rhs );
41157     }
41158 #endif
41159 
41160 
41161 
41162   public:
41163     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2;
41164     const void* pNext = {};
41165     uint32_t srcSubpass = {};
41166     uint32_t dstSubpass = {};
41167     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
41168     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
41169     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
41170     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
41171     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
41172     int32_t viewOffset = {};
41173 
41174   };
41175   static_assert( sizeof( SubpassDependency2 ) == sizeof( VkSubpassDependency2 ), "struct and wrapper have different size!" );
41176   static_assert( std::is_standard_layout<SubpassDependency2>::value, "struct wrapper is not a standard layout!" );
41177 
41178   template <>
41179   struct CppType<StructureType, StructureType::eSubpassDependency2>
41180   {
41181     using Type = SubpassDependency2;
41182   };
41183   using SubpassDependency2KHR = SubpassDependency2;
41184 
41185   struct RenderPassCreateInfo2
41186   {
41187     static const bool allowDuplicate = false;
41188     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo2;
41189 
41190 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241191     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
41192     : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ ), correlatedViewMaskCount( correlatedViewMaskCount_ ), pCorrelatedViewMasks( pCorrelatedViewMasks_ )
41193     {}
41194 
41195     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41196 
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241197     RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41198     {
41199       *this = rhs;
41200     }
41201 
41202 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241203     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_ = {} )
41204     : 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() )
41205     {}
41206 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41207 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41208 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241209     RenderPassCreateInfo2 & operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41210     {
41211       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const *>( &rhs );
41212       return *this;
41213     }
41214 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241215     RenderPassCreateInfo2 & operator=( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41216     {
41217       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassCreateInfo2 ) );
41218       return *this;
41219     }
41220 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241221     RenderPassCreateInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41222     {
41223       pNext = pNext_;
41224       return *this;
41225     }
41226 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241227     RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41228     {
41229       flags = flags_;
41230       return *this;
41231     }
41232 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241233     RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
41234     {
41235       attachmentCount = attachmentCount_;
41236       return *this;
41237     }
41238 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241239     RenderPassCreateInfo2 & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ ) VULKAN_HPP_NOEXCEPT
41240     {
41241       pAttachments = pAttachments_;
41242       return *this;
41243     }
41244 
41245 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241246     RenderPassCreateInfo2 & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const & attachments_ ) VULKAN_HPP_NOEXCEPT
41247     {
41248       attachmentCount = static_cast<uint32_t>( attachments_.size() );
41249       pAttachments = attachments_.data();
41250       return *this;
41251     }
41252 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41253 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241254     RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
41255     {
41256       subpassCount = subpassCount_;
41257       return *this;
41258     }
41259 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241260     RenderPassCreateInfo2 & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ ) VULKAN_HPP_NOEXCEPT
41261     {
41262       pSubpasses = pSubpasses_;
41263       return *this;
41264     }
41265 
41266 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241267     RenderPassCreateInfo2 & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
41268     {
41269       subpassCount = static_cast<uint32_t>( subpasses_.size() );
41270       pSubpasses = subpasses_.data();
41271       return *this;
41272     }
41273 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41274 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241275     RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
41276     {
41277       dependencyCount = dependencyCount_;
41278       return *this;
41279     }
41280 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241281     RenderPassCreateInfo2 & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ ) VULKAN_HPP_NOEXCEPT
41282     {
41283       pDependencies = pDependencies_;
41284       return *this;
41285     }
41286 
41287 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241288     RenderPassCreateInfo2 & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
41289     {
41290       dependencyCount = static_cast<uint32_t>( dependencies_.size() );
41291       pDependencies = dependencies_.data();
41292       return *this;
41293     }
41294 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41295 
setCorrelatedViewMaskCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241296     RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT
41297     {
41298       correlatedViewMaskCount = correlatedViewMaskCount_;
41299       return *this;
41300     }
41301 
setPCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241302     RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t* pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
41303     {
41304       pCorrelatedViewMasks = pCorrelatedViewMasks_;
41305       return *this;
41306     }
41307 
41308 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241309     RenderPassCreateInfo2 & setCorrelatedViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
41310     {
41311       correlatedViewMaskCount = static_cast<uint32_t>( correlatedViewMasks_.size() );
41312       pCorrelatedViewMasks = correlatedViewMasks_.data();
41313       return *this;
41314     }
41315 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41316 
41317 
operator VkRenderPassCreateInfo2 const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241318     operator VkRenderPassCreateInfo2 const&() const VULKAN_HPP_NOEXCEPT
41319     {
41320       return *reinterpret_cast<const VkRenderPassCreateInfo2*>( this );
41321     }
41322 
operator VkRenderPassCreateInfo2&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241323     operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT
41324     {
41325       return *reinterpret_cast<VkRenderPassCreateInfo2*>( this );
41326     }
41327 
41328 
41329 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41330     auto operator<=>( RenderPassCreateInfo2 const& ) const = default;
41331 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241332     bool operator==( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41333     {
41334       return ( sType == rhs.sType )
41335           && ( pNext == rhs.pNext )
41336           && ( flags == rhs.flags )
41337           && ( attachmentCount == rhs.attachmentCount )
41338           && ( pAttachments == rhs.pAttachments )
41339           && ( subpassCount == rhs.subpassCount )
41340           && ( pSubpasses == rhs.pSubpasses )
41341           && ( dependencyCount == rhs.dependencyCount )
41342           && ( pDependencies == rhs.pDependencies )
41343           && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount )
41344           && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks );
41345     }
41346 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241347     bool operator!=( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41348     {
41349       return !operator==( rhs );
41350     }
41351 #endif
41352 
41353 
41354 
41355   public:
41356     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2;
41357     const void* pNext = {};
41358     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
41359     uint32_t attachmentCount = {};
41360     const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments = {};
41361     uint32_t subpassCount = {};
41362     const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses = {};
41363     uint32_t dependencyCount = {};
41364     const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies = {};
41365     uint32_t correlatedViewMaskCount = {};
41366     const uint32_t* pCorrelatedViewMasks = {};
41367 
41368   };
41369   static_assert( sizeof( RenderPassCreateInfo2 ) == sizeof( VkRenderPassCreateInfo2 ), "struct and wrapper have different size!" );
41370   static_assert( std::is_standard_layout<RenderPassCreateInfo2>::value, "struct wrapper is not a standard layout!" );
41371 
41372   template <>
41373   struct CppType<StructureType, StructureType::eRenderPassCreateInfo2>
41374   {
41375     using Type = RenderPassCreateInfo2;
41376   };
41377   using RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
41378 
41379   struct SamplerCreateInfo
41380   {
41381     static const bool allowDuplicate = false;
41382     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCreateInfo;
41383 
41384 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo41385     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
41386     : 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_ )
41387     {}
41388 
41389     VULKAN_HPP_CONSTEXPR SamplerCreateInfo( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41390 
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo41391     SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41392     {
41393       *this = rhs;
41394     }
41395 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41396 
operator =VULKAN_HPP_NAMESPACE::SamplerCreateInfo41397     SamplerCreateInfo & operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41398     {
41399       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCreateInfo const *>( &rhs );
41400       return *this;
41401     }
41402 
operator =VULKAN_HPP_NAMESPACE::SamplerCreateInfo41403     SamplerCreateInfo & operator=( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41404     {
41405       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerCreateInfo ) );
41406       return *this;
41407     }
41408 
setPNextVULKAN_HPP_NAMESPACE::SamplerCreateInfo41409     SamplerCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41410     {
41411       pNext = pNext_;
41412       return *this;
41413     }
41414 
setFlagsVULKAN_HPP_NAMESPACE::SamplerCreateInfo41415     SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41416     {
41417       flags = flags_;
41418       return *this;
41419     }
41420 
setMagFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo41421     SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT
41422     {
41423       magFilter = magFilter_;
41424       return *this;
41425     }
41426 
setMinFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo41427     SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT
41428     {
41429       minFilter = minFilter_;
41430       return *this;
41431     }
41432 
setMipmapModeVULKAN_HPP_NAMESPACE::SamplerCreateInfo41433     SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT
41434     {
41435       mipmapMode = mipmapMode_;
41436       return *this;
41437     }
41438 
setAddressModeUVULKAN_HPP_NAMESPACE::SamplerCreateInfo41439     SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT
41440     {
41441       addressModeU = addressModeU_;
41442       return *this;
41443     }
41444 
setAddressModeVVULKAN_HPP_NAMESPACE::SamplerCreateInfo41445     SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT
41446     {
41447       addressModeV = addressModeV_;
41448       return *this;
41449     }
41450 
setAddressModeWVULKAN_HPP_NAMESPACE::SamplerCreateInfo41451     SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT
41452     {
41453       addressModeW = addressModeW_;
41454       return *this;
41455     }
41456 
setMipLodBiasVULKAN_HPP_NAMESPACE::SamplerCreateInfo41457     SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT
41458     {
41459       mipLodBias = mipLodBias_;
41460       return *this;
41461     }
41462 
setAnisotropyEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo41463     SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT
41464     {
41465       anisotropyEnable = anisotropyEnable_;
41466       return *this;
41467     }
41468 
setMaxAnisotropyVULKAN_HPP_NAMESPACE::SamplerCreateInfo41469     SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT
41470     {
41471       maxAnisotropy = maxAnisotropy_;
41472       return *this;
41473     }
41474 
setCompareEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo41475     SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT
41476     {
41477       compareEnable = compareEnable_;
41478       return *this;
41479     }
41480 
setCompareOpVULKAN_HPP_NAMESPACE::SamplerCreateInfo41481     SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
41482     {
41483       compareOp = compareOp_;
41484       return *this;
41485     }
41486 
setMinLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo41487     SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT
41488     {
41489       minLod = minLod_;
41490       return *this;
41491     }
41492 
setMaxLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo41493     SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT
41494     {
41495       maxLod = maxLod_;
41496       return *this;
41497     }
41498 
setBorderColorVULKAN_HPP_NAMESPACE::SamplerCreateInfo41499     SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT
41500     {
41501       borderColor = borderColor_;
41502       return *this;
41503     }
41504 
setUnnormalizedCoordinatesVULKAN_HPP_NAMESPACE::SamplerCreateInfo41505     SamplerCreateInfo & setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT
41506     {
41507       unnormalizedCoordinates = unnormalizedCoordinates_;
41508       return *this;
41509     }
41510 
41511 
operator VkSamplerCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerCreateInfo41512     operator VkSamplerCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41513     {
41514       return *reinterpret_cast<const VkSamplerCreateInfo*>( this );
41515     }
41516 
operator VkSamplerCreateInfo&VULKAN_HPP_NAMESPACE::SamplerCreateInfo41517     operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT
41518     {
41519       return *reinterpret_cast<VkSamplerCreateInfo*>( this );
41520     }
41521 
41522 
41523 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41524     auto operator<=>( SamplerCreateInfo const& ) const = default;
41525 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerCreateInfo41526     bool operator==( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41527     {
41528       return ( sType == rhs.sType )
41529           && ( pNext == rhs.pNext )
41530           && ( flags == rhs.flags )
41531           && ( magFilter == rhs.magFilter )
41532           && ( minFilter == rhs.minFilter )
41533           && ( mipmapMode == rhs.mipmapMode )
41534           && ( addressModeU == rhs.addressModeU )
41535           && ( addressModeV == rhs.addressModeV )
41536           && ( addressModeW == rhs.addressModeW )
41537           && ( mipLodBias == rhs.mipLodBias )
41538           && ( anisotropyEnable == rhs.anisotropyEnable )
41539           && ( maxAnisotropy == rhs.maxAnisotropy )
41540           && ( compareEnable == rhs.compareEnable )
41541           && ( compareOp == rhs.compareOp )
41542           && ( minLod == rhs.minLod )
41543           && ( maxLod == rhs.maxLod )
41544           && ( borderColor == rhs.borderColor )
41545           && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates );
41546     }
41547 
operator !=VULKAN_HPP_NAMESPACE::SamplerCreateInfo41548     bool operator!=( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41549     {
41550       return !operator==( rhs );
41551     }
41552 #endif
41553 
41554 
41555 
41556   public:
41557     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo;
41558     const void* pNext = {};
41559     VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {};
41560     VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
41561     VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
41562     VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest;
41563     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
41564     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
41565     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
41566     float mipLodBias = {};
41567     VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {};
41568     float maxAnisotropy = {};
41569     VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {};
41570     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
41571     float minLod = {};
41572     float maxLod = {};
41573     VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack;
41574     VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {};
41575 
41576   };
41577   static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "struct and wrapper have different size!" );
41578   static_assert( std::is_standard_layout<SamplerCreateInfo>::value, "struct wrapper is not a standard layout!" );
41579 
41580   template <>
41581   struct CppType<StructureType, StructureType::eSamplerCreateInfo>
41582   {
41583     using Type = SamplerCreateInfo;
41584   };
41585 
41586   struct SamplerYcbcrConversionCreateInfo
41587   {
41588     static const bool allowDuplicate = false;
41589     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionCreateInfo;
41590 
41591 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41592     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
41593     : format( format_ ), ycbcrModel( ycbcrModel_ ), ycbcrRange( ycbcrRange_ ), components( components_ ), xChromaOffset( xChromaOffset_ ), yChromaOffset( yChromaOffset_ ), chromaFilter( chromaFilter_ ), forceExplicitReconstruction( forceExplicitReconstruction_ )
41594     {}
41595 
41596     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41597 
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41598     SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41599     {
41600       *this = rhs;
41601     }
41602 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41603 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41604     SamplerYcbcrConversionCreateInfo & operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41605     {
41606       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const *>( &rhs );
41607       return *this;
41608     }
41609 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41610     SamplerYcbcrConversionCreateInfo & operator=( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41611     {
41612       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerYcbcrConversionCreateInfo ) );
41613       return *this;
41614     }
41615 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41616     SamplerYcbcrConversionCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41617     {
41618       pNext = pNext_;
41619       return *this;
41620     }
41621 
setFormatVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41622     SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
41623     {
41624       format = format_;
41625       return *this;
41626     }
41627 
setYcbcrModelVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41628     SamplerYcbcrConversionCreateInfo & setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT
41629     {
41630       ycbcrModel = ycbcrModel_;
41631       return *this;
41632     }
41633 
setYcbcrRangeVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41634     SamplerYcbcrConversionCreateInfo & setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT
41635     {
41636       ycbcrRange = ycbcrRange_;
41637       return *this;
41638     }
41639 
setComponentsVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41640     SamplerYcbcrConversionCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
41641     {
41642       components = components_;
41643       return *this;
41644     }
41645 
setXChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41646     SamplerYcbcrConversionCreateInfo & setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT
41647     {
41648       xChromaOffset = xChromaOffset_;
41649       return *this;
41650     }
41651 
setYChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41652     SamplerYcbcrConversionCreateInfo & setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT
41653     {
41654       yChromaOffset = yChromaOffset_;
41655       return *this;
41656     }
41657 
setChromaFilterVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41658     SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT
41659     {
41660       chromaFilter = chromaFilter_;
41661       return *this;
41662     }
41663 
setForceExplicitReconstructionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41664     SamplerYcbcrConversionCreateInfo & setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT
41665     {
41666       forceExplicitReconstruction = forceExplicitReconstruction_;
41667       return *this;
41668     }
41669 
41670 
operator VkSamplerYcbcrConversionCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41671     operator VkSamplerYcbcrConversionCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41672     {
41673       return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( this );
41674     }
41675 
operator VkSamplerYcbcrConversionCreateInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41676     operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT
41677     {
41678       return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>( this );
41679     }
41680 
41681 
41682 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41683     auto operator<=>( SamplerYcbcrConversionCreateInfo const& ) const = default;
41684 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41685     bool operator==( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41686     {
41687       return ( sType == rhs.sType )
41688           && ( pNext == rhs.pNext )
41689           && ( format == rhs.format )
41690           && ( ycbcrModel == rhs.ycbcrModel )
41691           && ( ycbcrRange == rhs.ycbcrRange )
41692           && ( components == rhs.components )
41693           && ( xChromaOffset == rhs.xChromaOffset )
41694           && ( yChromaOffset == rhs.yChromaOffset )
41695           && ( chromaFilter == rhs.chromaFilter )
41696           && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction );
41697     }
41698 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41699     bool operator!=( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41700     {
41701       return !operator==( rhs );
41702     }
41703 #endif
41704 
41705 
41706 
41707   public:
41708     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo;
41709     const void* pNext = {};
41710     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
41711     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
41712     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
41713     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
41714     VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
41715     VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
41716     VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
41717     VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {};
41718 
41719   };
41720   static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), "struct and wrapper have different size!" );
41721   static_assert( std::is_standard_layout<SamplerYcbcrConversionCreateInfo>::value, "struct wrapper is not a standard layout!" );
41722 
41723   template <>
41724   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionCreateInfo>
41725   {
41726     using Type = SamplerYcbcrConversionCreateInfo;
41727   };
41728   using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
41729 
41730   class SamplerYcbcrConversion
41731   {
41732   public:
41733     using CType = VkSamplerYcbcrConversion;
41734 
41735     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion;
41736     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion;
41737 
41738   public:
SamplerYcbcrConversion()41739     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion() VULKAN_HPP_NOEXCEPT
41740       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
41741     {}
41742 
SamplerYcbcrConversion(std::nullptr_t)41743     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
41744       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
41745     {}
41746 
SamplerYcbcrConversion(VkSamplerYcbcrConversion samplerYcbcrConversion)41747     VULKAN_HPP_TYPESAFE_EXPLICIT SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion ) VULKAN_HPP_NOEXCEPT
41748       : m_samplerYcbcrConversion( samplerYcbcrConversion )
41749     {}
41750 
41751 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSamplerYcbcrConversion samplerYcbcrConversion)41752     SamplerYcbcrConversion & operator=(VkSamplerYcbcrConversion samplerYcbcrConversion) VULKAN_HPP_NOEXCEPT
41753     {
41754       m_samplerYcbcrConversion = samplerYcbcrConversion;
41755       return *this;
41756     }
41757 #endif
41758 
operator =(std::nullptr_t)41759     SamplerYcbcrConversion & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
41760     {
41761       m_samplerYcbcrConversion = VK_NULL_HANDLE;
41762       return *this;
41763     }
41764 
41765 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41766     auto operator<=>( SamplerYcbcrConversion const& ) const = default;
41767 #else
operator ==(SamplerYcbcrConversion const & rhs) const41768     bool operator==( SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
41769     {
41770       return m_samplerYcbcrConversion == rhs.m_samplerYcbcrConversion;
41771     }
41772 
operator !=(SamplerYcbcrConversion const & rhs) const41773     bool operator!=(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
41774     {
41775       return m_samplerYcbcrConversion != rhs.m_samplerYcbcrConversion;
41776     }
41777 
operator <(SamplerYcbcrConversion const & rhs) const41778     bool operator<(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
41779     {
41780       return m_samplerYcbcrConversion < rhs.m_samplerYcbcrConversion;
41781     }
41782 #endif
41783 
operator VkSamplerYcbcrConversion() const41784     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSamplerYcbcrConversion() const VULKAN_HPP_NOEXCEPT
41785     {
41786       return m_samplerYcbcrConversion;
41787     }
41788 
operator bool() const41789     explicit operator bool() const VULKAN_HPP_NOEXCEPT
41790     {
41791       return m_samplerYcbcrConversion != VK_NULL_HANDLE;
41792     }
41793 
operator !() const41794     bool operator!() const VULKAN_HPP_NOEXCEPT
41795     {
41796       return m_samplerYcbcrConversion == VK_NULL_HANDLE;
41797     }
41798 
41799   private:
41800     VkSamplerYcbcrConversion m_samplerYcbcrConversion;
41801   };
41802   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ), "handle and wrapper have different size!" );
41803 
41804   template <>
41805   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSamplerYcbcrConversion>
41806   {
41807     using type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
41808   };
41809 
41810   template <>
41811   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion>
41812   {
41813     using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
41814   };
41815 
41816 
41817   template <>
41818   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion>
41819   {
41820     using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
41821   };
41822 
41823 
41824   template <>
41825   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
41826   {
41827     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
41828   };
41829   using SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
41830 
41831   struct SemaphoreCreateInfo
41832   {
41833     static const bool allowDuplicate = false;
41834     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreCreateInfo;
41835 
41836 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41837     VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
41838     : flags( flags_ )
41839     {}
41840 
41841     VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41842 
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41843     SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41844     {
41845       *this = rhs;
41846     }
41847 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41848 
operator =VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41849     SemaphoreCreateInfo & operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41850     {
41851       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const *>( &rhs );
41852       return *this;
41853     }
41854 
operator =VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41855     SemaphoreCreateInfo & operator=( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41856     {
41857       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreCreateInfo ) );
41858       return *this;
41859     }
41860 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41861     SemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41862     {
41863       pNext = pNext_;
41864       return *this;
41865     }
41866 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41867     SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41868     {
41869       flags = flags_;
41870       return *this;
41871     }
41872 
41873 
operator VkSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41874     operator VkSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41875     {
41876       return *reinterpret_cast<const VkSemaphoreCreateInfo*>( this );
41877     }
41878 
operator VkSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41879     operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
41880     {
41881       return *reinterpret_cast<VkSemaphoreCreateInfo*>( this );
41882     }
41883 
41884 
41885 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41886     auto operator<=>( SemaphoreCreateInfo const& ) const = default;
41887 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41888     bool operator==( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41889     {
41890       return ( sType == rhs.sType )
41891           && ( pNext == rhs.pNext )
41892           && ( flags == rhs.flags );
41893     }
41894 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41895     bool operator!=( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41896     {
41897       return !operator==( rhs );
41898     }
41899 #endif
41900 
41901 
41902 
41903   public:
41904     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo;
41905     const void* pNext = {};
41906     VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {};
41907 
41908   };
41909   static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "struct and wrapper have different size!" );
41910   static_assert( std::is_standard_layout<SemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
41911 
41912   template <>
41913   struct CppType<StructureType, StructureType::eSemaphoreCreateInfo>
41914   {
41915     using Type = SemaphoreCreateInfo;
41916   };
41917 
41918   struct ShaderModuleCreateInfo
41919   {
41920     static const bool allowDuplicate = false;
41921     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleCreateInfo;
41922 
41923 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41924     VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo(VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {}, size_t codeSize_ = {}, const uint32_t* pCode_ = {}) VULKAN_HPP_NOEXCEPT
41925     : flags( flags_ ), codeSize( codeSize_ ), pCode( pCode_ )
41926     {}
41927 
41928     VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41929 
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41930     ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41931     {
41932       *this = rhs;
41933     }
41934 
41935 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41936     ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ )
41937     : flags( flags_ ), codeSize( code_.size() * 4 ), pCode( code_.data() )
41938     {}
41939 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41940 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41941 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41942     ShaderModuleCreateInfo & operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41943     {
41944       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const *>( &rhs );
41945       return *this;
41946     }
41947 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41948     ShaderModuleCreateInfo & operator=( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41949     {
41950       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderModuleCreateInfo ) );
41951       return *this;
41952     }
41953 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41954     ShaderModuleCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41955     {
41956       pNext = pNext_;
41957       return *this;
41958     }
41959 
setFlagsVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41960     ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41961     {
41962       flags = flags_;
41963       return *this;
41964     }
41965 
setCodeSizeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41966     ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT
41967     {
41968       codeSize = codeSize_;
41969       return *this;
41970     }
41971 
setPCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41972     ShaderModuleCreateInfo & setPCode( const uint32_t* pCode_ ) VULKAN_HPP_NOEXCEPT
41973     {
41974       pCode = pCode_;
41975       return *this;
41976     }
41977 
41978 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41979     ShaderModuleCreateInfo & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ ) VULKAN_HPP_NOEXCEPT
41980     {
41981       codeSize = code_.size() * 4;
41982       pCode = code_.data();
41983       return *this;
41984     }
41985 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41986 
41987 
operator VkShaderModuleCreateInfo const&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41988     operator VkShaderModuleCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41989     {
41990       return *reinterpret_cast<const VkShaderModuleCreateInfo*>( this );
41991     }
41992 
operator VkShaderModuleCreateInfo&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41993     operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT
41994     {
41995       return *reinterpret_cast<VkShaderModuleCreateInfo*>( this );
41996     }
41997 
41998 
41999 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42000     auto operator<=>( ShaderModuleCreateInfo const& ) const = default;
42001 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42002     bool operator==( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42003     {
42004       return ( sType == rhs.sType )
42005           && ( pNext == rhs.pNext )
42006           && ( flags == rhs.flags )
42007           && ( codeSize == rhs.codeSize )
42008           && ( pCode == rhs.pCode );
42009     }
42010 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42011     bool operator!=( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42012     {
42013       return !operator==( rhs );
42014     }
42015 #endif
42016 
42017 
42018 
42019   public:
42020     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo;
42021     const void* pNext = {};
42022     VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {};
42023     size_t codeSize = {};
42024     const uint32_t* pCode = {};
42025 
42026   };
42027   static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), "struct and wrapper have different size!" );
42028   static_assert( std::is_standard_layout<ShaderModuleCreateInfo>::value, "struct wrapper is not a standard layout!" );
42029 
42030   template <>
42031   struct CppType<StructureType, StructureType::eShaderModuleCreateInfo>
42032   {
42033     using Type = ShaderModuleCreateInfo;
42034   };
42035 
42036   class SurfaceKHR
42037   {
42038   public:
42039     using CType = VkSurfaceKHR;
42040 
42041     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR;
42042     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR;
42043 
42044   public:
SurfaceKHR()42045     VULKAN_HPP_CONSTEXPR SurfaceKHR() VULKAN_HPP_NOEXCEPT
42046       : m_surfaceKHR(VK_NULL_HANDLE)
42047     {}
42048 
SurfaceKHR(std::nullptr_t)42049     VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42050       : m_surfaceKHR(VK_NULL_HANDLE)
42051     {}
42052 
SurfaceKHR(VkSurfaceKHR surfaceKHR)42053     VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR ) VULKAN_HPP_NOEXCEPT
42054       : m_surfaceKHR( surfaceKHR )
42055     {}
42056 
42057 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSurfaceKHR surfaceKHR)42058     SurfaceKHR & operator=(VkSurfaceKHR surfaceKHR) VULKAN_HPP_NOEXCEPT
42059     {
42060       m_surfaceKHR = surfaceKHR;
42061       return *this;
42062     }
42063 #endif
42064 
operator =(std::nullptr_t)42065     SurfaceKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42066     {
42067       m_surfaceKHR = VK_NULL_HANDLE;
42068       return *this;
42069     }
42070 
42071 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42072     auto operator<=>( SurfaceKHR const& ) const = default;
42073 #else
operator ==(SurfaceKHR const & rhs) const42074     bool operator==( SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
42075     {
42076       return m_surfaceKHR == rhs.m_surfaceKHR;
42077     }
42078 
operator !=(SurfaceKHR const & rhs) const42079     bool operator!=(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
42080     {
42081       return m_surfaceKHR != rhs.m_surfaceKHR;
42082     }
42083 
operator <(SurfaceKHR const & rhs) const42084     bool operator<(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
42085     {
42086       return m_surfaceKHR < rhs.m_surfaceKHR;
42087     }
42088 #endif
42089 
operator VkSurfaceKHR() const42090     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSurfaceKHR() const VULKAN_HPP_NOEXCEPT
42091     {
42092       return m_surfaceKHR;
42093     }
42094 
operator bool() const42095     explicit operator bool() const VULKAN_HPP_NOEXCEPT
42096     {
42097       return m_surfaceKHR != VK_NULL_HANDLE;
42098     }
42099 
operator !() const42100     bool operator!() const VULKAN_HPP_NOEXCEPT
42101     {
42102       return m_surfaceKHR == VK_NULL_HANDLE;
42103     }
42104 
42105   private:
42106     VkSurfaceKHR m_surfaceKHR;
42107   };
42108   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SurfaceKHR ) == sizeof( VkSurfaceKHR ), "handle and wrapper have different size!" );
42109 
42110   template <>
42111   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSurfaceKHR>
42112   {
42113     using type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
42114   };
42115 
42116   template <>
42117   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR>
42118   {
42119     using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
42120   };
42121 
42122 
42123   template <>
42124   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR>
42125   {
42126     using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
42127   };
42128 
42129 
42130   template <>
42131   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SurfaceKHR>
42132   {
42133     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
42134   };
42135 
42136   struct SwapchainCreateInfoKHR
42137   {
42138     static const bool allowDuplicate = false;
42139     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCreateInfoKHR;
42140 
42141 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42142     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
42143     : 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_ )
42144     {}
42145 
42146     VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42147 
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42148     SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42149     {
42150       *this = rhs;
42151     }
42152 
42153 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42154     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_ = {} )
42155     : 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_ )
42156     {}
42157 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42158 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42159 
operator =VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42160     SwapchainCreateInfoKHR & operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42161     {
42162       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const *>( &rhs );
42163       return *this;
42164     }
42165 
operator =VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42166     SwapchainCreateInfoKHR & operator=( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42167     {
42168       memcpy( static_cast<void *>( this ), &rhs, sizeof( SwapchainCreateInfoKHR ) );
42169       return *this;
42170     }
42171 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42172     SwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42173     {
42174       pNext = pNext_;
42175       return *this;
42176     }
42177 
setFlagsVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42178     SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
42179     {
42180       flags = flags_;
42181       return *this;
42182     }
42183 
setSurfaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42184     SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
42185     {
42186       surface = surface_;
42187       return *this;
42188     }
42189 
setMinImageCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42190     SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT
42191     {
42192       minImageCount = minImageCount_;
42193       return *this;
42194     }
42195 
setImageFormatVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42196     SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT
42197     {
42198       imageFormat = imageFormat_;
42199       return *this;
42200     }
42201 
setImageColorSpaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42202     SwapchainCreateInfoKHR & setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT
42203     {
42204       imageColorSpace = imageColorSpace_;
42205       return *this;
42206     }
42207 
setImageExtentVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42208     SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
42209     {
42210       imageExtent = imageExtent_;
42211       return *this;
42212     }
42213 
setImageArrayLayersVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42214     SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT
42215     {
42216       imageArrayLayers = imageArrayLayers_;
42217       return *this;
42218     }
42219 
setImageUsageVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42220     SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT
42221     {
42222       imageUsage = imageUsage_;
42223       return *this;
42224     }
42225 
setImageSharingModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42226     SwapchainCreateInfoKHR & setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT
42227     {
42228       imageSharingMode = imageSharingMode_;
42229       return *this;
42230     }
42231 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42232     SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
42233     {
42234       queueFamilyIndexCount = queueFamilyIndexCount_;
42235       return *this;
42236     }
42237 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42238     SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
42239     {
42240       pQueueFamilyIndices = pQueueFamilyIndices_;
42241       return *this;
42242     }
42243 
42244 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42245     SwapchainCreateInfoKHR & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
42246     {
42247       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
42248       pQueueFamilyIndices = queueFamilyIndices_.data();
42249       return *this;
42250     }
42251 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42252 
setPreTransformVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42253     SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT
42254     {
42255       preTransform = preTransform_;
42256       return *this;
42257     }
42258 
setCompositeAlphaVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42259     SwapchainCreateInfoKHR & setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT
42260     {
42261       compositeAlpha = compositeAlpha_;
42262       return *this;
42263     }
42264 
setPresentModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42265     SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT
42266     {
42267       presentMode = presentMode_;
42268       return *this;
42269     }
42270 
setClippedVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42271     SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT
42272     {
42273       clipped = clipped_;
42274       return *this;
42275     }
42276 
setOldSwapchainVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42277     SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT
42278     {
42279       oldSwapchain = oldSwapchain_;
42280       return *this;
42281     }
42282 
42283 
operator VkSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42284     operator VkSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
42285     {
42286       return *reinterpret_cast<const VkSwapchainCreateInfoKHR*>( this );
42287     }
42288 
operator VkSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42289     operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
42290     {
42291       return *reinterpret_cast<VkSwapchainCreateInfoKHR*>( this );
42292     }
42293 
42294 
42295 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42296     auto operator<=>( SwapchainCreateInfoKHR const& ) const = default;
42297 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42298     bool operator==( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42299     {
42300       return ( sType == rhs.sType )
42301           && ( pNext == rhs.pNext )
42302           && ( flags == rhs.flags )
42303           && ( surface == rhs.surface )
42304           && ( minImageCount == rhs.minImageCount )
42305           && ( imageFormat == rhs.imageFormat )
42306           && ( imageColorSpace == rhs.imageColorSpace )
42307           && ( imageExtent == rhs.imageExtent )
42308           && ( imageArrayLayers == rhs.imageArrayLayers )
42309           && ( imageUsage == rhs.imageUsage )
42310           && ( imageSharingMode == rhs.imageSharingMode )
42311           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
42312           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
42313           && ( preTransform == rhs.preTransform )
42314           && ( compositeAlpha == rhs.compositeAlpha )
42315           && ( presentMode == rhs.presentMode )
42316           && ( clipped == rhs.clipped )
42317           && ( oldSwapchain == rhs.oldSwapchain );
42318     }
42319 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42320     bool operator!=( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42321     {
42322       return !operator==( rhs );
42323     }
42324 #endif
42325 
42326 
42327 
42328   public:
42329     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR;
42330     const void* pNext = {};
42331     VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {};
42332     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
42333     uint32_t minImageCount = {};
42334     VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
42335     VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
42336     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
42337     uint32_t imageArrayLayers = {};
42338     VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
42339     VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
42340     uint32_t queueFamilyIndexCount = {};
42341     const uint32_t* pQueueFamilyIndices = {};
42342     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
42343     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque;
42344     VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate;
42345     VULKAN_HPP_NAMESPACE::Bool32 clipped = {};
42346     VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {};
42347 
42348   };
42349   static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
42350   static_assert( std::is_standard_layout<SwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
42351 
42352   template <>
42353   struct CppType<StructureType, StructureType::eSwapchainCreateInfoKHR>
42354   {
42355     using Type = SwapchainCreateInfoKHR;
42356   };
42357 
42358   struct ValidationCacheCreateInfoEXT
42359   {
42360     static const bool allowDuplicate = false;
42361     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationCacheCreateInfoEXT;
42362 
42363 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42364     VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT
42365     : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ )
42366     {}
42367 
42368     VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42369 
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42370     ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42371     {
42372       *this = rhs;
42373     }
42374 
42375 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42376     template <typename T>
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42377     ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ )
42378     : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() )
42379     {}
42380 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42381 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42382 
operator =VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42383     ValidationCacheCreateInfoEXT & operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42384     {
42385       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const *>( &rhs );
42386       return *this;
42387     }
42388 
operator =VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42389     ValidationCacheCreateInfoEXT & operator=( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42390     {
42391       memcpy( static_cast<void *>( this ), &rhs, sizeof( ValidationCacheCreateInfoEXT ) );
42392       return *this;
42393     }
42394 
setPNextVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42395     ValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42396     {
42397       pNext = pNext_;
42398       return *this;
42399     }
42400 
setFlagsVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42401     ValidationCacheCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
42402     {
42403       flags = flags_;
42404       return *this;
42405     }
42406 
setInitialDataSizeVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42407     ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
42408     {
42409       initialDataSize = initialDataSize_;
42410       return *this;
42411     }
42412 
setPInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42413     ValidationCacheCreateInfoEXT & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT
42414     {
42415       pInitialData = pInitialData_;
42416       return *this;
42417     }
42418 
42419 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42420     template <typename T>
setInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42421     ValidationCacheCreateInfoEXT & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
42422     {
42423       initialDataSize = initialData_.size() * sizeof(T);
42424       pInitialData = initialData_.data();
42425       return *this;
42426     }
42427 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42428 
42429 
operator VkValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42430     operator VkValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
42431     {
42432       return *reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( this );
42433     }
42434 
operator VkValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42435     operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
42436     {
42437       return *reinterpret_cast<VkValidationCacheCreateInfoEXT*>( this );
42438     }
42439 
42440 
42441 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42442     auto operator<=>( ValidationCacheCreateInfoEXT const& ) const = default;
42443 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42444     bool operator==( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42445     {
42446       return ( sType == rhs.sType )
42447           && ( pNext == rhs.pNext )
42448           && ( flags == rhs.flags )
42449           && ( initialDataSize == rhs.initialDataSize )
42450           && ( pInitialData == rhs.pInitialData );
42451     }
42452 
operator !=VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42453     bool operator!=( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42454     {
42455       return !operator==( rhs );
42456     }
42457 #endif
42458 
42459 
42460 
42461   public:
42462     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT;
42463     const void* pNext = {};
42464     VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {};
42465     size_t initialDataSize = {};
42466     const void* pInitialData = {};
42467 
42468   };
42469   static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
42470   static_assert( std::is_standard_layout<ValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
42471 
42472   template <>
42473   struct CppType<StructureType, StructureType::eValidationCacheCreateInfoEXT>
42474   {
42475     using Type = ValidationCacheCreateInfoEXT;
42476   };
42477 
42478   class ValidationCacheEXT
42479   {
42480   public:
42481     using CType = VkValidationCacheEXT;
42482 
42483     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT;
42484     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT;
42485 
42486   public:
ValidationCacheEXT()42487     VULKAN_HPP_CONSTEXPR ValidationCacheEXT() VULKAN_HPP_NOEXCEPT
42488       : m_validationCacheEXT(VK_NULL_HANDLE)
42489     {}
42490 
ValidationCacheEXT(std::nullptr_t)42491     VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42492       : m_validationCacheEXT(VK_NULL_HANDLE)
42493     {}
42494 
ValidationCacheEXT(VkValidationCacheEXT validationCacheEXT)42495     VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT ) VULKAN_HPP_NOEXCEPT
42496       : m_validationCacheEXT( validationCacheEXT )
42497     {}
42498 
42499 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkValidationCacheEXT validationCacheEXT)42500     ValidationCacheEXT & operator=(VkValidationCacheEXT validationCacheEXT) VULKAN_HPP_NOEXCEPT
42501     {
42502       m_validationCacheEXT = validationCacheEXT;
42503       return *this;
42504     }
42505 #endif
42506 
operator =(std::nullptr_t)42507     ValidationCacheEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42508     {
42509       m_validationCacheEXT = VK_NULL_HANDLE;
42510       return *this;
42511     }
42512 
42513 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42514     auto operator<=>( ValidationCacheEXT const& ) const = default;
42515 #else
operator ==(ValidationCacheEXT const & rhs) const42516     bool operator==( ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42517     {
42518       return m_validationCacheEXT == rhs.m_validationCacheEXT;
42519     }
42520 
operator !=(ValidationCacheEXT const & rhs) const42521     bool operator!=(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42522     {
42523       return m_validationCacheEXT != rhs.m_validationCacheEXT;
42524     }
42525 
operator <(ValidationCacheEXT const & rhs) const42526     bool operator<(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42527     {
42528       return m_validationCacheEXT < rhs.m_validationCacheEXT;
42529     }
42530 #endif
42531 
operator VkValidationCacheEXT() const42532     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkValidationCacheEXT() const VULKAN_HPP_NOEXCEPT
42533     {
42534       return m_validationCacheEXT;
42535     }
42536 
operator bool() const42537     explicit operator bool() const VULKAN_HPP_NOEXCEPT
42538     {
42539       return m_validationCacheEXT != VK_NULL_HANDLE;
42540     }
42541 
operator !() const42542     bool operator!() const VULKAN_HPP_NOEXCEPT
42543     {
42544       return m_validationCacheEXT == VK_NULL_HANDLE;
42545     }
42546 
42547   private:
42548     VkValidationCacheEXT m_validationCacheEXT;
42549   };
42550   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" );
42551 
42552   template <>
42553   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eValidationCacheEXT>
42554   {
42555     using type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
42556   };
42557 
42558   template <>
42559   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT>
42560   {
42561     using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
42562   };
42563 
42564 
42565   template <>
42566   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT>
42567   {
42568     using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
42569   };
42570 
42571 
42572   template <>
42573   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
42574   {
42575     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
42576   };
42577 
42578   struct DisplayPowerInfoEXT
42579   {
42580     static const bool allowDuplicate = false;
42581     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPowerInfoEXT;
42582 
42583 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42584     VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT(VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff) VULKAN_HPP_NOEXCEPT
42585     : powerState( powerState_ )
42586     {}
42587 
42588     VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42589 
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42590     DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42591     {
42592       *this = rhs;
42593     }
42594 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42595 
operator =VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42596     DisplayPowerInfoEXT & operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42597     {
42598       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT const *>( &rhs );
42599       return *this;
42600     }
42601 
operator =VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42602     DisplayPowerInfoEXT & operator=( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42603     {
42604       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPowerInfoEXT ) );
42605       return *this;
42606     }
42607 
setPNextVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42608     DisplayPowerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42609     {
42610       pNext = pNext_;
42611       return *this;
42612     }
42613 
setPowerStateVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42614     DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT
42615     {
42616       powerState = powerState_;
42617       return *this;
42618     }
42619 
42620 
operator VkDisplayPowerInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42621     operator VkDisplayPowerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
42622     {
42623       return *reinterpret_cast<const VkDisplayPowerInfoEXT*>( this );
42624     }
42625 
operator VkDisplayPowerInfoEXT&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42626     operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT
42627     {
42628       return *reinterpret_cast<VkDisplayPowerInfoEXT*>( this );
42629     }
42630 
42631 
42632 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42633     auto operator<=>( DisplayPowerInfoEXT const& ) const = default;
42634 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42635     bool operator==( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42636     {
42637       return ( sType == rhs.sType )
42638           && ( pNext == rhs.pNext )
42639           && ( powerState == rhs.powerState );
42640     }
42641 
operator !=VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42642     bool operator!=( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42643     {
42644       return !operator==( rhs );
42645     }
42646 #endif
42647 
42648 
42649 
42650   public:
42651     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT;
42652     const void* pNext = {};
42653     VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff;
42654 
42655   };
42656   static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), "struct and wrapper have different size!" );
42657   static_assert( std::is_standard_layout<DisplayPowerInfoEXT>::value, "struct wrapper is not a standard layout!" );
42658 
42659   template <>
42660   struct CppType<StructureType, StructureType::eDisplayPowerInfoEXT>
42661   {
42662     using Type = DisplayPowerInfoEXT;
42663   };
42664 
42665   struct MappedMemoryRange
42666   {
42667     static const bool allowDuplicate = false;
42668     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMappedMemoryRange;
42669 
42670 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange42671     VULKAN_HPP_CONSTEXPR MappedMemoryRange(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
42672     : memory( memory_ ), offset( offset_ ), size( size_ )
42673     {}
42674 
42675     VULKAN_HPP_CONSTEXPR MappedMemoryRange( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42676 
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange42677     MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
42678     {
42679       *this = rhs;
42680     }
42681 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42682 
operator =VULKAN_HPP_NAMESPACE::MappedMemoryRange42683     MappedMemoryRange & operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
42684     {
42685       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MappedMemoryRange const *>( &rhs );
42686       return *this;
42687     }
42688 
operator =VULKAN_HPP_NAMESPACE::MappedMemoryRange42689     MappedMemoryRange & operator=( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
42690     {
42691       memcpy( static_cast<void *>( this ), &rhs, sizeof( MappedMemoryRange ) );
42692       return *this;
42693     }
42694 
setPNextVULKAN_HPP_NAMESPACE::MappedMemoryRange42695     MappedMemoryRange & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42696     {
42697       pNext = pNext_;
42698       return *this;
42699     }
42700 
setMemoryVULKAN_HPP_NAMESPACE::MappedMemoryRange42701     MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
42702     {
42703       memory = memory_;
42704       return *this;
42705     }
42706 
setOffsetVULKAN_HPP_NAMESPACE::MappedMemoryRange42707     MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
42708     {
42709       offset = offset_;
42710       return *this;
42711     }
42712 
setSizeVULKAN_HPP_NAMESPACE::MappedMemoryRange42713     MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
42714     {
42715       size = size_;
42716       return *this;
42717     }
42718 
42719 
operator VkMappedMemoryRange const&VULKAN_HPP_NAMESPACE::MappedMemoryRange42720     operator VkMappedMemoryRange const&() const VULKAN_HPP_NOEXCEPT
42721     {
42722       return *reinterpret_cast<const VkMappedMemoryRange*>( this );
42723     }
42724 
operator VkMappedMemoryRange&VULKAN_HPP_NAMESPACE::MappedMemoryRange42725     operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT
42726     {
42727       return *reinterpret_cast<VkMappedMemoryRange*>( this );
42728     }
42729 
42730 
42731 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42732     auto operator<=>( MappedMemoryRange const& ) const = default;
42733 #else
operator ==VULKAN_HPP_NAMESPACE::MappedMemoryRange42734     bool operator==( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT
42735     {
42736       return ( sType == rhs.sType )
42737           && ( pNext == rhs.pNext )
42738           && ( memory == rhs.memory )
42739           && ( offset == rhs.offset )
42740           && ( size == rhs.size );
42741     }
42742 
operator !=VULKAN_HPP_NAMESPACE::MappedMemoryRange42743     bool operator!=( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT
42744     {
42745       return !operator==( rhs );
42746     }
42747 #endif
42748 
42749 
42750 
42751   public:
42752     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange;
42753     const void* pNext = {};
42754     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
42755     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
42756     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
42757 
42758   };
42759   static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), "struct and wrapper have different size!" );
42760   static_assert( std::is_standard_layout<MappedMemoryRange>::value, "struct wrapper is not a standard layout!" );
42761 
42762   template <>
42763   struct CppType<StructureType, StructureType::eMappedMemoryRange>
42764   {
42765     using Type = MappedMemoryRange;
42766   };
42767 
42768   struct MemoryRequirements
42769   {
42770 
42771 
42772 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements42773     VULKAN_HPP_CONSTEXPR MemoryRequirements(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
42774     : size( size_ ), alignment( alignment_ ), memoryTypeBits( memoryTypeBits_ )
42775     {}
42776 
42777     VULKAN_HPP_CONSTEXPR MemoryRequirements( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42778 
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements42779     MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
42780     {
42781       *this = rhs;
42782     }
42783 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42784 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements42785     MemoryRequirements & operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
42786     {
42787       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements const *>( &rhs );
42788       return *this;
42789     }
42790 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements42791     MemoryRequirements & operator=( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
42792     {
42793       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryRequirements ) );
42794       return *this;
42795     }
42796 
42797 
operator VkMemoryRequirements const&VULKAN_HPP_NAMESPACE::MemoryRequirements42798     operator VkMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT
42799     {
42800       return *reinterpret_cast<const VkMemoryRequirements*>( this );
42801     }
42802 
operator VkMemoryRequirements&VULKAN_HPP_NAMESPACE::MemoryRequirements42803     operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT
42804     {
42805       return *reinterpret_cast<VkMemoryRequirements*>( this );
42806     }
42807 
42808 
42809 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42810     auto operator<=>( MemoryRequirements const& ) const = default;
42811 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements42812     bool operator==( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
42813     {
42814       return ( size == rhs.size )
42815           && ( alignment == rhs.alignment )
42816           && ( memoryTypeBits == rhs.memoryTypeBits );
42817     }
42818 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements42819     bool operator!=( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
42820     {
42821       return !operator==( rhs );
42822     }
42823 #endif
42824 
42825 
42826 
42827   public:
42828     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
42829     VULKAN_HPP_NAMESPACE::DeviceSize alignment = {};
42830     uint32_t memoryTypeBits = {};
42831 
42832   };
42833   static_assert( sizeof( MemoryRequirements ) == sizeof( VkMemoryRequirements ), "struct and wrapper have different size!" );
42834   static_assert( std::is_standard_layout<MemoryRequirements>::value, "struct wrapper is not a standard layout!" );
42835 
42836   struct MemoryRequirements2
42837   {
42838     static const bool allowDuplicate = false;
42839     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryRequirements2;
42840 
42841 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements242842     VULKAN_HPP_CONSTEXPR MemoryRequirements2(VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT
42843     : memoryRequirements( memoryRequirements_ )
42844     {}
42845 
42846     VULKAN_HPP_CONSTEXPR MemoryRequirements2( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42847 
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements242848     MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
42849     {
42850       *this = rhs;
42851     }
42852 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42853 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements242854     MemoryRequirements2 & operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
42855     {
42856       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements2 const *>( &rhs );
42857       return *this;
42858     }
42859 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements242860     MemoryRequirements2 & operator=( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
42861     {
42862       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryRequirements2 ) );
42863       return *this;
42864     }
42865 
42866 
operator VkMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::MemoryRequirements242867     operator VkMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT
42868     {
42869       return *reinterpret_cast<const VkMemoryRequirements2*>( this );
42870     }
42871 
operator VkMemoryRequirements2&VULKAN_HPP_NAMESPACE::MemoryRequirements242872     operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
42873     {
42874       return *reinterpret_cast<VkMemoryRequirements2*>( this );
42875     }
42876 
42877 
42878 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42879     auto operator<=>( MemoryRequirements2 const& ) const = default;
42880 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements242881     bool operator==( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
42882     {
42883       return ( sType == rhs.sType )
42884           && ( pNext == rhs.pNext )
42885           && ( memoryRequirements == rhs.memoryRequirements );
42886     }
42887 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements242888     bool operator!=( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
42889     {
42890       return !operator==( rhs );
42891     }
42892 #endif
42893 
42894 
42895 
42896   public:
42897     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2;
42898     void* pNext = {};
42899     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {};
42900 
42901   };
42902   static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), "struct and wrapper have different size!" );
42903   static_assert( std::is_standard_layout<MemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
42904 
42905   template <>
42906   struct CppType<StructureType, StructureType::eMemoryRequirements2>
42907   {
42908     using Type = MemoryRequirements2;
42909   };
42910   using MemoryRequirements2KHR = MemoryRequirements2;
42911 
42912   struct DeviceGroupPresentCapabilitiesKHR
42913   {
42914     static const bool allowDuplicate = false;
42915     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
42916 
42917 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42918     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR(std::array<uint32_t,VK_MAX_DEVICE_GROUP_SIZE> const& presentMask_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT
42919     : presentMask( presentMask_ ), modes( modes_ )
42920     {}
42921 
42922     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42923 
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42924     DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42925     {
42926       *this = rhs;
42927     }
42928 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42929 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42930     DeviceGroupPresentCapabilitiesKHR & operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42931     {
42932       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR const *>( &rhs );
42933       return *this;
42934     }
42935 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42936     DeviceGroupPresentCapabilitiesKHR & operator=( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42937     {
42938       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupPresentCapabilitiesKHR ) );
42939       return *this;
42940     }
42941 
42942 
operator VkDeviceGroupPresentCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42943     operator VkDeviceGroupPresentCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
42944     {
42945       return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR*>( this );
42946     }
42947 
operator VkDeviceGroupPresentCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42948     operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
42949     {
42950       return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( this );
42951     }
42952 
42953 
42954 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42955     auto operator<=>( DeviceGroupPresentCapabilitiesKHR const& ) const = default;
42956 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42957     bool operator==( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42958     {
42959       return ( sType == rhs.sType )
42960           && ( pNext == rhs.pNext )
42961           && ( presentMask == rhs.presentMask )
42962           && ( modes == rhs.modes );
42963     }
42964 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42965     bool operator!=( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42966     {
42967       return !operator==( rhs );
42968     }
42969 #endif
42970 
42971 
42972 
42973   public:
42974     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
42975     const void* pNext = {};
42976     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> presentMask = {};
42977     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
42978 
42979   };
42980   static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), "struct and wrapper have different size!" );
42981   static_assert( std::is_standard_layout<DeviceGroupPresentCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
42982 
42983   template <>
42984   struct CppType<StructureType, StructureType::eDeviceGroupPresentCapabilitiesKHR>
42985   {
42986     using Type = DeviceGroupPresentCapabilitiesKHR;
42987   };
42988 
42989   struct PhysicalDeviceSurfaceInfo2KHR
42990   {
42991     static const bool allowDuplicate = false;
42992     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
42993 
42994 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR42995     VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}) VULKAN_HPP_NOEXCEPT
42996     : surface( surface_ )
42997     {}
42998 
42999     VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43000 
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43001     PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
43002     {
43003       *this = rhs;
43004     }
43005 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43006 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43007     PhysicalDeviceSurfaceInfo2KHR & operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
43008     {
43009       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR const *>( &rhs );
43010       return *this;
43011     }
43012 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43013     PhysicalDeviceSurfaceInfo2KHR & operator=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
43014     {
43015       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSurfaceInfo2KHR ) );
43016       return *this;
43017     }
43018 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43019     PhysicalDeviceSurfaceInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43020     {
43021       pNext = pNext_;
43022       return *this;
43023     }
43024 
setSurfaceVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43025     PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
43026     {
43027       surface = surface_;
43028       return *this;
43029     }
43030 
43031 
operator VkPhysicalDeviceSurfaceInfo2KHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43032     operator VkPhysicalDeviceSurfaceInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
43033     {
43034       return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( this );
43035     }
43036 
operator VkPhysicalDeviceSurfaceInfo2KHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43037     operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT
43038     {
43039       return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>( this );
43040     }
43041 
43042 
43043 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43044     auto operator<=>( PhysicalDeviceSurfaceInfo2KHR const& ) const = default;
43045 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43046     bool operator==( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43047     {
43048       return ( sType == rhs.sType )
43049           && ( pNext == rhs.pNext )
43050           && ( surface == rhs.surface );
43051     }
43052 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43053     bool operator!=( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43054     {
43055       return !operator==( rhs );
43056     }
43057 #endif
43058 
43059 
43060 
43061   public:
43062     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
43063     const void* pNext = {};
43064     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
43065 
43066   };
43067   static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), "struct and wrapper have different size!" );
43068   static_assert( std::is_standard_layout<PhysicalDeviceSurfaceInfo2KHR>::value, "struct wrapper is not a standard layout!" );
43069 
43070   template <>
43071   struct CppType<StructureType, StructureType::ePhysicalDeviceSurfaceInfo2KHR>
43072   {
43073     using Type = PhysicalDeviceSurfaceInfo2KHR;
43074   };
43075 
43076   struct DeviceMemoryOpaqueCaptureAddressInfo
43077   {
43078     static const bool allowDuplicate = false;
43079     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
43080 
43081 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43082     VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT
43083     : memory( memory_ )
43084     {}
43085 
43086     VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43087 
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43088     DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43089     {
43090       *this = rhs;
43091     }
43092 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43093 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43094     DeviceMemoryOpaqueCaptureAddressInfo & operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43095     {
43096       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const *>( &rhs );
43097       return *this;
43098     }
43099 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43100     DeviceMemoryOpaqueCaptureAddressInfo & operator=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43101     {
43102       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) );
43103       return *this;
43104     }
43105 
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43106     DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43107     {
43108       pNext = pNext_;
43109       return *this;
43110     }
43111 
setMemoryVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43112     DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
43113     {
43114       memory = memory_;
43115       return *this;
43116     }
43117 
43118 
operator VkDeviceMemoryOpaqueCaptureAddressInfo const&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43119     operator VkDeviceMemoryOpaqueCaptureAddressInfo const&() const VULKAN_HPP_NOEXCEPT
43120     {
43121       return *reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
43122     }
43123 
operator VkDeviceMemoryOpaqueCaptureAddressInfo&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43124     operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT
43125     {
43126       return *reinterpret_cast<VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
43127     }
43128 
43129 
43130 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43131     auto operator<=>( DeviceMemoryOpaqueCaptureAddressInfo const& ) const = default;
43132 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43133     bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43134     {
43135       return ( sType == rhs.sType )
43136           && ( pNext == rhs.pNext )
43137           && ( memory == rhs.memory );
43138     }
43139 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43140     bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43141     {
43142       return !operator==( rhs );
43143     }
43144 #endif
43145 
43146 
43147 
43148   public:
43149     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
43150     const void* pNext = {};
43151     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
43152 
43153   };
43154   static_assert( sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) == sizeof( VkDeviceMemoryOpaqueCaptureAddressInfo ), "struct and wrapper have different size!" );
43155   static_assert( std::is_standard_layout<DeviceMemoryOpaqueCaptureAddressInfo>::value, "struct wrapper is not a standard layout!" );
43156 
43157   template <>
43158   struct CppType<StructureType, StructureType::eDeviceMemoryOpaqueCaptureAddressInfo>
43159   {
43160     using Type = DeviceMemoryOpaqueCaptureAddressInfo;
43161   };
43162   using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
43163 
43164   struct PresentInfoKHR
43165   {
43166     static const bool allowDuplicate = false;
43167     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentInfoKHR;
43168 
43169 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR43170     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
43171     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), swapchainCount( swapchainCount_ ), pSwapchains( pSwapchains_ ), pImageIndices( pImageIndices_ ), pResults( pResults_ )
43172     {}
43173 
43174     VULKAN_HPP_CONSTEXPR PresentInfoKHR( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43175 
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR43176     PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43177     {
43178       *this = rhs;
43179     }
43180 
43181 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR43182     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_ = {} )
43183     : 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() )
43184     {
43185 #ifdef VULKAN_HPP_NO_EXCEPTIONS
43186       VULKAN_HPP_ASSERT( swapchains_.size() == imageIndices_.size() );
43187       VULKAN_HPP_ASSERT( results_.empty() || ( swapchains_.size() == results_.size() ) );
43188       VULKAN_HPP_ASSERT( results_.empty() || ( imageIndices_.size() == results_.size() ) );
43189 #else
43190       if ( swapchains_.size() != imageIndices_.size() )
43191       {
43192         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: swapchains_.size() != imageIndices_.size()" );
43193       }
43194       if ( !results_.empty() && ( swapchains_.size() != results_.size() ) )
43195       {
43196         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( swapchains_.size() != results_.size() )" );
43197       }
43198       if ( !results_.empty() && ( imageIndices_.size() != results_.size() ) )
43199       {
43200         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( imageIndices_.size() != results_.size() )" );
43201       }
43202 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
43203     }
43204 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43205 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43206 
operator =VULKAN_HPP_NAMESPACE::PresentInfoKHR43207     PresentInfoKHR & operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43208     {
43209       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentInfoKHR const *>( &rhs );
43210       return *this;
43211     }
43212 
operator =VULKAN_HPP_NAMESPACE::PresentInfoKHR43213     PresentInfoKHR & operator=( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43214     {
43215       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentInfoKHR ) );
43216       return *this;
43217     }
43218 
setPNextVULKAN_HPP_NAMESPACE::PresentInfoKHR43219     PresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43220     {
43221       pNext = pNext_;
43222       return *this;
43223     }
43224 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::PresentInfoKHR43225     PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
43226     {
43227       waitSemaphoreCount = waitSemaphoreCount_;
43228       return *this;
43229     }
43230 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR43231     PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43232     {
43233       pWaitSemaphores = pWaitSemaphores_;
43234       return *this;
43235     }
43236 
43237 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR43238     PresentInfoKHR & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43239     {
43240       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
43241       pWaitSemaphores = waitSemaphores_.data();
43242       return *this;
43243     }
43244 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43245 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentInfoKHR43246     PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
43247     {
43248       swapchainCount = swapchainCount_;
43249       return *this;
43250     }
43251 
setPSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR43252     PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ ) VULKAN_HPP_NOEXCEPT
43253     {
43254       pSwapchains = pSwapchains_;
43255       return *this;
43256     }
43257 
43258 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR43259     PresentInfoKHR & setSwapchains( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ ) VULKAN_HPP_NOEXCEPT
43260     {
43261       swapchainCount = static_cast<uint32_t>( swapchains_.size() );
43262       pSwapchains = swapchains_.data();
43263       return *this;
43264     }
43265 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43266 
setPImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR43267     PresentInfoKHR & setPImageIndices( const uint32_t* pImageIndices_ ) VULKAN_HPP_NOEXCEPT
43268     {
43269       pImageIndices = pImageIndices_;
43270       return *this;
43271     }
43272 
43273 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR43274     PresentInfoKHR & setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ ) VULKAN_HPP_NOEXCEPT
43275     {
43276       swapchainCount = static_cast<uint32_t>( imageIndices_.size() );
43277       pImageIndices = imageIndices_.data();
43278       return *this;
43279     }
43280 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43281 
setPResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR43282     PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result* pResults_ ) VULKAN_HPP_NOEXCEPT
43283     {
43284       pResults = pResults_;
43285       return *this;
43286     }
43287 
43288 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR43289     PresentInfoKHR & setResults( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ ) VULKAN_HPP_NOEXCEPT
43290     {
43291       swapchainCount = static_cast<uint32_t>( results_.size() );
43292       pResults = results_.data();
43293       return *this;
43294     }
43295 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43296 
43297 
operator VkPresentInfoKHR const&VULKAN_HPP_NAMESPACE::PresentInfoKHR43298     operator VkPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
43299     {
43300       return *reinterpret_cast<const VkPresentInfoKHR*>( this );
43301     }
43302 
operator VkPresentInfoKHR&VULKAN_HPP_NAMESPACE::PresentInfoKHR43303     operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
43304     {
43305       return *reinterpret_cast<VkPresentInfoKHR*>( this );
43306     }
43307 
43308 
43309 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43310     auto operator<=>( PresentInfoKHR const& ) const = default;
43311 #else
operator ==VULKAN_HPP_NAMESPACE::PresentInfoKHR43312     bool operator==( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43313     {
43314       return ( sType == rhs.sType )
43315           && ( pNext == rhs.pNext )
43316           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
43317           && ( pWaitSemaphores == rhs.pWaitSemaphores )
43318           && ( swapchainCount == rhs.swapchainCount )
43319           && ( pSwapchains == rhs.pSwapchains )
43320           && ( pImageIndices == rhs.pImageIndices )
43321           && ( pResults == rhs.pResults );
43322     }
43323 
operator !=VULKAN_HPP_NAMESPACE::PresentInfoKHR43324     bool operator!=( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43325     {
43326       return !operator==( rhs );
43327     }
43328 #endif
43329 
43330 
43331 
43332   public:
43333     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR;
43334     const void* pNext = {};
43335     uint32_t waitSemaphoreCount = {};
43336     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
43337     uint32_t swapchainCount = {};
43338     const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains = {};
43339     const uint32_t* pImageIndices = {};
43340     VULKAN_HPP_NAMESPACE::Result* pResults = {};
43341 
43342   };
43343   static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" );
43344   static_assert( std::is_standard_layout<PresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
43345 
43346   template <>
43347   struct CppType<StructureType, StructureType::ePresentInfoKHR>
43348   {
43349     using Type = PresentInfoKHR;
43350   };
43351 
43352   struct SubmitInfo
43353   {
43354     static const bool allowDuplicate = false;
43355     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo;
43356 
43357 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo43358     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
43359     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), pWaitDstStageMask( pWaitDstStageMask_ ), commandBufferCount( commandBufferCount_ ), pCommandBuffers( pCommandBuffers_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ )
43360     {}
43361 
43362     VULKAN_HPP_CONSTEXPR SubmitInfo( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43363 
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo43364     SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43365     {
43366       *this = rhs;
43367     }
43368 
43369 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo43370     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_ = {} )
43371     : 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() )
43372     {
43373 #ifdef VULKAN_HPP_NO_EXCEPTIONS
43374       VULKAN_HPP_ASSERT( waitSemaphores_.size() == waitDstStageMask_.size() );
43375 #else
43376       if ( waitSemaphores_.size() != waitDstStageMask_.size() )
43377       {
43378         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubmitInfo::SubmitInfo: waitSemaphores_.size() != waitDstStageMask_.size()" );
43379       }
43380 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
43381     }
43382 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43383 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43384 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo43385     SubmitInfo & operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43386     {
43387       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo const *>( &rhs );
43388       return *this;
43389     }
43390 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo43391     SubmitInfo & operator=( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43392     {
43393       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubmitInfo ) );
43394       return *this;
43395     }
43396 
setPNextVULKAN_HPP_NAMESPACE::SubmitInfo43397     SubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43398     {
43399       pNext = pNext_;
43400       return *this;
43401     }
43402 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo43403     SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
43404     {
43405       waitSemaphoreCount = waitSemaphoreCount_;
43406       return *this;
43407     }
43408 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43409     SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43410     {
43411       pWaitSemaphores = pWaitSemaphores_;
43412       return *this;
43413     }
43414 
43415 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43416     SubmitInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43417     {
43418       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
43419       pWaitSemaphores = waitSemaphores_.data();
43420       return *this;
43421     }
43422 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43423 
setPWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo43424     SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
43425     {
43426       pWaitDstStageMask = pWaitDstStageMask_;
43427       return *this;
43428     }
43429 
43430 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo43431     SubmitInfo & setWaitDstStageMask( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const & waitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
43432     {
43433       waitSemaphoreCount = static_cast<uint32_t>( waitDstStageMask_.size() );
43434       pWaitDstStageMask = waitDstStageMask_.data();
43435       return *this;
43436     }
43437 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43438 
setCommandBufferCountVULKAN_HPP_NAMESPACE::SubmitInfo43439     SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
43440     {
43441       commandBufferCount = commandBufferCount_;
43442       return *this;
43443     }
43444 
setPCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo43445     SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT
43446     {
43447       pCommandBuffers = pCommandBuffers_;
43448       return *this;
43449     }
43450 
43451 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo43452     SubmitInfo & setCommandBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ ) VULKAN_HPP_NOEXCEPT
43453     {
43454       commandBufferCount = static_cast<uint32_t>( commandBuffers_.size() );
43455       pCommandBuffers = commandBuffers_.data();
43456       return *this;
43457     }
43458 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43459 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo43460     SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
43461     {
43462       signalSemaphoreCount = signalSemaphoreCount_;
43463       return *this;
43464     }
43465 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43466     SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
43467     {
43468       pSignalSemaphores = pSignalSemaphores_;
43469       return *this;
43470     }
43471 
43472 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43473     SubmitInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
43474     {
43475       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
43476       pSignalSemaphores = signalSemaphores_.data();
43477       return *this;
43478     }
43479 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43480 
43481 
operator VkSubmitInfo const&VULKAN_HPP_NAMESPACE::SubmitInfo43482     operator VkSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
43483     {
43484       return *reinterpret_cast<const VkSubmitInfo*>( this );
43485     }
43486 
operator VkSubmitInfo&VULKAN_HPP_NAMESPACE::SubmitInfo43487     operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT
43488     {
43489       return *reinterpret_cast<VkSubmitInfo*>( this );
43490     }
43491 
43492 
43493 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43494     auto operator<=>( SubmitInfo const& ) const = default;
43495 #else
operator ==VULKAN_HPP_NAMESPACE::SubmitInfo43496     bool operator==( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43497     {
43498       return ( sType == rhs.sType )
43499           && ( pNext == rhs.pNext )
43500           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
43501           && ( pWaitSemaphores == rhs.pWaitSemaphores )
43502           && ( pWaitDstStageMask == rhs.pWaitDstStageMask )
43503           && ( commandBufferCount == rhs.commandBufferCount )
43504           && ( pCommandBuffers == rhs.pCommandBuffers )
43505           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
43506           && ( pSignalSemaphores == rhs.pSignalSemaphores );
43507     }
43508 
operator !=VULKAN_HPP_NAMESPACE::SubmitInfo43509     bool operator!=( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43510     {
43511       return !operator==( rhs );
43512     }
43513 #endif
43514 
43515 
43516 
43517   public:
43518     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo;
43519     const void* pNext = {};
43520     uint32_t waitSemaphoreCount = {};
43521     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
43522     const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask = {};
43523     uint32_t commandBufferCount = {};
43524     const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers = {};
43525     uint32_t signalSemaphoreCount = {};
43526     const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {};
43527 
43528   };
43529   static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" );
43530   static_assert( std::is_standard_layout<SubmitInfo>::value, "struct wrapper is not a standard layout!" );
43531 
43532   template <>
43533   struct CppType<StructureType, StructureType::eSubmitInfo>
43534   {
43535     using Type = SubmitInfo;
43536   };
43537 
43538   class Queue
43539   {
43540   public:
43541     using CType = VkQueue;
43542 
43543     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueue;
43544     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue;
43545 
43546   public:
Queue()43547     VULKAN_HPP_CONSTEXPR Queue() VULKAN_HPP_NOEXCEPT
43548       : m_queue(VK_NULL_HANDLE)
43549     {}
43550 
Queue(std::nullptr_t)43551     VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
43552       : m_queue(VK_NULL_HANDLE)
43553     {}
43554 
Queue(VkQueue queue)43555     VULKAN_HPP_TYPESAFE_EXPLICIT Queue( VkQueue queue ) VULKAN_HPP_NOEXCEPT
43556       : m_queue( queue )
43557     {}
43558 
43559 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueue queue)43560     Queue & operator=(VkQueue queue) VULKAN_HPP_NOEXCEPT
43561     {
43562       m_queue = queue;
43563       return *this;
43564     }
43565 #endif
43566 
operator =(std::nullptr_t)43567     Queue & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
43568     {
43569       m_queue = VK_NULL_HANDLE;
43570       return *this;
43571     }
43572 
43573 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43574     auto operator<=>( Queue const& ) const = default;
43575 #else
operator ==(Queue const & rhs) const43576     bool operator==( Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
43577     {
43578       return m_queue == rhs.m_queue;
43579     }
43580 
operator !=(Queue const & rhs) const43581     bool operator!=(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
43582     {
43583       return m_queue != rhs.m_queue;
43584     }
43585 
operator <(Queue const & rhs) const43586     bool operator<(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
43587     {
43588       return m_queue < rhs.m_queue;
43589     }
43590 #endif
43591 
43592 
43593     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43594     void getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43595 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43596     template <typename CheckpointDataNVAllocator = std::allocator<CheckpointDataNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43597     VULKAN_HPP_NODISCARD std::vector<CheckpointDataNV, CheckpointDataNVAllocator> getCheckpointDataNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43598     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>
43599     VULKAN_HPP_NODISCARD std::vector<CheckpointDataNV, CheckpointDataNVAllocator> getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43600 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43601 
43602 
43603     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43604     void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43605 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43606     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43607     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43608 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43609 
43610 
43611     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43612     VULKAN_HPP_NODISCARD Result bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43613 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43614     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43615     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;
43616 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43617 
43618 
43619     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43620     void endDebugUtilsLabelEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43621 
43622 
43623     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43624     void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43625 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43626     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43627     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43628 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43629 
43630 
43631     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43632     VULKAN_HPP_NODISCARD Result presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43633 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43634     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43635     VULKAN_HPP_NODISCARD Result presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43636 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43637 
43638 
43639 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
43640     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43641     VULKAN_HPP_NODISCARD Result setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43642 #else
43643     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43644     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;
43645 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43646 
43647 
43648 
43649     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43650     VULKAN_HPP_NODISCARD Result submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43651 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43652     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43653     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;
43654 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43655 
43656 
43657 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
43658     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43659     VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43660 #else
43661     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43662     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43663 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43664 
43665 
operator VkQueue() const43666     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const VULKAN_HPP_NOEXCEPT
43667     {
43668       return m_queue;
43669     }
43670 
operator bool() const43671     explicit operator bool() const VULKAN_HPP_NOEXCEPT
43672     {
43673       return m_queue != VK_NULL_HANDLE;
43674     }
43675 
operator !() const43676     bool operator!() const VULKAN_HPP_NOEXCEPT
43677     {
43678       return m_queue == VK_NULL_HANDLE;
43679     }
43680 
43681   private:
43682     VkQueue m_queue;
43683   };
43684   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Queue ) == sizeof( VkQueue ), "handle and wrapper have different size!" );
43685 
43686   template <>
43687   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eQueue>
43688   {
43689     using type = VULKAN_HPP_NAMESPACE::Queue;
43690   };
43691 
43692   template <>
43693   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eQueue>
43694   {
43695     using Type = VULKAN_HPP_NAMESPACE::Queue;
43696   };
43697 
43698 
43699   template <>
43700   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue>
43701   {
43702     using Type = VULKAN_HPP_NAMESPACE::Queue;
43703   };
43704 
43705 
43706   template <>
43707   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Queue>
43708   {
43709     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
43710   };
43711 
43712   struct DeviceQueueInfo2
43713   {
43714     static const bool allowDuplicate = false;
43715     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueInfo2;
43716 
43717 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo243718     VULKAN_HPP_CONSTEXPR DeviceQueueInfo2(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueIndex_ = {}) VULKAN_HPP_NOEXCEPT
43719     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueIndex( queueIndex_ )
43720     {}
43721 
43722     VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43723 
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo243724     DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
43725     {
43726       *this = rhs;
43727     }
43728 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43729 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueInfo243730     DeviceQueueInfo2 & operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
43731     {
43732       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const *>( &rhs );
43733       return *this;
43734     }
43735 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueInfo243736     DeviceQueueInfo2 & operator=( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
43737     {
43738       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceQueueInfo2 ) );
43739       return *this;
43740     }
43741 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueInfo243742     DeviceQueueInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43743     {
43744       pNext = pNext_;
43745       return *this;
43746     }
43747 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueInfo243748     DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
43749     {
43750       flags = flags_;
43751       return *this;
43752     }
43753 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo243754     DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
43755     {
43756       queueFamilyIndex = queueFamilyIndex_;
43757       return *this;
43758     }
43759 
setQueueIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo243760     DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT
43761     {
43762       queueIndex = queueIndex_;
43763       return *this;
43764     }
43765 
43766 
operator VkDeviceQueueInfo2 const&VULKAN_HPP_NAMESPACE::DeviceQueueInfo243767     operator VkDeviceQueueInfo2 const&() const VULKAN_HPP_NOEXCEPT
43768     {
43769       return *reinterpret_cast<const VkDeviceQueueInfo2*>( this );
43770     }
43771 
operator VkDeviceQueueInfo2&VULKAN_HPP_NAMESPACE::DeviceQueueInfo243772     operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT
43773     {
43774       return *reinterpret_cast<VkDeviceQueueInfo2*>( this );
43775     }
43776 
43777 
43778 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43779     auto operator<=>( DeviceQueueInfo2 const& ) const = default;
43780 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueInfo243781     bool operator==( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
43782     {
43783       return ( sType == rhs.sType )
43784           && ( pNext == rhs.pNext )
43785           && ( flags == rhs.flags )
43786           && ( queueFamilyIndex == rhs.queueFamilyIndex )
43787           && ( queueIndex == rhs.queueIndex );
43788     }
43789 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueInfo243790     bool operator!=( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
43791     {
43792       return !operator==( rhs );
43793     }
43794 #endif
43795 
43796 
43797 
43798   public:
43799     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2;
43800     const void* pNext = {};
43801     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
43802     uint32_t queueFamilyIndex = {};
43803     uint32_t queueIndex = {};
43804 
43805   };
43806   static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), "struct and wrapper have different size!" );
43807   static_assert( std::is_standard_layout<DeviceQueueInfo2>::value, "struct wrapper is not a standard layout!" );
43808 
43809   template <>
43810   struct CppType<StructureType, StructureType::eDeviceQueueInfo2>
43811   {
43812     using Type = DeviceQueueInfo2;
43813   };
43814 
43815   struct FenceGetFdInfoKHR
43816   {
43817     static const bool allowDuplicate = false;
43818     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetFdInfoKHR;
43819 
43820 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43821     VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
43822     : fence( fence_ ), handleType( handleType_ )
43823     {}
43824 
43825     VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43826 
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43827     FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43828     {
43829       *this = rhs;
43830     }
43831 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43832 
operator =VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43833     FenceGetFdInfoKHR & operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43834     {
43835       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR const *>( &rhs );
43836       return *this;
43837     }
43838 
operator =VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43839     FenceGetFdInfoKHR & operator=( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43840     {
43841       memcpy( static_cast<void *>( this ), &rhs, sizeof( FenceGetFdInfoKHR ) );
43842       return *this;
43843     }
43844 
setPNextVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43845     FenceGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43846     {
43847       pNext = pNext_;
43848       return *this;
43849     }
43850 
setFenceVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43851     FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
43852     {
43853       fence = fence_;
43854       return *this;
43855     }
43856 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43857     FenceGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
43858     {
43859       handleType = handleType_;
43860       return *this;
43861     }
43862 
43863 
operator VkFenceGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43864     operator VkFenceGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
43865     {
43866       return *reinterpret_cast<const VkFenceGetFdInfoKHR*>( this );
43867     }
43868 
operator VkFenceGetFdInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43869     operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
43870     {
43871       return *reinterpret_cast<VkFenceGetFdInfoKHR*>( this );
43872     }
43873 
43874 
43875 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43876     auto operator<=>( FenceGetFdInfoKHR const& ) const = default;
43877 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43878     bool operator==( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43879     {
43880       return ( sType == rhs.sType )
43881           && ( pNext == rhs.pNext )
43882           && ( fence == rhs.fence )
43883           && ( handleType == rhs.handleType );
43884     }
43885 
operator !=VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43886     bool operator!=( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43887     {
43888       return !operator==( rhs );
43889     }
43890 #endif
43891 
43892 
43893 
43894   public:
43895     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR;
43896     const void* pNext = {};
43897     VULKAN_HPP_NAMESPACE::Fence fence = {};
43898     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
43899 
43900   };
43901   static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), "struct and wrapper have different size!" );
43902   static_assert( std::is_standard_layout<FenceGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
43903 
43904   template <>
43905   struct CppType<StructureType, StructureType::eFenceGetFdInfoKHR>
43906   {
43907     using Type = FenceGetFdInfoKHR;
43908   };
43909 
43910 #ifdef VK_USE_PLATFORM_WIN32_KHR
43911   struct FenceGetWin32HandleInfoKHR
43912   {
43913     static const bool allowDuplicate = false;
43914     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetWin32HandleInfoKHR;
43915 
43916 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43917     VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
43918     : fence( fence_ ), handleType( handleType_ )
43919     {}
43920 
43921     VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43922 
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43923     FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43924     {
43925       *this = rhs;
43926     }
43927 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43928 
operator =VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43929     FenceGetWin32HandleInfoKHR & operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43930     {
43931       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR const *>( &rhs );
43932       return *this;
43933     }
43934 
operator =VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43935     FenceGetWin32HandleInfoKHR & operator=( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43936     {
43937       memcpy( static_cast<void *>( this ), &rhs, sizeof( FenceGetWin32HandleInfoKHR ) );
43938       return *this;
43939     }
43940 
setPNextVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43941     FenceGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43942     {
43943       pNext = pNext_;
43944       return *this;
43945     }
43946 
setFenceVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43947     FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
43948     {
43949       fence = fence_;
43950       return *this;
43951     }
43952 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43953     FenceGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
43954     {
43955       handleType = handleType_;
43956       return *this;
43957     }
43958 
43959 
operator VkFenceGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43960     operator VkFenceGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
43961     {
43962       return *reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( this );
43963     }
43964 
operator VkFenceGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43965     operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
43966     {
43967       return *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>( this );
43968     }
43969 
43970 
43971 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43972     auto operator<=>( FenceGetWin32HandleInfoKHR const& ) const = default;
43973 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43974     bool operator==( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43975     {
43976       return ( sType == rhs.sType )
43977           && ( pNext == rhs.pNext )
43978           && ( fence == rhs.fence )
43979           && ( handleType == rhs.handleType );
43980     }
43981 
operator !=VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43982     bool operator!=( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43983     {
43984       return !operator==( rhs );
43985     }
43986 #endif
43987 
43988 
43989 
43990   public:
43991     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR;
43992     const void* pNext = {};
43993     VULKAN_HPP_NAMESPACE::Fence fence = {};
43994     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
43995 
43996   };
43997   static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
43998   static_assert( std::is_standard_layout<FenceGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
43999 
44000   template <>
44001   struct CppType<StructureType, StructureType::eFenceGetWin32HandleInfoKHR>
44002   {
44003     using Type = FenceGetWin32HandleInfoKHR;
44004   };
44005 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
44006 
44007   struct GeneratedCommandsMemoryRequirementsInfoNV
44008   {
44009     static const bool allowDuplicate = false;
44010     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
44011 
44012 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44013     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
44014     : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), maxSequencesCount( maxSequencesCount_ )
44015     {}
44016 
44017     VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44018 
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44019     GeneratedCommandsMemoryRequirementsInfoNV( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
44020     {
44021       *this = rhs;
44022     }
44023 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44024 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44025     GeneratedCommandsMemoryRequirementsInfoNV & operator=( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
44026     {
44027       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV const *>( &rhs );
44028       return *this;
44029     }
44030 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44031     GeneratedCommandsMemoryRequirementsInfoNV & operator=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
44032     {
44033       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) );
44034       return *this;
44035     }
44036 
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44037     GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44038     {
44039       pNext = pNext_;
44040       return *this;
44041     }
44042 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44043     GeneratedCommandsMemoryRequirementsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
44044     {
44045       pipelineBindPoint = pipelineBindPoint_;
44046       return *this;
44047     }
44048 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44049     GeneratedCommandsMemoryRequirementsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
44050     {
44051       pipeline = pipeline_;
44052       return *this;
44053     }
44054 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44055     GeneratedCommandsMemoryRequirementsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
44056     {
44057       indirectCommandsLayout = indirectCommandsLayout_;
44058       return *this;
44059     }
44060 
setMaxSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44061     GeneratedCommandsMemoryRequirementsInfoNV & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT
44062     {
44063       maxSequencesCount = maxSequencesCount_;
44064       return *this;
44065     }
44066 
44067 
operator VkGeneratedCommandsMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44068     operator VkGeneratedCommandsMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT
44069     {
44070       return *reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
44071     }
44072 
operator VkGeneratedCommandsMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44073     operator VkGeneratedCommandsMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
44074     {
44075       return *reinterpret_cast<VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
44076     }
44077 
44078 
44079 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44080     auto operator<=>( GeneratedCommandsMemoryRequirementsInfoNV const& ) const = default;
44081 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44082     bool operator==( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
44083     {
44084       return ( sType == rhs.sType )
44085           && ( pNext == rhs.pNext )
44086           && ( pipelineBindPoint == rhs.pipelineBindPoint )
44087           && ( pipeline == rhs.pipeline )
44088           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
44089           && ( maxSequencesCount == rhs.maxSequencesCount );
44090     }
44091 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44092     bool operator!=( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
44093     {
44094       return !operator==( rhs );
44095     }
44096 #endif
44097 
44098 
44099 
44100   public:
44101     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
44102     const void* pNext = {};
44103     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
44104     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
44105     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
44106     uint32_t maxSequencesCount = {};
44107 
44108   };
44109   static_assert( sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) == sizeof( VkGeneratedCommandsMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
44110   static_assert( std::is_standard_layout<GeneratedCommandsMemoryRequirementsInfoNV>::value, "struct wrapper is not a standard layout!" );
44111 
44112   template <>
44113   struct CppType<StructureType, StructureType::eGeneratedCommandsMemoryRequirementsInfoNV>
44114   {
44115     using Type = GeneratedCommandsMemoryRequirementsInfoNV;
44116   };
44117 
44118   struct ImageDrmFormatModifierPropertiesEXT
44119   {
44120     static const bool allowDuplicate = false;
44121     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierPropertiesEXT;
44122 
44123 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44124     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}) VULKAN_HPP_NOEXCEPT
44125     : drmFormatModifier( drmFormatModifier_ )
44126     {}
44127 
44128     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44129 
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44130     ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44131     {
44132       *this = rhs;
44133     }
44134 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44135 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44136     ImageDrmFormatModifierPropertiesEXT & operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44137     {
44138       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT const *>( &rhs );
44139       return *this;
44140     }
44141 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44142     ImageDrmFormatModifierPropertiesEXT & operator=( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44143     {
44144       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageDrmFormatModifierPropertiesEXT ) );
44145       return *this;
44146     }
44147 
44148 
operator VkImageDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44149     operator VkImageDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
44150     {
44151       return *reinterpret_cast<const VkImageDrmFormatModifierPropertiesEXT*>( this );
44152     }
44153 
operator VkImageDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44154     operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
44155     {
44156       return *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( this );
44157     }
44158 
44159 
44160 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44161     auto operator<=>( ImageDrmFormatModifierPropertiesEXT const& ) const = default;
44162 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44163     bool operator==( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
44164     {
44165       return ( sType == rhs.sType )
44166           && ( pNext == rhs.pNext )
44167           && ( drmFormatModifier == rhs.drmFormatModifier );
44168     }
44169 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44170     bool operator!=( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
44171     {
44172       return !operator==( rhs );
44173     }
44174 #endif
44175 
44176 
44177 
44178   public:
44179     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT;
44180     void* pNext = {};
44181     uint64_t drmFormatModifier = {};
44182 
44183   };
44184   static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
44185   static_assert( std::is_standard_layout<ImageDrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
44186 
44187   template <>
44188   struct CppType<StructureType, StructureType::eImageDrmFormatModifierPropertiesEXT>
44189   {
44190     using Type = ImageDrmFormatModifierPropertiesEXT;
44191   };
44192 
44193   struct ImageMemoryRequirementsInfo2
44194   {
44195     static const bool allowDuplicate = false;
44196     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryRequirementsInfo2;
44197 
44198 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244199     VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT
44200     : image( image_ )
44201     {}
44202 
44203     VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44204 
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244205     ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44206     {
44207       *this = rhs;
44208     }
44209 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44210 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244211     ImageMemoryRequirementsInfo2 & operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44212     {
44213       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 const *>( &rhs );
44214       return *this;
44215     }
44216 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244217     ImageMemoryRequirementsInfo2 & operator=( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44218     {
44219       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageMemoryRequirementsInfo2 ) );
44220       return *this;
44221     }
44222 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244223     ImageMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44224     {
44225       pNext = pNext_;
44226       return *this;
44227     }
44228 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244229     ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
44230     {
44231       image = image_;
44232       return *this;
44233     }
44234 
44235 
operator VkImageMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244236     operator VkImageMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
44237     {
44238       return *reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( this );
44239     }
44240 
operator VkImageMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244241     operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
44242     {
44243       return *reinterpret_cast<VkImageMemoryRequirementsInfo2*>( this );
44244     }
44245 
44246 
44247 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44248     auto operator<=>( ImageMemoryRequirementsInfo2 const& ) const = default;
44249 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244250     bool operator==( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44251     {
44252       return ( sType == rhs.sType )
44253           && ( pNext == rhs.pNext )
44254           && ( image == rhs.image );
44255     }
44256 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244257     bool operator!=( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44258     {
44259       return !operator==( rhs );
44260     }
44261 #endif
44262 
44263 
44264 
44265   public:
44266     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2;
44267     const void* pNext = {};
44268     VULKAN_HPP_NAMESPACE::Image image = {};
44269 
44270   };
44271   static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
44272   static_assert( std::is_standard_layout<ImageMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
44273 
44274   template <>
44275   struct CppType<StructureType, StructureType::eImageMemoryRequirementsInfo2>
44276   {
44277     using Type = ImageMemoryRequirementsInfo2;
44278   };
44279   using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
44280 
44281   struct SparseImageFormatProperties
44282   {
44283 
44284 
44285 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties44286     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {}, VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
44287     : aspectMask( aspectMask_ ), imageGranularity( imageGranularity_ ), flags( flags_ )
44288     {}
44289 
44290     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44291 
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties44292     SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
44293     {
44294       *this = rhs;
44295     }
44296 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44297 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44298     SparseImageFormatProperties & operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
44299     {
44300       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const *>( &rhs );
44301       return *this;
44302     }
44303 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44304     SparseImageFormatProperties & operator=( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
44305     {
44306       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageFormatProperties ) );
44307       return *this;
44308     }
44309 
44310 
operator VkSparseImageFormatProperties const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44311     operator VkSparseImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
44312     {
44313       return *reinterpret_cast<const VkSparseImageFormatProperties*>( this );
44314     }
44315 
operator VkSparseImageFormatProperties&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44316     operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT
44317     {
44318       return *reinterpret_cast<VkSparseImageFormatProperties*>( this );
44319     }
44320 
44321 
44322 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44323     auto operator<=>( SparseImageFormatProperties const& ) const = default;
44324 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44325     bool operator==( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
44326     {
44327       return ( aspectMask == rhs.aspectMask )
44328           && ( imageGranularity == rhs.imageGranularity )
44329           && ( flags == rhs.flags );
44330     }
44331 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44332     bool operator!=( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
44333     {
44334       return !operator==( rhs );
44335     }
44336 #endif
44337 
44338 
44339 
44340   public:
44341     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
44342     VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {};
44343     VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {};
44344 
44345   };
44346   static_assert( sizeof( SparseImageFormatProperties ) == sizeof( VkSparseImageFormatProperties ), "struct and wrapper have different size!" );
44347   static_assert( std::is_standard_layout<SparseImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
44348 
44349   struct SparseImageMemoryRequirements
44350   {
44351 
44352 
44353 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44354     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
44355     : formatProperties( formatProperties_ ), imageMipTailFirstLod( imageMipTailFirstLod_ ), imageMipTailSize( imageMipTailSize_ ), imageMipTailOffset( imageMipTailOffset_ ), imageMipTailStride( imageMipTailStride_ )
44356     {}
44357 
44358     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44359 
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44360     SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
44361     {
44362       *this = rhs;
44363     }
44364 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44365 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44366     SparseImageMemoryRequirements & operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
44367     {
44368       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const *>( &rhs );
44369       return *this;
44370     }
44371 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44372     SparseImageMemoryRequirements & operator=( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
44373     {
44374       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryRequirements ) );
44375       return *this;
44376     }
44377 
44378 
operator VkSparseImageMemoryRequirements const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44379     operator VkSparseImageMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT
44380     {
44381       return *reinterpret_cast<const VkSparseImageMemoryRequirements*>( this );
44382     }
44383 
operator VkSparseImageMemoryRequirements&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44384     operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
44385     {
44386       return *reinterpret_cast<VkSparseImageMemoryRequirements*>( this );
44387     }
44388 
44389 
44390 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44391     auto operator<=>( SparseImageMemoryRequirements const& ) const = default;
44392 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44393     bool operator==( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
44394     {
44395       return ( formatProperties == rhs.formatProperties )
44396           && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod )
44397           && ( imageMipTailSize == rhs.imageMipTailSize )
44398           && ( imageMipTailOffset == rhs.imageMipTailOffset )
44399           && ( imageMipTailStride == rhs.imageMipTailStride );
44400     }
44401 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44402     bool operator!=( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
44403     {
44404       return !operator==( rhs );
44405     }
44406 #endif
44407 
44408 
44409 
44410   public:
44411     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {};
44412     uint32_t imageMipTailFirstLod = {};
44413     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {};
44414     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {};
44415     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {};
44416 
44417   };
44418   static_assert( sizeof( SparseImageMemoryRequirements ) == sizeof( VkSparseImageMemoryRequirements ), "struct and wrapper have different size!" );
44419   static_assert( std::is_standard_layout<SparseImageMemoryRequirements>::value, "struct wrapper is not a standard layout!" );
44420 
44421   struct ImageSparseMemoryRequirementsInfo2
44422   {
44423     static const bool allowDuplicate = false;
44424     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSparseMemoryRequirementsInfo2;
44425 
44426 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244427     VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT
44428     : image( image_ )
44429     {}
44430 
44431     VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44432 
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244433     ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44434     {
44435       *this = rhs;
44436     }
44437 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44438 
operator =VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244439     ImageSparseMemoryRequirementsInfo2 & operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44440     {
44441       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 const *>( &rhs );
44442       return *this;
44443     }
44444 
operator =VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244445     ImageSparseMemoryRequirementsInfo2 & operator=( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44446     {
44447       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSparseMemoryRequirementsInfo2 ) );
44448       return *this;
44449     }
44450 
setPNextVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244451     ImageSparseMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44452     {
44453       pNext = pNext_;
44454       return *this;
44455     }
44456 
setImageVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244457     ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
44458     {
44459       image = image_;
44460       return *this;
44461     }
44462 
44463 
operator VkImageSparseMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244464     operator VkImageSparseMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
44465     {
44466       return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( this );
44467     }
44468 
operator VkImageSparseMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244469     operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
44470     {
44471       return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>( this );
44472     }
44473 
44474 
44475 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44476     auto operator<=>( ImageSparseMemoryRequirementsInfo2 const& ) const = default;
44477 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244478     bool operator==( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44479     {
44480       return ( sType == rhs.sType )
44481           && ( pNext == rhs.pNext )
44482           && ( image == rhs.image );
44483     }
44484 
operator !=VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244485     bool operator!=( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44486     {
44487       return !operator==( rhs );
44488     }
44489 #endif
44490 
44491 
44492 
44493   public:
44494     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2;
44495     const void* pNext = {};
44496     VULKAN_HPP_NAMESPACE::Image image = {};
44497 
44498   };
44499   static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
44500   static_assert( std::is_standard_layout<ImageSparseMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
44501 
44502   template <>
44503   struct CppType<StructureType, StructureType::eImageSparseMemoryRequirementsInfo2>
44504   {
44505     using Type = ImageSparseMemoryRequirementsInfo2;
44506   };
44507   using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
44508 
44509   struct SparseImageMemoryRequirements2
44510   {
44511     static const bool allowDuplicate = false;
44512     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageMemoryRequirements2;
44513 
44514 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244515     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2(VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT
44516     : memoryRequirements( memoryRequirements_ )
44517     {}
44518 
44519     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44520 
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244521     SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
44522     {
44523       *this = rhs;
44524     }
44525 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44526 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244527     SparseImageMemoryRequirements2 & operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
44528     {
44529       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 const *>( &rhs );
44530       return *this;
44531     }
44532 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244533     SparseImageMemoryRequirements2 & operator=( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
44534     {
44535       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryRequirements2 ) );
44536       return *this;
44537     }
44538 
44539 
operator VkSparseImageMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244540     operator VkSparseImageMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT
44541     {
44542       return *reinterpret_cast<const VkSparseImageMemoryRequirements2*>( this );
44543     }
44544 
operator VkSparseImageMemoryRequirements2&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244545     operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
44546     {
44547       return *reinterpret_cast<VkSparseImageMemoryRequirements2*>( this );
44548     }
44549 
44550 
44551 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44552     auto operator<=>( SparseImageMemoryRequirements2 const& ) const = default;
44553 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244554     bool operator==( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44555     {
44556       return ( sType == rhs.sType )
44557           && ( pNext == rhs.pNext )
44558           && ( memoryRequirements == rhs.memoryRequirements );
44559     }
44560 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244561     bool operator!=( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44562     {
44563       return !operator==( rhs );
44564     }
44565 #endif
44566 
44567 
44568 
44569   public:
44570     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2;
44571     void* pNext = {};
44572     VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {};
44573 
44574   };
44575   static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), "struct and wrapper have different size!" );
44576   static_assert( std::is_standard_layout<SparseImageMemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
44577 
44578   template <>
44579   struct CppType<StructureType, StructureType::eSparseImageMemoryRequirements2>
44580   {
44581     using Type = SparseImageMemoryRequirements2;
44582   };
44583   using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
44584 
44585   struct SubresourceLayout
44586   {
44587 
44588 
44589 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout44590     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
44591     : offset( offset_ ), size( size_ ), rowPitch( rowPitch_ ), arrayPitch( arrayPitch_ ), depthPitch( depthPitch_ )
44592     {}
44593 
44594     VULKAN_HPP_CONSTEXPR SubresourceLayout( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44595 
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout44596     SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
44597     {
44598       *this = rhs;
44599     }
44600 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44601 
operator =VULKAN_HPP_NAMESPACE::SubresourceLayout44602     SubresourceLayout & operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
44603     {
44604       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout const *>( &rhs );
44605       return *this;
44606     }
44607 
operator =VULKAN_HPP_NAMESPACE::SubresourceLayout44608     SubresourceLayout & operator=( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
44609     {
44610       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubresourceLayout ) );
44611       return *this;
44612     }
44613 
44614 
operator VkSubresourceLayout const&VULKAN_HPP_NAMESPACE::SubresourceLayout44615     operator VkSubresourceLayout const&() const VULKAN_HPP_NOEXCEPT
44616     {
44617       return *reinterpret_cast<const VkSubresourceLayout*>( this );
44618     }
44619 
operator VkSubresourceLayout&VULKAN_HPP_NAMESPACE::SubresourceLayout44620     operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT
44621     {
44622       return *reinterpret_cast<VkSubresourceLayout*>( this );
44623     }
44624 
44625 
44626 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44627     auto operator<=>( SubresourceLayout const& ) const = default;
44628 #else
operator ==VULKAN_HPP_NAMESPACE::SubresourceLayout44629     bool operator==( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
44630     {
44631       return ( offset == rhs.offset )
44632           && ( size == rhs.size )
44633           && ( rowPitch == rhs.rowPitch )
44634           && ( arrayPitch == rhs.arrayPitch )
44635           && ( depthPitch == rhs.depthPitch );
44636     }
44637 
operator !=VULKAN_HPP_NAMESPACE::SubresourceLayout44638     bool operator!=( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
44639     {
44640       return !operator==( rhs );
44641     }
44642 #endif
44643 
44644 
44645 
44646   public:
44647     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
44648     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
44649     VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {};
44650     VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {};
44651     VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {};
44652 
44653   };
44654   static_assert( sizeof( SubresourceLayout ) == sizeof( VkSubresourceLayout ), "struct and wrapper have different size!" );
44655   static_assert( std::is_standard_layout<SubresourceLayout>::value, "struct wrapper is not a standard layout!" );
44656 
44657   struct ImageViewAddressPropertiesNVX
44658   {
44659     static const bool allowDuplicate = false;
44660     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAddressPropertiesNVX;
44661 
44662 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44663     VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
44664     : deviceAddress( deviceAddress_ ), size( size_ )
44665     {}
44666 
44667     VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44668 
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44669     ImageViewAddressPropertiesNVX( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44670     {
44671       *this = rhs;
44672     }
44673 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44674 
operator =VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44675     ImageViewAddressPropertiesNVX & operator=( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44676     {
44677       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX const *>( &rhs );
44678       return *this;
44679     }
44680 
operator =VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44681     ImageViewAddressPropertiesNVX & operator=( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44682     {
44683       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewAddressPropertiesNVX ) );
44684       return *this;
44685     }
44686 
44687 
operator VkImageViewAddressPropertiesNVX const&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44688     operator VkImageViewAddressPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT
44689     {
44690       return *reinterpret_cast<const VkImageViewAddressPropertiesNVX*>( this );
44691     }
44692 
operator VkImageViewAddressPropertiesNVX&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44693     operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT
44694     {
44695       return *reinterpret_cast<VkImageViewAddressPropertiesNVX*>( this );
44696     }
44697 
44698 
44699 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44700     auto operator<=>( ImageViewAddressPropertiesNVX const& ) const = default;
44701 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44702     bool operator==( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44703     {
44704       return ( sType == rhs.sType )
44705           && ( pNext == rhs.pNext )
44706           && ( deviceAddress == rhs.deviceAddress )
44707           && ( size == rhs.size );
44708     }
44709 
operator !=VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44710     bool operator!=( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44711     {
44712       return !operator==( rhs );
44713     }
44714 #endif
44715 
44716 
44717 
44718   public:
44719     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAddressPropertiesNVX;
44720     void* pNext = {};
44721     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
44722     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
44723 
44724   };
44725   static_assert( sizeof( ImageViewAddressPropertiesNVX ) == sizeof( VkImageViewAddressPropertiesNVX ), "struct and wrapper have different size!" );
44726   static_assert( std::is_standard_layout<ImageViewAddressPropertiesNVX>::value, "struct wrapper is not a standard layout!" );
44727 
44728   template <>
44729   struct CppType<StructureType, StructureType::eImageViewAddressPropertiesNVX>
44730   {
44731     using Type = ImageViewAddressPropertiesNVX;
44732   };
44733 
44734   struct ImageViewHandleInfoNVX
44735   {
44736     static const bool allowDuplicate = false;
44737     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewHandleInfoNVX;
44738 
44739 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44740     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
44741     : imageView( imageView_ ), descriptorType( descriptorType_ ), sampler( sampler_ )
44742     {}
44743 
44744     VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44745 
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44746     ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44747     {
44748       *this = rhs;
44749     }
44750 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44751 
operator =VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44752     ImageViewHandleInfoNVX & operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44753     {
44754       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX const *>( &rhs );
44755       return *this;
44756     }
44757 
operator =VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44758     ImageViewHandleInfoNVX & operator=( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44759     {
44760       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewHandleInfoNVX ) );
44761       return *this;
44762     }
44763 
setPNextVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44764     ImageViewHandleInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44765     {
44766       pNext = pNext_;
44767       return *this;
44768     }
44769 
setImageViewVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44770     ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
44771     {
44772       imageView = imageView_;
44773       return *this;
44774     }
44775 
setDescriptorTypeVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44776     ImageViewHandleInfoNVX & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
44777     {
44778       descriptorType = descriptorType_;
44779       return *this;
44780     }
44781 
setSamplerVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44782     ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
44783     {
44784       sampler = sampler_;
44785       return *this;
44786     }
44787 
44788 
operator VkImageViewHandleInfoNVX const&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44789     operator VkImageViewHandleInfoNVX const&() const VULKAN_HPP_NOEXCEPT
44790     {
44791       return *reinterpret_cast<const VkImageViewHandleInfoNVX*>( this );
44792     }
44793 
operator VkImageViewHandleInfoNVX&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44794     operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT
44795     {
44796       return *reinterpret_cast<VkImageViewHandleInfoNVX*>( this );
44797     }
44798 
44799 
44800 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44801     auto operator<=>( ImageViewHandleInfoNVX const& ) const = default;
44802 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44803     bool operator==( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44804     {
44805       return ( sType == rhs.sType )
44806           && ( pNext == rhs.pNext )
44807           && ( imageView == rhs.imageView )
44808           && ( descriptorType == rhs.descriptorType )
44809           && ( sampler == rhs.sampler );
44810     }
44811 
operator !=VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44812     bool operator!=( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44813     {
44814       return !operator==( rhs );
44815     }
44816 #endif
44817 
44818 
44819 
44820   public:
44821     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX;
44822     const void* pNext = {};
44823     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
44824     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
44825     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
44826 
44827   };
44828   static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), "struct and wrapper have different size!" );
44829   static_assert( std::is_standard_layout<ImageViewHandleInfoNVX>::value, "struct wrapper is not a standard layout!" );
44830 
44831   template <>
44832   struct CppType<StructureType, StructureType::eImageViewHandleInfoNVX>
44833   {
44834     using Type = ImageViewHandleInfoNVX;
44835   };
44836 
44837 #ifdef VK_USE_PLATFORM_ANDROID_KHR
44838   struct MemoryGetAndroidHardwareBufferInfoANDROID
44839   {
44840     static const bool allowDuplicate = false;
44841     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
44842 
44843 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44844     VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT
44845     : memory( memory_ )
44846     {}
44847 
44848     VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44849 
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44850     MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
44851     {
44852       *this = rhs;
44853     }
44854 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44855 
operator =VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44856     MemoryGetAndroidHardwareBufferInfoANDROID & operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
44857     {
44858       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID const *>( &rhs );
44859       return *this;
44860     }
44861 
operator =VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44862     MemoryGetAndroidHardwareBufferInfoANDROID & operator=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
44863     {
44864       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) );
44865       return *this;
44866     }
44867 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44868     MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44869     {
44870       pNext = pNext_;
44871       return *this;
44872     }
44873 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44874     MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
44875     {
44876       memory = memory_;
44877       return *this;
44878     }
44879 
44880 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44881     operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT
44882     {
44883       return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
44884     }
44885 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44886     operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
44887     {
44888       return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
44889     }
44890 
44891 
44892 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44893     auto operator<=>( MemoryGetAndroidHardwareBufferInfoANDROID const& ) const = default;
44894 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44895     bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
44896     {
44897       return ( sType == rhs.sType )
44898           && ( pNext == rhs.pNext )
44899           && ( memory == rhs.memory );
44900     }
44901 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44902     bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
44903     {
44904       return !operator==( rhs );
44905     }
44906 #endif
44907 
44908 
44909 
44910   public:
44911     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
44912     const void* pNext = {};
44913     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
44914 
44915   };
44916   static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
44917   static_assert( std::is_standard_layout<MemoryGetAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
44918 
44919   template <>
44920   struct CppType<StructureType, StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID>
44921   {
44922     using Type = MemoryGetAndroidHardwareBufferInfoANDROID;
44923   };
44924 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
44925 
44926   struct MemoryGetFdInfoKHR
44927   {
44928     static const bool allowDuplicate = false;
44929     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetFdInfoKHR;
44930 
44931 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44932     VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
44933     : memory( memory_ ), handleType( handleType_ )
44934     {}
44935 
44936     VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44937 
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44938     MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44939     {
44940       *this = rhs;
44941     }
44942 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44943 
operator =VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44944     MemoryGetFdInfoKHR & operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44945     {
44946       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR const *>( &rhs );
44947       return *this;
44948     }
44949 
operator =VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44950     MemoryGetFdInfoKHR & operator=( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44951     {
44952       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryGetFdInfoKHR ) );
44953       return *this;
44954     }
44955 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44956     MemoryGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44957     {
44958       pNext = pNext_;
44959       return *this;
44960     }
44961 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44962     MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
44963     {
44964       memory = memory_;
44965       return *this;
44966     }
44967 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44968     MemoryGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
44969     {
44970       handleType = handleType_;
44971       return *this;
44972     }
44973 
44974 
operator VkMemoryGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44975     operator VkMemoryGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
44976     {
44977       return *reinterpret_cast<const VkMemoryGetFdInfoKHR*>( this );
44978     }
44979 
operator VkMemoryGetFdInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44980     operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
44981     {
44982       return *reinterpret_cast<VkMemoryGetFdInfoKHR*>( this );
44983     }
44984 
44985 
44986 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44987     auto operator<=>( MemoryGetFdInfoKHR const& ) const = default;
44988 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44989     bool operator==( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44990     {
44991       return ( sType == rhs.sType )
44992           && ( pNext == rhs.pNext )
44993           && ( memory == rhs.memory )
44994           && ( handleType == rhs.handleType );
44995     }
44996 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44997     bool operator!=( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44998     {
44999       return !operator==( rhs );
45000     }
45001 #endif
45002 
45003 
45004 
45005   public:
45006     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR;
45007     const void* pNext = {};
45008     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
45009     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
45010 
45011   };
45012   static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), "struct and wrapper have different size!" );
45013   static_assert( std::is_standard_layout<MemoryGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
45014 
45015   template <>
45016   struct CppType<StructureType, StructureType::eMemoryGetFdInfoKHR>
45017   {
45018     using Type = MemoryGetFdInfoKHR;
45019   };
45020 
45021   struct MemoryFdPropertiesKHR
45022   {
45023     static const bool allowDuplicate = false;
45024     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryFdPropertiesKHR;
45025 
45026 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45027     VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
45028     : memoryTypeBits( memoryTypeBits_ )
45029     {}
45030 
45031     VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45032 
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45033     MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45034     {
45035       *this = rhs;
45036     }
45037 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45038 
operator =VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45039     MemoryFdPropertiesKHR & operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45040     {
45041       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR const *>( &rhs );
45042       return *this;
45043     }
45044 
operator =VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45045     MemoryFdPropertiesKHR & operator=( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45046     {
45047       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryFdPropertiesKHR ) );
45048       return *this;
45049     }
45050 
45051 
operator VkMemoryFdPropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45052     operator VkMemoryFdPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
45053     {
45054       return *reinterpret_cast<const VkMemoryFdPropertiesKHR*>( this );
45055     }
45056 
operator VkMemoryFdPropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45057     operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT
45058     {
45059       return *reinterpret_cast<VkMemoryFdPropertiesKHR*>( this );
45060     }
45061 
45062 
45063 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45064     auto operator<=>( MemoryFdPropertiesKHR const& ) const = default;
45065 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45066     bool operator==( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45067     {
45068       return ( sType == rhs.sType )
45069           && ( pNext == rhs.pNext )
45070           && ( memoryTypeBits == rhs.memoryTypeBits );
45071     }
45072 
operator !=VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45073     bool operator!=( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45074     {
45075       return !operator==( rhs );
45076     }
45077 #endif
45078 
45079 
45080 
45081   public:
45082     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR;
45083     void* pNext = {};
45084     uint32_t memoryTypeBits = {};
45085 
45086   };
45087   static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), "struct and wrapper have different size!" );
45088   static_assert( std::is_standard_layout<MemoryFdPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
45089 
45090   template <>
45091   struct CppType<StructureType, StructureType::eMemoryFdPropertiesKHR>
45092   {
45093     using Type = MemoryFdPropertiesKHR;
45094   };
45095 
45096   struct MemoryHostPointerPropertiesEXT
45097   {
45098     static const bool allowDuplicate = false;
45099     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryHostPointerPropertiesEXT;
45100 
45101 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45102     VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
45103     : memoryTypeBits( memoryTypeBits_ )
45104     {}
45105 
45106     VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45107 
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45108     MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45109     {
45110       *this = rhs;
45111     }
45112 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45113 
operator =VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45114     MemoryHostPointerPropertiesEXT & operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45115     {
45116       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT const *>( &rhs );
45117       return *this;
45118     }
45119 
operator =VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45120     MemoryHostPointerPropertiesEXT & operator=( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45121     {
45122       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryHostPointerPropertiesEXT ) );
45123       return *this;
45124     }
45125 
45126 
operator VkMemoryHostPointerPropertiesEXT const&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45127     operator VkMemoryHostPointerPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
45128     {
45129       return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT*>( this );
45130     }
45131 
operator VkMemoryHostPointerPropertiesEXT&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45132     operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT
45133     {
45134       return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( this );
45135     }
45136 
45137 
45138 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45139     auto operator<=>( MemoryHostPointerPropertiesEXT const& ) const = default;
45140 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45141     bool operator==( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
45142     {
45143       return ( sType == rhs.sType )
45144           && ( pNext == rhs.pNext )
45145           && ( memoryTypeBits == rhs.memoryTypeBits );
45146     }
45147 
operator !=VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45148     bool operator!=( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
45149     {
45150       return !operator==( rhs );
45151     }
45152 #endif
45153 
45154 
45155 
45156   public:
45157     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT;
45158     void* pNext = {};
45159     uint32_t memoryTypeBits = {};
45160 
45161   };
45162   static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), "struct and wrapper have different size!" );
45163   static_assert( std::is_standard_layout<MemoryHostPointerPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
45164 
45165   template <>
45166   struct CppType<StructureType, StructureType::eMemoryHostPointerPropertiesEXT>
45167   {
45168     using Type = MemoryHostPointerPropertiesEXT;
45169   };
45170 
45171 #ifdef VK_USE_PLATFORM_WIN32_KHR
45172   struct MemoryGetWin32HandleInfoKHR
45173   {
45174     static const bool allowDuplicate = false;
45175     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetWin32HandleInfoKHR;
45176 
45177 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45178     VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
45179     : memory( memory_ ), handleType( handleType_ )
45180     {}
45181 
45182     VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45183 
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45184     MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45185     {
45186       *this = rhs;
45187     }
45188 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45189 
operator =VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45190     MemoryGetWin32HandleInfoKHR & operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45191     {
45192       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR const *>( &rhs );
45193       return *this;
45194     }
45195 
operator =VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45196     MemoryGetWin32HandleInfoKHR & operator=( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45197     {
45198       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryGetWin32HandleInfoKHR ) );
45199       return *this;
45200     }
45201 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45202     MemoryGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45203     {
45204       pNext = pNext_;
45205       return *this;
45206     }
45207 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45208     MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
45209     {
45210       memory = memory_;
45211       return *this;
45212     }
45213 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45214     MemoryGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45215     {
45216       handleType = handleType_;
45217       return *this;
45218     }
45219 
45220 
operator VkMemoryGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45221     operator VkMemoryGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45222     {
45223       return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( this );
45224     }
45225 
operator VkMemoryGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45226     operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
45227     {
45228       return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>( this );
45229     }
45230 
45231 
45232 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45233     auto operator<=>( MemoryGetWin32HandleInfoKHR const& ) const = default;
45234 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45235     bool operator==( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45236     {
45237       return ( sType == rhs.sType )
45238           && ( pNext == rhs.pNext )
45239           && ( memory == rhs.memory )
45240           && ( handleType == rhs.handleType );
45241     }
45242 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45243     bool operator!=( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45244     {
45245       return !operator==( rhs );
45246     }
45247 #endif
45248 
45249 
45250 
45251   public:
45252     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR;
45253     const void* pNext = {};
45254     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
45255     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
45256 
45257   };
45258   static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
45259   static_assert( std::is_standard_layout<MemoryGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
45260 
45261   template <>
45262   struct CppType<StructureType, StructureType::eMemoryGetWin32HandleInfoKHR>
45263   {
45264     using Type = MemoryGetWin32HandleInfoKHR;
45265   };
45266 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
45267 
45268 #ifdef VK_USE_PLATFORM_WIN32_KHR
45269   struct MemoryWin32HandlePropertiesKHR
45270   {
45271     static const bool allowDuplicate = false;
45272     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryWin32HandlePropertiesKHR;
45273 
45274 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45275     VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
45276     : memoryTypeBits( memoryTypeBits_ )
45277     {}
45278 
45279     VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45280 
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45281     MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45282     {
45283       *this = rhs;
45284     }
45285 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45286 
operator =VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45287     MemoryWin32HandlePropertiesKHR & operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45288     {
45289       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR const *>( &rhs );
45290       return *this;
45291     }
45292 
operator =VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45293     MemoryWin32HandlePropertiesKHR & operator=( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45294     {
45295       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryWin32HandlePropertiesKHR ) );
45296       return *this;
45297     }
45298 
45299 
operator VkMemoryWin32HandlePropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45300     operator VkMemoryWin32HandlePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
45301     {
45302       return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR*>( this );
45303     }
45304 
operator VkMemoryWin32HandlePropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45305     operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT
45306     {
45307       return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( this );
45308     }
45309 
45310 
45311 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45312     auto operator<=>( MemoryWin32HandlePropertiesKHR const& ) const = default;
45313 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45314     bool operator==( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45315     {
45316       return ( sType == rhs.sType )
45317           && ( pNext == rhs.pNext )
45318           && ( memoryTypeBits == rhs.memoryTypeBits );
45319     }
45320 
operator !=VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45321     bool operator!=( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45322     {
45323       return !operator==( rhs );
45324     }
45325 #endif
45326 
45327 
45328 
45329   public:
45330     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR;
45331     void* pNext = {};
45332     uint32_t memoryTypeBits = {};
45333 
45334   };
45335   static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), "struct and wrapper have different size!" );
45336   static_assert( std::is_standard_layout<MemoryWin32HandlePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
45337 
45338   template <>
45339   struct CppType<StructureType, StructureType::eMemoryWin32HandlePropertiesKHR>
45340   {
45341     using Type = MemoryWin32HandlePropertiesKHR;
45342   };
45343 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
45344 
45345   struct PastPresentationTimingGOOGLE
45346   {
45347 
45348 
45349 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45350     VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}, uint64_t actualPresentTime_ = {}, uint64_t earliestPresentTime_ = {}, uint64_t presentMargin_ = {}) VULKAN_HPP_NOEXCEPT
45351     : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ ), actualPresentTime( actualPresentTime_ ), earliestPresentTime( earliestPresentTime_ ), presentMargin( presentMargin_ )
45352     {}
45353 
45354     VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45355 
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45356     PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45357     {
45358       *this = rhs;
45359     }
45360 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45361 
operator =VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45362     PastPresentationTimingGOOGLE & operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45363     {
45364       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const *>( &rhs );
45365       return *this;
45366     }
45367 
operator =VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45368     PastPresentationTimingGOOGLE & operator=( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45369     {
45370       memcpy( static_cast<void *>( this ), &rhs, sizeof( PastPresentationTimingGOOGLE ) );
45371       return *this;
45372     }
45373 
45374 
operator VkPastPresentationTimingGOOGLE const&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45375     operator VkPastPresentationTimingGOOGLE const&() const VULKAN_HPP_NOEXCEPT
45376     {
45377       return *reinterpret_cast<const VkPastPresentationTimingGOOGLE*>( this );
45378     }
45379 
operator VkPastPresentationTimingGOOGLE&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45380     operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT
45381     {
45382       return *reinterpret_cast<VkPastPresentationTimingGOOGLE*>( this );
45383     }
45384 
45385 
45386 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45387     auto operator<=>( PastPresentationTimingGOOGLE const& ) const = default;
45388 #else
operator ==VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45389     bool operator==( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
45390     {
45391       return ( presentID == rhs.presentID )
45392           && ( desiredPresentTime == rhs.desiredPresentTime )
45393           && ( actualPresentTime == rhs.actualPresentTime )
45394           && ( earliestPresentTime == rhs.earliestPresentTime )
45395           && ( presentMargin == rhs.presentMargin );
45396     }
45397 
operator !=VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45398     bool operator!=( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
45399     {
45400       return !operator==( rhs );
45401     }
45402 #endif
45403 
45404 
45405 
45406   public:
45407     uint32_t presentID = {};
45408     uint64_t desiredPresentTime = {};
45409     uint64_t actualPresentTime = {};
45410     uint64_t earliestPresentTime = {};
45411     uint64_t presentMargin = {};
45412 
45413   };
45414   static_assert( sizeof( PastPresentationTimingGOOGLE ) == sizeof( VkPastPresentationTimingGOOGLE ), "struct and wrapper have different size!" );
45415   static_assert( std::is_standard_layout<PastPresentationTimingGOOGLE>::value, "struct wrapper is not a standard layout!" );
45416 
45417   union PerformanceValueDataINTEL
45418   {
PerformanceValueDataINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs)45419     PerformanceValueDataINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const& rhs ) VULKAN_HPP_NOEXCEPT
45420     {
45421       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) );
45422     }
45423 
PerformanceValueDataINTEL(uint32_t value32_={} )45424     PerformanceValueDataINTEL( uint32_t value32_ = {} )
45425       : value32( value32_ )
45426     {}
45427 
PerformanceValueDataINTEL(uint64_t value64_)45428     PerformanceValueDataINTEL( uint64_t value64_ )
45429       : value64( value64_ )
45430     {}
45431 
PerformanceValueDataINTEL(float valueFloat_)45432     PerformanceValueDataINTEL( float valueFloat_ )
45433       : valueFloat( valueFloat_ )
45434     {}
45435 
PerformanceValueDataINTEL(const char * valueString_)45436     PerformanceValueDataINTEL( const char* valueString_ )
45437       : valueString( valueString_ )
45438     {}
45439 
setValue32(uint32_t value32_)45440     PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT
45441     {
45442       value32 = value32_;
45443       return *this;
45444     }
45445 
setValue64(uint64_t value64_)45446     PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT
45447     {
45448       value64 = value64_;
45449       return *this;
45450     }
45451 
setValueFloat(float valueFloat_)45452     PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT
45453     {
45454       valueFloat = valueFloat_;
45455       return *this;
45456     }
45457 
setValueBool(VULKAN_HPP_NAMESPACE::Bool32 valueBool_)45458     PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT
45459     {
45460       valueBool = valueBool_;
45461       return *this;
45462     }
45463 
setValueString(const char * valueString_)45464     PerformanceValueDataINTEL & setValueString( const char* valueString_ ) VULKAN_HPP_NOEXCEPT
45465     {
45466       valueString = valueString_;
45467       return *this;
45468     }
45469 
operator =(VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs)45470     VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45471     {
45472       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) );
45473       return *this;
45474     }
45475 
operator VkPerformanceValueDataINTEL const&() const45476     operator VkPerformanceValueDataINTEL const&() const
45477     {
45478       return *reinterpret_cast<const VkPerformanceValueDataINTEL*>(this);
45479     }
45480 
operator VkPerformanceValueDataINTEL&()45481     operator VkPerformanceValueDataINTEL &()
45482     {
45483       return *reinterpret_cast<VkPerformanceValueDataINTEL*>(this);
45484     }
45485 
45486 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
45487     uint32_t value32;
45488     uint64_t value64;
45489     float valueFloat;
45490     VULKAN_HPP_NAMESPACE::Bool32 valueBool;
45491     const char* valueString;
45492 #else
45493     uint32_t value32;
45494     uint64_t value64;
45495     float valueFloat;
45496     VkBool32 valueBool;
45497     const char* valueString;
45498 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
45499   };
45500 
45501   struct PerformanceValueINTEL
45502   {
45503 
45504 
45505 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45506     PerformanceValueINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32, VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {}) VULKAN_HPP_NOEXCEPT
45507     : type( type_ ), data( data_ )
45508     {}
45509 
45510     PerformanceValueINTEL( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45511 
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45512     PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45513     {
45514       *this = rhs;
45515     }
45516 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45517 
operator =VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45518     PerformanceValueINTEL & operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45519     {
45520       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL const *>( &rhs );
45521       return *this;
45522     }
45523 
operator =VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45524     PerformanceValueINTEL & operator=( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45525     {
45526       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceValueINTEL ) );
45527       return *this;
45528     }
45529 
setTypeVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45530     PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
45531     {
45532       type = type_;
45533       return *this;
45534     }
45535 
setDataVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45536     PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & data_ ) VULKAN_HPP_NOEXCEPT
45537     {
45538       data = data_;
45539       return *this;
45540     }
45541 
45542 
operator VkPerformanceValueINTEL const&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45543     operator VkPerformanceValueINTEL const&() const VULKAN_HPP_NOEXCEPT
45544     {
45545       return *reinterpret_cast<const VkPerformanceValueINTEL*>( this );
45546     }
45547 
operator VkPerformanceValueINTEL&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45548     operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT
45549     {
45550       return *reinterpret_cast<VkPerformanceValueINTEL*>( this );
45551     }
45552 
45553 
45554 
45555 
45556   public:
45557     VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32;
45558     VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {};
45559 
45560   };
45561   static_assert( sizeof( PerformanceValueINTEL ) == sizeof( VkPerformanceValueINTEL ), "struct and wrapper have different size!" );
45562   static_assert( std::is_standard_layout<PerformanceValueINTEL>::value, "struct wrapper is not a standard layout!" );
45563 
45564   struct PipelineExecutableInfoKHR
45565   {
45566     static const bool allowDuplicate = false;
45567     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInfoKHR;
45568 
45569 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45570     VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, uint32_t executableIndex_ = {}) VULKAN_HPP_NOEXCEPT
45571     : pipeline( pipeline_ ), executableIndex( executableIndex_ )
45572     {}
45573 
45574     VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45575 
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45576     PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45577     {
45578       *this = rhs;
45579     }
45580 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45581 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45582     PipelineExecutableInfoKHR & operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45583     {
45584       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR const *>( &rhs );
45585       return *this;
45586     }
45587 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45588     PipelineExecutableInfoKHR & operator=( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45589     {
45590       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutableInfoKHR ) );
45591       return *this;
45592     }
45593 
setPNextVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45594     PipelineExecutableInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45595     {
45596       pNext = pNext_;
45597       return *this;
45598     }
45599 
setPipelineVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45600     PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
45601     {
45602       pipeline = pipeline_;
45603       return *this;
45604     }
45605 
setExecutableIndexVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45606     PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT
45607     {
45608       executableIndex = executableIndex_;
45609       return *this;
45610     }
45611 
45612 
operator VkPipelineExecutableInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45613     operator VkPipelineExecutableInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45614     {
45615       return *reinterpret_cast<const VkPipelineExecutableInfoKHR*>( this );
45616     }
45617 
operator VkPipelineExecutableInfoKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45618     operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT
45619     {
45620       return *reinterpret_cast<VkPipelineExecutableInfoKHR*>( this );
45621     }
45622 
45623 
45624 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45625     auto operator<=>( PipelineExecutableInfoKHR const& ) const = default;
45626 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45627     bool operator==( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45628     {
45629       return ( sType == rhs.sType )
45630           && ( pNext == rhs.pNext )
45631           && ( pipeline == rhs.pipeline )
45632           && ( executableIndex == rhs.executableIndex );
45633     }
45634 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45635     bool operator!=( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45636     {
45637       return !operator==( rhs );
45638     }
45639 #endif
45640 
45641 
45642 
45643   public:
45644     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR;
45645     const void* pNext = {};
45646     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
45647     uint32_t executableIndex = {};
45648 
45649   };
45650   static_assert( sizeof( PipelineExecutableInfoKHR ) == sizeof( VkPipelineExecutableInfoKHR ), "struct and wrapper have different size!" );
45651   static_assert( std::is_standard_layout<PipelineExecutableInfoKHR>::value, "struct wrapper is not a standard layout!" );
45652 
45653   template <>
45654   struct CppType<StructureType, StructureType::ePipelineExecutableInfoKHR>
45655   {
45656     using Type = PipelineExecutableInfoKHR;
45657   };
45658 
45659   struct PipelineExecutableInternalRepresentationKHR
45660   {
45661     static const bool allowDuplicate = false;
45662     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInternalRepresentationKHR;
45663 
45664 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45665     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
45666     : name( name_ ), description( description_ ), isText( isText_ ), dataSize( dataSize_ ), pData( pData_ )
45667     {}
45668 
45669     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45670 
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45671     PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45672     {
45673       *this = rhs;
45674     }
45675 
45676 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
45677     template <typename T>
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45678     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_ )
45679     : name( name_ ), description( description_ ), isText( isText_ ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() )
45680     {}
45681 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
45682 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45683 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45684     PipelineExecutableInternalRepresentationKHR & operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45685     {
45686       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR const *>( &rhs );
45687       return *this;
45688     }
45689 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45690     PipelineExecutableInternalRepresentationKHR & operator=( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45691     {
45692       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutableInternalRepresentationKHR ) );
45693       return *this;
45694     }
45695 
45696 
operator VkPipelineExecutableInternalRepresentationKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45697     operator VkPipelineExecutableInternalRepresentationKHR const&() const VULKAN_HPP_NOEXCEPT
45698     {
45699       return *reinterpret_cast<const VkPipelineExecutableInternalRepresentationKHR*>( this );
45700     }
45701 
operator VkPipelineExecutableInternalRepresentationKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45702     operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT
45703     {
45704       return *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( this );
45705     }
45706 
45707 
45708 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45709     auto operator<=>( PipelineExecutableInternalRepresentationKHR const& ) const = default;
45710 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45711     bool operator==( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45712     {
45713       return ( sType == rhs.sType )
45714           && ( pNext == rhs.pNext )
45715           && ( name == rhs.name )
45716           && ( description == rhs.description )
45717           && ( isText == rhs.isText )
45718           && ( dataSize == rhs.dataSize )
45719           && ( pData == rhs.pData );
45720     }
45721 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45722     bool operator!=( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45723     {
45724       return !operator==( rhs );
45725     }
45726 #endif
45727 
45728 
45729 
45730   public:
45731     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR;
45732     void* pNext = {};
45733     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
45734     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
45735     VULKAN_HPP_NAMESPACE::Bool32 isText = {};
45736     size_t dataSize = {};
45737     void* pData = {};
45738 
45739   };
45740   static_assert( sizeof( PipelineExecutableInternalRepresentationKHR ) == sizeof( VkPipelineExecutableInternalRepresentationKHR ), "struct and wrapper have different size!" );
45741   static_assert( std::is_standard_layout<PipelineExecutableInternalRepresentationKHR>::value, "struct wrapper is not a standard layout!" );
45742 
45743   template <>
45744   struct CppType<StructureType, StructureType::ePipelineExecutableInternalRepresentationKHR>
45745   {
45746     using Type = PipelineExecutableInternalRepresentationKHR;
45747   };
45748 
45749   struct PipelineInfoKHR
45750   {
45751     static const bool allowDuplicate = false;
45752     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInfoKHR;
45753 
45754 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR45755     VULKAN_HPP_CONSTEXPR PipelineInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}) VULKAN_HPP_NOEXCEPT
45756     : pipeline( pipeline_ )
45757     {}
45758 
45759     VULKAN_HPP_CONSTEXPR PipelineInfoKHR( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45760 
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR45761     PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45762     {
45763       *this = rhs;
45764     }
45765 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45766 
operator =VULKAN_HPP_NAMESPACE::PipelineInfoKHR45767     PipelineInfoKHR & operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45768     {
45769       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInfoKHR const *>( &rhs );
45770       return *this;
45771     }
45772 
operator =VULKAN_HPP_NAMESPACE::PipelineInfoKHR45773     PipelineInfoKHR & operator=( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45774     {
45775       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineInfoKHR ) );
45776       return *this;
45777     }
45778 
setPNextVULKAN_HPP_NAMESPACE::PipelineInfoKHR45779     PipelineInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45780     {
45781       pNext = pNext_;
45782       return *this;
45783     }
45784 
setPipelineVULKAN_HPP_NAMESPACE::PipelineInfoKHR45785     PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
45786     {
45787       pipeline = pipeline_;
45788       return *this;
45789     }
45790 
45791 
operator VkPipelineInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineInfoKHR45792     operator VkPipelineInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45793     {
45794       return *reinterpret_cast<const VkPipelineInfoKHR*>( this );
45795     }
45796 
operator VkPipelineInfoKHR&VULKAN_HPP_NAMESPACE::PipelineInfoKHR45797     operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT
45798     {
45799       return *reinterpret_cast<VkPipelineInfoKHR*>( this );
45800     }
45801 
45802 
45803 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45804     auto operator<=>( PipelineInfoKHR const& ) const = default;
45805 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInfoKHR45806     bool operator==( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45807     {
45808       return ( sType == rhs.sType )
45809           && ( pNext == rhs.pNext )
45810           && ( pipeline == rhs.pipeline );
45811     }
45812 
operator !=VULKAN_HPP_NAMESPACE::PipelineInfoKHR45813     bool operator!=( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45814     {
45815       return !operator==( rhs );
45816     }
45817 #endif
45818 
45819 
45820 
45821   public:
45822     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR;
45823     const void* pNext = {};
45824     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
45825 
45826   };
45827   static_assert( sizeof( PipelineInfoKHR ) == sizeof( VkPipelineInfoKHR ), "struct and wrapper have different size!" );
45828   static_assert( std::is_standard_layout<PipelineInfoKHR>::value, "struct wrapper is not a standard layout!" );
45829 
45830   template <>
45831   struct CppType<StructureType, StructureType::ePipelineInfoKHR>
45832   {
45833     using Type = PipelineInfoKHR;
45834   };
45835 
45836   struct PipelineExecutablePropertiesKHR
45837   {
45838     static const bool allowDuplicate = false;
45839     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutablePropertiesKHR;
45840 
45841 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45842     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
45843     : stages( stages_ ), name( name_ ), description( description_ ), subgroupSize( subgroupSize_ )
45844     {}
45845 
45846     VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45847 
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45848     PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45849     {
45850       *this = rhs;
45851     }
45852 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45853 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45854     PipelineExecutablePropertiesKHR & operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45855     {
45856       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR const *>( &rhs );
45857       return *this;
45858     }
45859 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45860     PipelineExecutablePropertiesKHR & operator=( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45861     {
45862       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutablePropertiesKHR ) );
45863       return *this;
45864     }
45865 
45866 
operator VkPipelineExecutablePropertiesKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45867     operator VkPipelineExecutablePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
45868     {
45869       return *reinterpret_cast<const VkPipelineExecutablePropertiesKHR*>( this );
45870     }
45871 
operator VkPipelineExecutablePropertiesKHR&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45872     operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT
45873     {
45874       return *reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( this );
45875     }
45876 
45877 
45878 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45879     auto operator<=>( PipelineExecutablePropertiesKHR const& ) const = default;
45880 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45881     bool operator==( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45882     {
45883       return ( sType == rhs.sType )
45884           && ( pNext == rhs.pNext )
45885           && ( stages == rhs.stages )
45886           && ( name == rhs.name )
45887           && ( description == rhs.description )
45888           && ( subgroupSize == rhs.subgroupSize );
45889     }
45890 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45891     bool operator!=( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45892     {
45893       return !operator==( rhs );
45894     }
45895 #endif
45896 
45897 
45898 
45899   public:
45900     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR;
45901     void* pNext = {};
45902     VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {};
45903     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
45904     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
45905     uint32_t subgroupSize = {};
45906 
45907   };
45908   static_assert( sizeof( PipelineExecutablePropertiesKHR ) == sizeof( VkPipelineExecutablePropertiesKHR ), "struct and wrapper have different size!" );
45909   static_assert( std::is_standard_layout<PipelineExecutablePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
45910 
45911   template <>
45912   struct CppType<StructureType, StructureType::ePipelineExecutablePropertiesKHR>
45913   {
45914     using Type = PipelineExecutablePropertiesKHR;
45915   };
45916 
45917   union PipelineExecutableStatisticValueKHR
45918   {
PipelineExecutableStatisticValueKHR(VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs)45919     PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const& rhs ) VULKAN_HPP_NOEXCEPT
45920     {
45921       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) );
45922     }
45923 
PipelineExecutableStatisticValueKHR(VULKAN_HPP_NAMESPACE::Bool32 b32_={} )45924     PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::Bool32 b32_ = {} )
45925       : b32( b32_ )
45926     {}
45927 
PipelineExecutableStatisticValueKHR(int64_t i64_)45928     PipelineExecutableStatisticValueKHR( int64_t i64_ )
45929       : i64( i64_ )
45930     {}
45931 
PipelineExecutableStatisticValueKHR(uint64_t u64_)45932     PipelineExecutableStatisticValueKHR( uint64_t u64_ )
45933       : u64( u64_ )
45934     {}
45935 
PipelineExecutableStatisticValueKHR(double f64_)45936     PipelineExecutableStatisticValueKHR( double f64_ )
45937       : f64( f64_ )
45938     {}
45939 
setB32(VULKAN_HPP_NAMESPACE::Bool32 b32_)45940     PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT
45941     {
45942       b32 = b32_;
45943       return *this;
45944     }
45945 
setI64(int64_t i64_)45946     PipelineExecutableStatisticValueKHR & setI64( int64_t i64_ ) VULKAN_HPP_NOEXCEPT
45947     {
45948       i64 = i64_;
45949       return *this;
45950     }
45951 
setU64(uint64_t u64_)45952     PipelineExecutableStatisticValueKHR & setU64( uint64_t u64_ ) VULKAN_HPP_NOEXCEPT
45953     {
45954       u64 = u64_;
45955       return *this;
45956     }
45957 
setF64(double f64_)45958     PipelineExecutableStatisticValueKHR & setF64( double f64_ ) VULKAN_HPP_NOEXCEPT
45959     {
45960       f64 = f64_;
45961       return *this;
45962     }
45963 
operator =(VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs)45964     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45965     {
45966       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) );
45967       return *this;
45968     }
45969 
operator VkPipelineExecutableStatisticValueKHR const&() const45970     operator VkPipelineExecutableStatisticValueKHR const&() const
45971     {
45972       return *reinterpret_cast<const VkPipelineExecutableStatisticValueKHR*>(this);
45973     }
45974 
operator VkPipelineExecutableStatisticValueKHR&()45975     operator VkPipelineExecutableStatisticValueKHR &()
45976     {
45977       return *reinterpret_cast<VkPipelineExecutableStatisticValueKHR*>(this);
45978     }
45979 
45980 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
45981     VULKAN_HPP_NAMESPACE::Bool32 b32;
45982     int64_t i64;
45983     uint64_t u64;
45984     double f64;
45985 #else
45986     VkBool32 b32;
45987     int64_t i64;
45988     uint64_t u64;
45989     double f64;
45990 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
45991   };
45992 
45993   struct PipelineExecutableStatisticKHR
45994   {
45995     static const bool allowDuplicate = false;
45996     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableStatisticKHR;
45997 
45998 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR45999     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
46000     : name( name_ ), description( description_ ), format( format_ ), value( value_ )
46001     {}
46002 
46003     PipelineExecutableStatisticKHR( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46004 
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR46005     PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46006     {
46007       *this = rhs;
46008     }
46009 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46010 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR46011     PipelineExecutableStatisticKHR & operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46012     {
46013       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR const *>( &rhs );
46014       return *this;
46015     }
46016 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR46017     PipelineExecutableStatisticKHR & operator=( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46018     {
46019       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutableStatisticKHR ) );
46020       return *this;
46021     }
46022 
46023 
operator VkPipelineExecutableStatisticKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR46024     operator VkPipelineExecutableStatisticKHR const&() const VULKAN_HPP_NOEXCEPT
46025     {
46026       return *reinterpret_cast<const VkPipelineExecutableStatisticKHR*>( this );
46027     }
46028 
operator VkPipelineExecutableStatisticKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR46029     operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT
46030     {
46031       return *reinterpret_cast<VkPipelineExecutableStatisticKHR*>( this );
46032     }
46033 
46034 
46035 
46036 
46037   public:
46038     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR;
46039     void* pNext = {};
46040     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
46041     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
46042     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32;
46043     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {};
46044 
46045   };
46046   static_assert( sizeof( PipelineExecutableStatisticKHR ) == sizeof( VkPipelineExecutableStatisticKHR ), "struct and wrapper have different size!" );
46047   static_assert( std::is_standard_layout<PipelineExecutableStatisticKHR>::value, "struct wrapper is not a standard layout!" );
46048 
46049   template <>
46050   struct CppType<StructureType, StructureType::ePipelineExecutableStatisticKHR>
46051   {
46052     using Type = PipelineExecutableStatisticKHR;
46053   };
46054 
46055   struct RefreshCycleDurationGOOGLE
46056   {
46057 
46058 
46059 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46060     VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE(uint64_t refreshDuration_ = {}) VULKAN_HPP_NOEXCEPT
46061     : refreshDuration( refreshDuration_ )
46062     {}
46063 
46064     VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46065 
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46066     RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
46067     {
46068       *this = rhs;
46069     }
46070 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46071 
operator =VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46072     RefreshCycleDurationGOOGLE & operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
46073     {
46074       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE const *>( &rhs );
46075       return *this;
46076     }
46077 
operator =VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46078     RefreshCycleDurationGOOGLE & operator=( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
46079     {
46080       memcpy( static_cast<void *>( this ), &rhs, sizeof( RefreshCycleDurationGOOGLE ) );
46081       return *this;
46082     }
46083 
46084 
operator VkRefreshCycleDurationGOOGLE const&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46085     operator VkRefreshCycleDurationGOOGLE const&() const VULKAN_HPP_NOEXCEPT
46086     {
46087       return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE*>( this );
46088     }
46089 
operator VkRefreshCycleDurationGOOGLE&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46090     operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT
46091     {
46092       return *reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( this );
46093     }
46094 
46095 
46096 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46097     auto operator<=>( RefreshCycleDurationGOOGLE const& ) const = default;
46098 #else
operator ==VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46099     bool operator==( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
46100     {
46101       return ( refreshDuration == rhs.refreshDuration );
46102     }
46103 
operator !=VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46104     bool operator!=( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
46105     {
46106       return !operator==( rhs );
46107     }
46108 #endif
46109 
46110 
46111 
46112   public:
46113     uint64_t refreshDuration = {};
46114 
46115   };
46116   static_assert( sizeof( RefreshCycleDurationGOOGLE ) == sizeof( VkRefreshCycleDurationGOOGLE ), "struct and wrapper have different size!" );
46117   static_assert( std::is_standard_layout<RefreshCycleDurationGOOGLE>::value, "struct wrapper is not a standard layout!" );
46118 
46119   struct SemaphoreGetFdInfoKHR
46120   {
46121     static const bool allowDuplicate = false;
46122     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetFdInfoKHR;
46123 
46124 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46125     VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
46126     : semaphore( semaphore_ ), handleType( handleType_ )
46127     {}
46128 
46129     VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46130 
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46131     SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46132     {
46133       *this = rhs;
46134     }
46135 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46136 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46137     SemaphoreGetFdInfoKHR & operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46138     {
46139       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR const *>( &rhs );
46140       return *this;
46141     }
46142 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46143     SemaphoreGetFdInfoKHR & operator=( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46144     {
46145       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreGetFdInfoKHR ) );
46146       return *this;
46147     }
46148 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46149     SemaphoreGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46150     {
46151       pNext = pNext_;
46152       return *this;
46153     }
46154 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46155     SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46156     {
46157       semaphore = semaphore_;
46158       return *this;
46159     }
46160 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46161     SemaphoreGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46162     {
46163       handleType = handleType_;
46164       return *this;
46165     }
46166 
46167 
operator VkSemaphoreGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46168     operator VkSemaphoreGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46169     {
46170       return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( this );
46171     }
46172 
operator VkSemaphoreGetFdInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46173     operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
46174     {
46175       return *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>( this );
46176     }
46177 
46178 
46179 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46180     auto operator<=>( SemaphoreGetFdInfoKHR const& ) const = default;
46181 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46182     bool operator==( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46183     {
46184       return ( sType == rhs.sType )
46185           && ( pNext == rhs.pNext )
46186           && ( semaphore == rhs.semaphore )
46187           && ( handleType == rhs.handleType );
46188     }
46189 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46190     bool operator!=( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46191     {
46192       return !operator==( rhs );
46193     }
46194 #endif
46195 
46196 
46197 
46198   public:
46199     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR;
46200     const void* pNext = {};
46201     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46202     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46203 
46204   };
46205   static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), "struct and wrapper have different size!" );
46206   static_assert( std::is_standard_layout<SemaphoreGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
46207 
46208   template <>
46209   struct CppType<StructureType, StructureType::eSemaphoreGetFdInfoKHR>
46210   {
46211     using Type = SemaphoreGetFdInfoKHR;
46212   };
46213 
46214 #ifdef VK_USE_PLATFORM_WIN32_KHR
46215   struct SemaphoreGetWin32HandleInfoKHR
46216   {
46217     static const bool allowDuplicate = false;
46218     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
46219 
46220 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46221     VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
46222     : semaphore( semaphore_ ), handleType( handleType_ )
46223     {}
46224 
46225     VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46226 
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46227     SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46228     {
46229       *this = rhs;
46230     }
46231 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46232 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46233     SemaphoreGetWin32HandleInfoKHR & operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46234     {
46235       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR const *>( &rhs );
46236       return *this;
46237     }
46238 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46239     SemaphoreGetWin32HandleInfoKHR & operator=( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46240     {
46241       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreGetWin32HandleInfoKHR ) );
46242       return *this;
46243     }
46244 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46245     SemaphoreGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46246     {
46247       pNext = pNext_;
46248       return *this;
46249     }
46250 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46251     SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46252     {
46253       semaphore = semaphore_;
46254       return *this;
46255     }
46256 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46257     SemaphoreGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46258     {
46259       handleType = handleType_;
46260       return *this;
46261     }
46262 
46263 
operator VkSemaphoreGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46264     operator VkSemaphoreGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46265     {
46266       return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( this );
46267     }
46268 
operator VkSemaphoreGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46269     operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
46270     {
46271       return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>( this );
46272     }
46273 
46274 
46275 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46276     auto operator<=>( SemaphoreGetWin32HandleInfoKHR const& ) const = default;
46277 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46278     bool operator==( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46279     {
46280       return ( sType == rhs.sType )
46281           && ( pNext == rhs.pNext )
46282           && ( semaphore == rhs.semaphore )
46283           && ( handleType == rhs.handleType );
46284     }
46285 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46286     bool operator!=( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46287     {
46288       return !operator==( rhs );
46289     }
46290 #endif
46291 
46292 
46293 
46294   public:
46295     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
46296     const void* pNext = {};
46297     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46298     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46299 
46300   };
46301   static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46302   static_assert( std::is_standard_layout<SemaphoreGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46303 
46304   template <>
46305   struct CppType<StructureType, StructureType::eSemaphoreGetWin32HandleInfoKHR>
46306   {
46307     using Type = SemaphoreGetWin32HandleInfoKHR;
46308   };
46309 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46310 
46311   struct ImportFenceFdInfoKHR
46312   {
46313     static const bool allowDuplicate = false;
46314     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceFdInfoKHR;
46315 
46316 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46317     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
46318     : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ )
46319     {}
46320 
46321     VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46322 
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46323     ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46324     {
46325       *this = rhs;
46326     }
46327 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46328 
operator =VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46329     ImportFenceFdInfoKHR & operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46330     {
46331       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR const *>( &rhs );
46332       return *this;
46333     }
46334 
operator =VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46335     ImportFenceFdInfoKHR & operator=( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46336     {
46337       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportFenceFdInfoKHR ) );
46338       return *this;
46339     }
46340 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46341     ImportFenceFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46342     {
46343       pNext = pNext_;
46344       return *this;
46345     }
46346 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46347     ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
46348     {
46349       fence = fence_;
46350       return *this;
46351     }
46352 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46353     ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46354     {
46355       flags = flags_;
46356       return *this;
46357     }
46358 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46359     ImportFenceFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46360     {
46361       handleType = handleType_;
46362       return *this;
46363     }
46364 
setFdVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46365     ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
46366     {
46367       fd = fd_;
46368       return *this;
46369     }
46370 
46371 
operator VkImportFenceFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46372     operator VkImportFenceFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46373     {
46374       return *reinterpret_cast<const VkImportFenceFdInfoKHR*>( this );
46375     }
46376 
operator VkImportFenceFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46377     operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT
46378     {
46379       return *reinterpret_cast<VkImportFenceFdInfoKHR*>( this );
46380     }
46381 
46382 
46383 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46384     auto operator<=>( ImportFenceFdInfoKHR const& ) const = default;
46385 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46386     bool operator==( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46387     {
46388       return ( sType == rhs.sType )
46389           && ( pNext == rhs.pNext )
46390           && ( fence == rhs.fence )
46391           && ( flags == rhs.flags )
46392           && ( handleType == rhs.handleType )
46393           && ( fd == rhs.fd );
46394     }
46395 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46396     bool operator!=( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46397     {
46398       return !operator==( rhs );
46399     }
46400 #endif
46401 
46402 
46403 
46404   public:
46405     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR;
46406     const void* pNext = {};
46407     VULKAN_HPP_NAMESPACE::Fence fence = {};
46408     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
46409     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
46410     int fd = {};
46411 
46412   };
46413   static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), "struct and wrapper have different size!" );
46414   static_assert( std::is_standard_layout<ImportFenceFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
46415 
46416   template <>
46417   struct CppType<StructureType, StructureType::eImportFenceFdInfoKHR>
46418   {
46419     using Type = ImportFenceFdInfoKHR;
46420   };
46421 
46422 #ifdef VK_USE_PLATFORM_WIN32_KHR
46423   struct ImportFenceWin32HandleInfoKHR
46424   {
46425     static const bool allowDuplicate = false;
46426     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceWin32HandleInfoKHR;
46427 
46428 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46429     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
46430     : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ )
46431     {}
46432 
46433     VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46434 
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46435     ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46436     {
46437       *this = rhs;
46438     }
46439 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46440 
operator =VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46441     ImportFenceWin32HandleInfoKHR & operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46442     {
46443       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR const *>( &rhs );
46444       return *this;
46445     }
46446 
operator =VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46447     ImportFenceWin32HandleInfoKHR & operator=( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46448     {
46449       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportFenceWin32HandleInfoKHR ) );
46450       return *this;
46451     }
46452 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46453     ImportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46454     {
46455       pNext = pNext_;
46456       return *this;
46457     }
46458 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46459     ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
46460     {
46461       fence = fence_;
46462       return *this;
46463     }
46464 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46465     ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46466     {
46467       flags = flags_;
46468       return *this;
46469     }
46470 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46471     ImportFenceWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46472     {
46473       handleType = handleType_;
46474       return *this;
46475     }
46476 
setHandleVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46477     ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
46478     {
46479       handle = handle_;
46480       return *this;
46481     }
46482 
setNameVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46483     ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
46484     {
46485       name = name_;
46486       return *this;
46487     }
46488 
46489 
operator VkImportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46490     operator VkImportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46491     {
46492       return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( this );
46493     }
46494 
operator VkImportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46495     operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
46496     {
46497       return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>( this );
46498     }
46499 
46500 
46501 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46502     auto operator<=>( ImportFenceWin32HandleInfoKHR const& ) const = default;
46503 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46504     bool operator==( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46505     {
46506       return ( sType == rhs.sType )
46507           && ( pNext == rhs.pNext )
46508           && ( fence == rhs.fence )
46509           && ( flags == rhs.flags )
46510           && ( handleType == rhs.handleType )
46511           && ( handle == rhs.handle )
46512           && ( name == rhs.name );
46513     }
46514 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46515     bool operator!=( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46516     {
46517       return !operator==( rhs );
46518     }
46519 #endif
46520 
46521 
46522 
46523   public:
46524     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR;
46525     const void* pNext = {};
46526     VULKAN_HPP_NAMESPACE::Fence fence = {};
46527     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
46528     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
46529     HANDLE handle = {};
46530     LPCWSTR name = {};
46531 
46532   };
46533   static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46534   static_assert( std::is_standard_layout<ImportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46535 
46536   template <>
46537   struct CppType<StructureType, StructureType::eImportFenceWin32HandleInfoKHR>
46538   {
46539     using Type = ImportFenceWin32HandleInfoKHR;
46540   };
46541 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46542 
46543   struct ImportSemaphoreFdInfoKHR
46544   {
46545     static const bool allowDuplicate = false;
46546     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreFdInfoKHR;
46547 
46548 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46549     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
46550     : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ )
46551     {}
46552 
46553     VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46554 
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46555     ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46556     {
46557       *this = rhs;
46558     }
46559 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46560 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46561     ImportSemaphoreFdInfoKHR & operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46562     {
46563       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR const *>( &rhs );
46564       return *this;
46565     }
46566 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46567     ImportSemaphoreFdInfoKHR & operator=( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46568     {
46569       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportSemaphoreFdInfoKHR ) );
46570       return *this;
46571     }
46572 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46573     ImportSemaphoreFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46574     {
46575       pNext = pNext_;
46576       return *this;
46577     }
46578 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46579     ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46580     {
46581       semaphore = semaphore_;
46582       return *this;
46583     }
46584 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46585     ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46586     {
46587       flags = flags_;
46588       return *this;
46589     }
46590 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46591     ImportSemaphoreFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46592     {
46593       handleType = handleType_;
46594       return *this;
46595     }
46596 
setFdVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46597     ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
46598     {
46599       fd = fd_;
46600       return *this;
46601     }
46602 
46603 
operator VkImportSemaphoreFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46604     operator VkImportSemaphoreFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46605     {
46606       return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( this );
46607     }
46608 
operator VkImportSemaphoreFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46609     operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT
46610     {
46611       return *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>( this );
46612     }
46613 
46614 
46615 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46616     auto operator<=>( ImportSemaphoreFdInfoKHR const& ) const = default;
46617 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46618     bool operator==( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46619     {
46620       return ( sType == rhs.sType )
46621           && ( pNext == rhs.pNext )
46622           && ( semaphore == rhs.semaphore )
46623           && ( flags == rhs.flags )
46624           && ( handleType == rhs.handleType )
46625           && ( fd == rhs.fd );
46626     }
46627 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46628     bool operator!=( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46629     {
46630       return !operator==( rhs );
46631     }
46632 #endif
46633 
46634 
46635 
46636   public:
46637     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR;
46638     const void* pNext = {};
46639     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46640     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
46641     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46642     int fd = {};
46643 
46644   };
46645   static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), "struct and wrapper have different size!" );
46646   static_assert( std::is_standard_layout<ImportSemaphoreFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
46647 
46648   template <>
46649   struct CppType<StructureType, StructureType::eImportSemaphoreFdInfoKHR>
46650   {
46651     using Type = ImportSemaphoreFdInfoKHR;
46652   };
46653 
46654 #ifdef VK_USE_PLATFORM_WIN32_KHR
46655   struct ImportSemaphoreWin32HandleInfoKHR
46656   {
46657     static const bool allowDuplicate = false;
46658     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
46659 
46660 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46661     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
46662     : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ )
46663     {}
46664 
46665     VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46666 
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46667     ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46668     {
46669       *this = rhs;
46670     }
46671 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46672 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46673     ImportSemaphoreWin32HandleInfoKHR & operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46674     {
46675       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR const *>( &rhs );
46676       return *this;
46677     }
46678 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46679     ImportSemaphoreWin32HandleInfoKHR & operator=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46680     {
46681       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportSemaphoreWin32HandleInfoKHR ) );
46682       return *this;
46683     }
46684 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46685     ImportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46686     {
46687       pNext = pNext_;
46688       return *this;
46689     }
46690 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46691     ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46692     {
46693       semaphore = semaphore_;
46694       return *this;
46695     }
46696 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46697     ImportSemaphoreWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46698     {
46699       flags = flags_;
46700       return *this;
46701     }
46702 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46703     ImportSemaphoreWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46704     {
46705       handleType = handleType_;
46706       return *this;
46707     }
46708 
setHandleVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46709     ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
46710     {
46711       handle = handle_;
46712       return *this;
46713     }
46714 
setNameVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46715     ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
46716     {
46717       name = name_;
46718       return *this;
46719     }
46720 
46721 
operator VkImportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46722     operator VkImportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46723     {
46724       return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( this );
46725     }
46726 
operator VkImportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46727     operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
46728     {
46729       return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>( this );
46730     }
46731 
46732 
46733 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46734     auto operator<=>( ImportSemaphoreWin32HandleInfoKHR const& ) const = default;
46735 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46736     bool operator==( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46737     {
46738       return ( sType == rhs.sType )
46739           && ( pNext == rhs.pNext )
46740           && ( semaphore == rhs.semaphore )
46741           && ( flags == rhs.flags )
46742           && ( handleType == rhs.handleType )
46743           && ( handle == rhs.handle )
46744           && ( name == rhs.name );
46745     }
46746 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46747     bool operator!=( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46748     {
46749       return !operator==( rhs );
46750     }
46751 #endif
46752 
46753 
46754 
46755   public:
46756     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
46757     const void* pNext = {};
46758     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46759     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
46760     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46761     HANDLE handle = {};
46762     LPCWSTR name = {};
46763 
46764   };
46765   static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46766   static_assert( std::is_standard_layout<ImportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46767 
46768   template <>
46769   struct CppType<StructureType, StructureType::eImportSemaphoreWin32HandleInfoKHR>
46770   {
46771     using Type = ImportSemaphoreWin32HandleInfoKHR;
46772   };
46773 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46774 
46775   struct InitializePerformanceApiInfoINTEL
46776   {
46777     static const bool allowDuplicate = false;
46778     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInitializePerformanceApiInfoINTEL;
46779 
46780 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46781     VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL(void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
46782     : pUserData( pUserData_ )
46783     {}
46784 
46785     VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46786 
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46787     InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46788     {
46789       *this = rhs;
46790     }
46791 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46792 
operator =VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46793     InitializePerformanceApiInfoINTEL & operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46794     {
46795       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const *>( &rhs );
46796       return *this;
46797     }
46798 
operator =VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46799     InitializePerformanceApiInfoINTEL & operator=( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46800     {
46801       memcpy( static_cast<void *>( this ), &rhs, sizeof( InitializePerformanceApiInfoINTEL ) );
46802       return *this;
46803     }
46804 
setPNextVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46805     InitializePerformanceApiInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46806     {
46807       pNext = pNext_;
46808       return *this;
46809     }
46810 
setPUserDataVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46811     InitializePerformanceApiInfoINTEL & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
46812     {
46813       pUserData = pUserData_;
46814       return *this;
46815     }
46816 
46817 
operator VkInitializePerformanceApiInfoINTEL const&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46818     operator VkInitializePerformanceApiInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
46819     {
46820       return *reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( this );
46821     }
46822 
operator VkInitializePerformanceApiInfoINTEL&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46823     operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT
46824     {
46825       return *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>( this );
46826     }
46827 
46828 
46829 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46830     auto operator<=>( InitializePerformanceApiInfoINTEL const& ) const = default;
46831 #else
operator ==VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46832     bool operator==( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
46833     {
46834       return ( sType == rhs.sType )
46835           && ( pNext == rhs.pNext )
46836           && ( pUserData == rhs.pUserData );
46837     }
46838 
operator !=VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46839     bool operator!=( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
46840     {
46841       return !operator==( rhs );
46842     }
46843 #endif
46844 
46845 
46846 
46847   public:
46848     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL;
46849     const void* pNext = {};
46850     void* pUserData = {};
46851 
46852   };
46853   static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), "struct and wrapper have different size!" );
46854   static_assert( std::is_standard_layout<InitializePerformanceApiInfoINTEL>::value, "struct wrapper is not a standard layout!" );
46855 
46856   template <>
46857   struct CppType<StructureType, StructureType::eInitializePerformanceApiInfoINTEL>
46858   {
46859     using Type = InitializePerformanceApiInfoINTEL;
46860   };
46861 
46862   struct DisplayEventInfoEXT
46863   {
46864     static const bool allowDuplicate = false;
46865     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayEventInfoEXT;
46866 
46867 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46868     VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT(VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut) VULKAN_HPP_NOEXCEPT
46869     : displayEvent( displayEvent_ )
46870     {}
46871 
46872     VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46873 
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46874     DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46875     {
46876       *this = rhs;
46877     }
46878 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46879 
operator =VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46880     DisplayEventInfoEXT & operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46881     {
46882       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const *>( &rhs );
46883       return *this;
46884     }
46885 
operator =VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46886     DisplayEventInfoEXT & operator=( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46887     {
46888       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayEventInfoEXT ) );
46889       return *this;
46890     }
46891 
setPNextVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46892     DisplayEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46893     {
46894       pNext = pNext_;
46895       return *this;
46896     }
46897 
setDisplayEventVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46898     DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT
46899     {
46900       displayEvent = displayEvent_;
46901       return *this;
46902     }
46903 
46904 
operator VkDisplayEventInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46905     operator VkDisplayEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT
46906     {
46907       return *reinterpret_cast<const VkDisplayEventInfoEXT*>( this );
46908     }
46909 
operator VkDisplayEventInfoEXT&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46910     operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT
46911     {
46912       return *reinterpret_cast<VkDisplayEventInfoEXT*>( this );
46913     }
46914 
46915 
46916 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46917     auto operator<=>( DisplayEventInfoEXT const& ) const = default;
46918 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46919     bool operator==( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
46920     {
46921       return ( sType == rhs.sType )
46922           && ( pNext == rhs.pNext )
46923           && ( displayEvent == rhs.displayEvent );
46924     }
46925 
operator !=VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46926     bool operator!=( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
46927     {
46928       return !operator==( rhs );
46929     }
46930 #endif
46931 
46932 
46933 
46934   public:
46935     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT;
46936     const void* pNext = {};
46937     VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut;
46938 
46939   };
46940   static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), "struct and wrapper have different size!" );
46941   static_assert( std::is_standard_layout<DisplayEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
46942 
46943   template <>
46944   struct CppType<StructureType, StructureType::eDisplayEventInfoEXT>
46945   {
46946     using Type = DisplayEventInfoEXT;
46947   };
46948 
46949   struct XYColorEXT
46950   {
46951 
46952 
46953 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT46954     VULKAN_HPP_CONSTEXPR XYColorEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT
46955     : x( x_ ), y( y_ )
46956     {}
46957 
46958     VULKAN_HPP_CONSTEXPR XYColorEXT( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46959 
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT46960     XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46961     {
46962       *this = rhs;
46963     }
46964 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46965 
operator =VULKAN_HPP_NAMESPACE::XYColorEXT46966     XYColorEXT & operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46967     {
46968       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XYColorEXT const *>( &rhs );
46969       return *this;
46970     }
46971 
operator =VULKAN_HPP_NAMESPACE::XYColorEXT46972     XYColorEXT & operator=( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46973     {
46974       memcpy( static_cast<void *>( this ), &rhs, sizeof( XYColorEXT ) );
46975       return *this;
46976     }
46977 
setXVULKAN_HPP_NAMESPACE::XYColorEXT46978     XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
46979     {
46980       x = x_;
46981       return *this;
46982     }
46983 
setYVULKAN_HPP_NAMESPACE::XYColorEXT46984     XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
46985     {
46986       y = y_;
46987       return *this;
46988     }
46989 
46990 
operator VkXYColorEXT const&VULKAN_HPP_NAMESPACE::XYColorEXT46991     operator VkXYColorEXT const&() const VULKAN_HPP_NOEXCEPT
46992     {
46993       return *reinterpret_cast<const VkXYColorEXT*>( this );
46994     }
46995 
operator VkXYColorEXT&VULKAN_HPP_NAMESPACE::XYColorEXT46996     operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT
46997     {
46998       return *reinterpret_cast<VkXYColorEXT*>( this );
46999     }
47000 
47001 
47002 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47003     auto operator<=>( XYColorEXT const& ) const = default;
47004 #else
operator ==VULKAN_HPP_NAMESPACE::XYColorEXT47005     bool operator==( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47006     {
47007       return ( x == rhs.x )
47008           && ( y == rhs.y );
47009     }
47010 
operator !=VULKAN_HPP_NAMESPACE::XYColorEXT47011     bool operator!=( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47012     {
47013       return !operator==( rhs );
47014     }
47015 #endif
47016 
47017 
47018 
47019   public:
47020     float x = {};
47021     float y = {};
47022 
47023   };
47024   static_assert( sizeof( XYColorEXT ) == sizeof( VkXYColorEXT ), "struct and wrapper have different size!" );
47025   static_assert( std::is_standard_layout<XYColorEXT>::value, "struct wrapper is not a standard layout!" );
47026 
47027   struct HdrMetadataEXT
47028   {
47029     static const bool allowDuplicate = false;
47030     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHdrMetadataEXT;
47031 
47032 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT47033     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
47034     : displayPrimaryRed( displayPrimaryRed_ ), displayPrimaryGreen( displayPrimaryGreen_ ), displayPrimaryBlue( displayPrimaryBlue_ ), whitePoint( whitePoint_ ), maxLuminance( maxLuminance_ ), minLuminance( minLuminance_ ), maxContentLightLevel( maxContentLightLevel_ ), maxFrameAverageLightLevel( maxFrameAverageLightLevel_ )
47035     {}
47036 
47037     VULKAN_HPP_CONSTEXPR HdrMetadataEXT( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47038 
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT47039     HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47040     {
47041       *this = rhs;
47042     }
47043 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47044 
operator =VULKAN_HPP_NAMESPACE::HdrMetadataEXT47045     HdrMetadataEXT & operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47046     {
47047       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HdrMetadataEXT const *>( &rhs );
47048       return *this;
47049     }
47050 
operator =VULKAN_HPP_NAMESPACE::HdrMetadataEXT47051     HdrMetadataEXT & operator=( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47052     {
47053       memcpy( static_cast<void *>( this ), &rhs, sizeof( HdrMetadataEXT ) );
47054       return *this;
47055     }
47056 
setPNextVULKAN_HPP_NAMESPACE::HdrMetadataEXT47057     HdrMetadataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47058     {
47059       pNext = pNext_;
47060       return *this;
47061     }
47062 
setDisplayPrimaryRedVULKAN_HPP_NAMESPACE::HdrMetadataEXT47063     HdrMetadataEXT & setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT
47064     {
47065       displayPrimaryRed = displayPrimaryRed_;
47066       return *this;
47067     }
47068 
setDisplayPrimaryGreenVULKAN_HPP_NAMESPACE::HdrMetadataEXT47069     HdrMetadataEXT & setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT
47070     {
47071       displayPrimaryGreen = displayPrimaryGreen_;
47072       return *this;
47073     }
47074 
setDisplayPrimaryBlueVULKAN_HPP_NAMESPACE::HdrMetadataEXT47075     HdrMetadataEXT & setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT
47076     {
47077       displayPrimaryBlue = displayPrimaryBlue_;
47078       return *this;
47079     }
47080 
setWhitePointVULKAN_HPP_NAMESPACE::HdrMetadataEXT47081     HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT const & whitePoint_ ) VULKAN_HPP_NOEXCEPT
47082     {
47083       whitePoint = whitePoint_;
47084       return *this;
47085     }
47086 
setMaxLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT47087     HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT
47088     {
47089       maxLuminance = maxLuminance_;
47090       return *this;
47091     }
47092 
setMinLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT47093     HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT
47094     {
47095       minLuminance = minLuminance_;
47096       return *this;
47097     }
47098 
setMaxContentLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT47099     HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT
47100     {
47101       maxContentLightLevel = maxContentLightLevel_;
47102       return *this;
47103     }
47104 
setMaxFrameAverageLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT47105     HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT
47106     {
47107       maxFrameAverageLightLevel = maxFrameAverageLightLevel_;
47108       return *this;
47109     }
47110 
47111 
operator VkHdrMetadataEXT const&VULKAN_HPP_NAMESPACE::HdrMetadataEXT47112     operator VkHdrMetadataEXT const&() const VULKAN_HPP_NOEXCEPT
47113     {
47114       return *reinterpret_cast<const VkHdrMetadataEXT*>( this );
47115     }
47116 
operator VkHdrMetadataEXT&VULKAN_HPP_NAMESPACE::HdrMetadataEXT47117     operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT
47118     {
47119       return *reinterpret_cast<VkHdrMetadataEXT*>( this );
47120     }
47121 
47122 
47123 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47124     auto operator<=>( HdrMetadataEXT const& ) const = default;
47125 #else
operator ==VULKAN_HPP_NAMESPACE::HdrMetadataEXT47126     bool operator==( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47127     {
47128       return ( sType == rhs.sType )
47129           && ( pNext == rhs.pNext )
47130           && ( displayPrimaryRed == rhs.displayPrimaryRed )
47131           && ( displayPrimaryGreen == rhs.displayPrimaryGreen )
47132           && ( displayPrimaryBlue == rhs.displayPrimaryBlue )
47133           && ( whitePoint == rhs.whitePoint )
47134           && ( maxLuminance == rhs.maxLuminance )
47135           && ( minLuminance == rhs.minLuminance )
47136           && ( maxContentLightLevel == rhs.maxContentLightLevel )
47137           && ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel );
47138     }
47139 
operator !=VULKAN_HPP_NAMESPACE::HdrMetadataEXT47140     bool operator!=( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47141     {
47142       return !operator==( rhs );
47143     }
47144 #endif
47145 
47146 
47147 
47148   public:
47149     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT;
47150     const void* pNext = {};
47151     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {};
47152     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {};
47153     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {};
47154     VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {};
47155     float maxLuminance = {};
47156     float minLuminance = {};
47157     float maxContentLightLevel = {};
47158     float maxFrameAverageLightLevel = {};
47159 
47160   };
47161   static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "struct and wrapper have different size!" );
47162   static_assert( std::is_standard_layout<HdrMetadataEXT>::value, "struct wrapper is not a standard layout!" );
47163 
47164   template <>
47165   struct CppType<StructureType, StructureType::eHdrMetadataEXT>
47166   {
47167     using Type = HdrMetadataEXT;
47168   };
47169 
47170   struct SemaphoreSignalInfo
47171   {
47172     static const bool allowDuplicate = false;
47173     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSignalInfo;
47174 
47175 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47176     VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}) VULKAN_HPP_NOEXCEPT
47177     : semaphore( semaphore_ ), value( value_ )
47178     {}
47179 
47180     VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47181 
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47182     SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47183     {
47184       *this = rhs;
47185     }
47186 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47187 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47188     SemaphoreSignalInfo & operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47189     {
47190       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo const *>( &rhs );
47191       return *this;
47192     }
47193 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47194     SemaphoreSignalInfo & operator=( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47195     {
47196       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreSignalInfo ) );
47197       return *this;
47198     }
47199 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47200     SemaphoreSignalInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47201     {
47202       pNext = pNext_;
47203       return *this;
47204     }
47205 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47206     SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
47207     {
47208       semaphore = semaphore_;
47209       return *this;
47210     }
47211 
setValueVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47212     SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
47213     {
47214       value = value_;
47215       return *this;
47216     }
47217 
47218 
operator VkSemaphoreSignalInfo const&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47219     operator VkSemaphoreSignalInfo const&() const VULKAN_HPP_NOEXCEPT
47220     {
47221       return *reinterpret_cast<const VkSemaphoreSignalInfo*>( this );
47222     }
47223 
operator VkSemaphoreSignalInfo&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47224     operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT
47225     {
47226       return *reinterpret_cast<VkSemaphoreSignalInfo*>( this );
47227     }
47228 
47229 
47230 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47231     auto operator<=>( SemaphoreSignalInfo const& ) const = default;
47232 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47233     bool operator==( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47234     {
47235       return ( sType == rhs.sType )
47236           && ( pNext == rhs.pNext )
47237           && ( semaphore == rhs.semaphore )
47238           && ( value == rhs.value );
47239     }
47240 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47241     bool operator!=( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47242     {
47243       return !operator==( rhs );
47244     }
47245 #endif
47246 
47247 
47248 
47249   public:
47250     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo;
47251     const void* pNext = {};
47252     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
47253     uint64_t value = {};
47254 
47255   };
47256   static_assert( sizeof( SemaphoreSignalInfo ) == sizeof( VkSemaphoreSignalInfo ), "struct and wrapper have different size!" );
47257   static_assert( std::is_standard_layout<SemaphoreSignalInfo>::value, "struct wrapper is not a standard layout!" );
47258 
47259   template <>
47260   struct CppType<StructureType, StructureType::eSemaphoreSignalInfo>
47261   {
47262     using Type = SemaphoreSignalInfo;
47263   };
47264   using SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
47265 
47266   struct SemaphoreWaitInfo
47267   {
47268     static const bool allowDuplicate = false;
47269     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreWaitInfo;
47270 
47271 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47272     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
47273     : flags( flags_ ), semaphoreCount( semaphoreCount_ ), pSemaphores( pSemaphores_ ), pValues( pValues_ )
47274     {}
47275 
47276     VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47277 
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47278     SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47279     {
47280       *this = rhs;
47281     }
47282 
47283 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47284     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_ = {} )
47285     : flags( flags_ ), semaphoreCount( static_cast<uint32_t>( semaphores_.size() ) ), pSemaphores( semaphores_.data() ), pValues( values_.data() )
47286     {
47287 #ifdef VULKAN_HPP_NO_EXCEPTIONS
47288       VULKAN_HPP_ASSERT( semaphores_.size() == values_.size() );
47289 #else
47290       if ( semaphores_.size() != values_.size() )
47291       {
47292         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SemaphoreWaitInfo::SemaphoreWaitInfo: semaphores_.size() != values_.size()" );
47293       }
47294 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
47295     }
47296 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
47297 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47298 
operator =VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47299     SemaphoreWaitInfo & operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47300     {
47301       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo const *>( &rhs );
47302       return *this;
47303     }
47304 
operator =VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47305     SemaphoreWaitInfo & operator=( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47306     {
47307       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreWaitInfo ) );
47308       return *this;
47309     }
47310 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47311     SemaphoreWaitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47312     {
47313       pNext = pNext_;
47314       return *this;
47315     }
47316 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47317     SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT
47318     {
47319       flags = flags_;
47320       return *this;
47321     }
47322 
setSemaphoreCountVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47323     SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT
47324     {
47325       semaphoreCount = semaphoreCount_;
47326       return *this;
47327     }
47328 
setPSemaphoresVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47329     SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ ) VULKAN_HPP_NOEXCEPT
47330     {
47331       pSemaphores = pSemaphores_;
47332       return *this;
47333     }
47334 
47335 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSemaphoresVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47336     SemaphoreWaitInfo & setSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_ ) VULKAN_HPP_NOEXCEPT
47337     {
47338       semaphoreCount = static_cast<uint32_t>( semaphores_.size() );
47339       pSemaphores = semaphores_.data();
47340       return *this;
47341     }
47342 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
47343 
setPValuesVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47344     SemaphoreWaitInfo & setPValues( const uint64_t* pValues_ ) VULKAN_HPP_NOEXCEPT
47345     {
47346       pValues = pValues_;
47347       return *this;
47348     }
47349 
47350 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setValuesVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47351     SemaphoreWaitInfo & setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ ) VULKAN_HPP_NOEXCEPT
47352     {
47353       semaphoreCount = static_cast<uint32_t>( values_.size() );
47354       pValues = values_.data();
47355       return *this;
47356     }
47357 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
47358 
47359 
operator VkSemaphoreWaitInfo const&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47360     operator VkSemaphoreWaitInfo const&() const VULKAN_HPP_NOEXCEPT
47361     {
47362       return *reinterpret_cast<const VkSemaphoreWaitInfo*>( this );
47363     }
47364 
operator VkSemaphoreWaitInfo&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47365     operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT
47366     {
47367       return *reinterpret_cast<VkSemaphoreWaitInfo*>( this );
47368     }
47369 
47370 
47371 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47372     auto operator<=>( SemaphoreWaitInfo const& ) const = default;
47373 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47374     bool operator==( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47375     {
47376       return ( sType == rhs.sType )
47377           && ( pNext == rhs.pNext )
47378           && ( flags == rhs.flags )
47379           && ( semaphoreCount == rhs.semaphoreCount )
47380           && ( pSemaphores == rhs.pSemaphores )
47381           && ( pValues == rhs.pValues );
47382     }
47383 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47384     bool operator!=( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47385     {
47386       return !operator==( rhs );
47387     }
47388 #endif
47389 
47390 
47391 
47392   public:
47393     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo;
47394     const void* pNext = {};
47395     VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {};
47396     uint32_t semaphoreCount = {};
47397     const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores = {};
47398     const uint64_t* pValues = {};
47399 
47400   };
47401   static_assert( sizeof( SemaphoreWaitInfo ) == sizeof( VkSemaphoreWaitInfo ), "struct and wrapper have different size!" );
47402   static_assert( std::is_standard_layout<SemaphoreWaitInfo>::value, "struct wrapper is not a standard layout!" );
47403 
47404   template <>
47405   struct CppType<StructureType, StructureType::eSemaphoreWaitInfo>
47406   {
47407     using Type = SemaphoreWaitInfo;
47408   };
47409   using SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
47410 
47411 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47412   class Device;
47413   template <typename Dispatch> class UniqueHandleTraits<AccelerationStructureKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47414   using UniqueAccelerationStructureKHR = UniqueHandle<AccelerationStructureKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47415   using UniqueAccelerationStructureNV = UniqueHandle<AccelerationStructureKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47416   template <typename Dispatch> class UniqueHandleTraits<Buffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47417   using UniqueBuffer = UniqueHandle<Buffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47418   template <typename Dispatch> class UniqueHandleTraits<BufferView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47419   using UniqueBufferView = UniqueHandle<BufferView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47420   template <typename Dispatch> class UniqueHandleTraits<CommandBuffer, Dispatch> { public: using deleter = PoolFree<Device, CommandPool, Dispatch>; };
47421   using UniqueCommandBuffer = UniqueHandle<CommandBuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47422   template <typename Dispatch> class UniqueHandleTraits<CommandPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47423   using UniqueCommandPool = UniqueHandle<CommandPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47424 #ifdef VK_ENABLE_BETA_EXTENSIONS
47425   template <typename Dispatch> class UniqueHandleTraits<DeferredOperationKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47426   using UniqueDeferredOperationKHR = UniqueHandle<DeferredOperationKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47427 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47428   template <typename Dispatch> class UniqueHandleTraits<DescriptorPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47429   using UniqueDescriptorPool = UniqueHandle<DescriptorPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47430   template <typename Dispatch> class UniqueHandleTraits<DescriptorSet, Dispatch> { public: using deleter = PoolFree<Device, DescriptorPool, Dispatch>; };
47431   using UniqueDescriptorSet = UniqueHandle<DescriptorSet, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47432   template <typename Dispatch> class UniqueHandleTraits<DescriptorSetLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47433   using UniqueDescriptorSetLayout = UniqueHandle<DescriptorSetLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47434   template <typename Dispatch> class UniqueHandleTraits<DescriptorUpdateTemplate, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47435   using UniqueDescriptorUpdateTemplate = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47436   using UniqueDescriptorUpdateTemplateKHR = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47437   template <typename Dispatch> class UniqueHandleTraits<DeviceMemory, Dispatch> { public: using deleter = ObjectFree<Device, Dispatch>; };
47438   using UniqueDeviceMemory = UniqueHandle<DeviceMemory, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47439   template <typename Dispatch> class UniqueHandleTraits<Event, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47440   using UniqueEvent = UniqueHandle<Event, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47441   template <typename Dispatch> class UniqueHandleTraits<Fence, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47442   using UniqueFence = UniqueHandle<Fence, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47443   template <typename Dispatch> class UniqueHandleTraits<Framebuffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47444   using UniqueFramebuffer = UniqueHandle<Framebuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47445   template <typename Dispatch> class UniqueHandleTraits<Image, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47446   using UniqueImage = UniqueHandle<Image, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47447   template <typename Dispatch> class UniqueHandleTraits<ImageView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47448   using UniqueImageView = UniqueHandle<ImageView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47449   template <typename Dispatch> class UniqueHandleTraits<IndirectCommandsLayoutNV, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47450   using UniqueIndirectCommandsLayoutNV = UniqueHandle<IndirectCommandsLayoutNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47451   template <typename Dispatch> class UniqueHandleTraits<Pipeline, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47452   using UniquePipeline = UniqueHandle<Pipeline, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47453   template <typename Dispatch> class UniqueHandleTraits<PipelineCache, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47454   using UniquePipelineCache = UniqueHandle<PipelineCache, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47455   template <typename Dispatch> class UniqueHandleTraits<PipelineLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47456   using UniquePipelineLayout = UniqueHandle<PipelineLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47457   template <typename Dispatch> class UniqueHandleTraits<PrivateDataSlotEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47458   using UniquePrivateDataSlotEXT = UniqueHandle<PrivateDataSlotEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47459   template <typename Dispatch> class UniqueHandleTraits<QueryPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47460   using UniqueQueryPool = UniqueHandle<QueryPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47461   template <typename Dispatch> class UniqueHandleTraits<RenderPass, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47462   using UniqueRenderPass = UniqueHandle<RenderPass, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47463   template <typename Dispatch> class UniqueHandleTraits<Sampler, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47464   using UniqueSampler = UniqueHandle<Sampler, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47465   template <typename Dispatch> class UniqueHandleTraits<SamplerYcbcrConversion, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47466   using UniqueSamplerYcbcrConversion = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47467   using UniqueSamplerYcbcrConversionKHR = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47468   template <typename Dispatch> class UniqueHandleTraits<Semaphore, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47469   using UniqueSemaphore = UniqueHandle<Semaphore, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47470   template <typename Dispatch> class UniqueHandleTraits<ShaderModule, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47471   using UniqueShaderModule = UniqueHandle<ShaderModule, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47472   template <typename Dispatch> class UniqueHandleTraits<SwapchainKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47473   using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47474   template <typename Dispatch> class UniqueHandleTraits<ValidationCacheEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47475   using UniqueValidationCacheEXT = UniqueHandle<ValidationCacheEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47476 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47477 
47478   class Device
47479   {
47480   public:
47481     using CType = VkDevice;
47482 
47483     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDevice;
47484     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice;
47485 
47486   public:
Device()47487     VULKAN_HPP_CONSTEXPR Device() VULKAN_HPP_NOEXCEPT
47488       : m_device(VK_NULL_HANDLE)
47489     {}
47490 
Device(std::nullptr_t)47491     VULKAN_HPP_CONSTEXPR Device( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
47492       : m_device(VK_NULL_HANDLE)
47493     {}
47494 
Device(VkDevice device)47495     VULKAN_HPP_TYPESAFE_EXPLICIT Device( VkDevice device ) VULKAN_HPP_NOEXCEPT
47496       : m_device( device )
47497     {}
47498 
47499 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDevice device)47500     Device & operator=(VkDevice device) VULKAN_HPP_NOEXCEPT
47501     {
47502       m_device = device;
47503       return *this;
47504     }
47505 #endif
47506 
operator =(std::nullptr_t)47507     Device & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
47508     {
47509       m_device = VK_NULL_HANDLE;
47510       return *this;
47511     }
47512 
47513 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47514     auto operator<=>( Device const& ) const = default;
47515 #else
operator ==(Device const & rhs) const47516     bool operator==( Device const & rhs ) const VULKAN_HPP_NOEXCEPT
47517     {
47518       return m_device == rhs.m_device;
47519     }
47520 
operator !=(Device const & rhs) const47521     bool operator!=(Device const & rhs ) const VULKAN_HPP_NOEXCEPT
47522     {
47523       return m_device != rhs.m_device;
47524     }
47525 
operator <(Device const & rhs) const47526     bool operator<(Device const & rhs ) const VULKAN_HPP_NOEXCEPT
47527     {
47528       return m_device < rhs.m_device;
47529     }
47530 #endif
47531 
47532 
47533 #ifdef VK_USE_PLATFORM_WIN32_KHR
47534 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47535     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47536     VULKAN_HPP_NODISCARD Result acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47537 #else
47538     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47539     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;
47540 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47541 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
47542 
47543 
47544 
47545     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47546     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;
47547 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47548     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47549     VULKAN_HPP_NODISCARD ResultValue<uint32_t> acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47550 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47551 
47552 
47553     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47554     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;
47555 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47556     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47557     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;
47558 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47559 
47560 
47561     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47562     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;
47563 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47564     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47565     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;
47566 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47567   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47568   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;
47569 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47570 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47571 
47572 
47573     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47574     VULKAN_HPP_NODISCARD Result acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47575 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47576     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47577     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47579 
47580 
47581     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47582     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;
47583 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47584     template <typename CommandBufferAllocator = std::allocator<CommandBuffer>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47585     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;
47586     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>
47587     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;
47588 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47589     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename CommandBufferAllocator = std::allocator<UniqueHandle<CommandBuffer, Dispatch>>>
47590     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;
47591     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>
47592     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;
47593 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47594 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47595 
47596 
47597     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47598     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;
47599 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47600     template <typename DescriptorSetAllocator = std::allocator<DescriptorSet>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47601     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;
47602     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>
47603     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;
47604 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47605     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename DescriptorSetAllocator = std::allocator<UniqueHandle<DescriptorSet, Dispatch>>>
47606     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;
47607     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>
47608     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;
47609 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47610 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47611 
47612 
47613     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47614     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;
47615 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47616     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47617     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;
47618 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47619   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47620   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;
47621 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47622 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47623 
47624 
47625 #ifdef VK_ENABLE_BETA_EXTENSIONS
47626     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47627     VULKAN_HPP_NODISCARD Result bindAccelerationStructureMemoryKHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47628 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47629     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47630     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindAccelerationStructureMemoryKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47631 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47632 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47633 
47634     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47635     VULKAN_HPP_NODISCARD Result bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47636 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47637     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47638     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindAccelerationStructureMemoryNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47639 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47640 
47641 
47642 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47643     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47644     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;
47645 #else
47646     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47647     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;
47648 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47649 
47650 
47651 
47652     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47653     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;
47654 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47655     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47656     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;
47657 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47658 
47659     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47660     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;
47661 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47662     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47663     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;
47664 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47665 
47666 
47667 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47668     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47669     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;
47670 #else
47671     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47672     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;
47673 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47674 
47675 
47676 
47677     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47678     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;
47679 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47680     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47681     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;
47682 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47683 
47684     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47685     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;
47686 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47687     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47688     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindImageMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47689 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47690 
47691 
47692 #ifdef VK_ENABLE_BETA_EXTENSIONS
47693     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47694     VULKAN_HPP_NODISCARD Result buildAccelerationStructureKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47695 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47696     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47697     Result buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const > const & pOffsetInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
47698 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47699 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47700 
47701 
47702 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47703     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47704     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;
47705 #else
47706     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47707     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;
47708 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47709 
47710 
47711 
47712 #ifdef VK_ENABLE_BETA_EXTENSIONS
47713     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47714     VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47715 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47716     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47717     VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47718 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47719 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47720 
47721 
47722 #ifdef VK_ENABLE_BETA_EXTENSIONS
47723     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47724     VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47725 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47726     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47727     VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47728 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47729 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47730 
47731 
47732 #ifdef VK_ENABLE_BETA_EXTENSIONS
47733     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47734     VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47735 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47736     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47737     VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47738 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47739 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47740 
47741 
47742 #ifdef VK_ENABLE_BETA_EXTENSIONS
47743     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47744     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;
47745 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47746     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47747     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;
47748 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47749   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47750   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;
47751 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47752 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47753 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47754 
47755 
47756     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47757     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;
47758 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47759     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47760     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;
47761 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47762   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47763   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;
47764 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47765 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47766 
47767 
47768     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47769     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;
47770 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47771     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47772     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;
47773 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47774   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47775   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;
47776 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47777 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47778 
47779 
47780     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47781     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;
47782 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47783     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47784     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;
47785 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47786   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47787   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;
47788 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47789 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47790 
47791 
47792     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47793     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;
47794 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47795     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47796     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;
47797 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47798   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47799   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;
47800 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47801 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47802 
47803 
47804     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47805     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;
47806 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47807     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47808     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;
47809     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>
47810     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;
47811     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47812     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47813 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47814     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
47815     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;
47816     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>
47817     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;
47818     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47819     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47820 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47821 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47822 
47823 
47824 #ifdef VK_ENABLE_BETA_EXTENSIONS
47825     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47826     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;
47827 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47828     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47829     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;
47830 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47831   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47832   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;
47833 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47834 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47835 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47836 
47837 
47838     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47839     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;
47840 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47841     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47842     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;
47843 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47844   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47845   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;
47846 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47847 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47848 
47849 
47850     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47851     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;
47852 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47853     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47854     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;
47855 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47856   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47857   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;
47858 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47859 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47860 
47861 
47862     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47863     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;
47864 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47865     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47866     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;
47867 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47868   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47869   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;
47870 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47871 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47872 
47873     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47874     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;
47875 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47876     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47877     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;
47878 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47879   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47880   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;
47881 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47882 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47883 
47884 
47885     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47886     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;
47887 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47888     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47889     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;
47890 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47891   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47892   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;
47893 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47894 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47895 
47896 
47897     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47898     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;
47899 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47900     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47901     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;
47902 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47903   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47904   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;
47905 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47906 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47907 
47908 
47909     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47910     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;
47911 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47912     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47913     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;
47914 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47915   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47916   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;
47917 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47918 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47919 
47920 
47921     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47922     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;
47923 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47924     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47925     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;
47926     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>
47927     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;
47928     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47929     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47930 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47931     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
47932     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;
47933     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>
47934     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;
47935     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47936     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47937 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47938 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47939 
47940 
47941     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47942     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;
47943 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47944     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47945     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;
47946 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47947   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47948   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;
47949 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47950 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47951 
47952 
47953     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47954     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;
47955 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47956     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47957     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;
47958 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47959   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47960   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;
47961 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47962 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47963 
47964 
47965     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47966     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;
47967 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47968     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47969     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;
47970 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47971   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47972   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;
47973 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47974 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47975 
47976 
47977     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47978     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;
47979 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47980     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47981     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;
47982 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47983   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47984   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;
47985 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47986 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47987 
47988 
47989     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47990     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;
47991 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47992     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47993     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;
47994 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47995   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47996   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;
47997 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47998 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47999 
48000 
48001     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48002     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;
48003 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48004     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48005     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;
48006 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48007   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48008   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;
48009 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48010 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48011 
48012 
48013     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48014     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;
48015 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48016     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48017     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;
48018 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48019   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48020   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;
48021 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48022 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48023 
48024 
48025 #ifdef VK_ENABLE_BETA_EXTENSIONS
48026     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48027     VULKAN_HPP_NODISCARD Result createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48028 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48029     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48030     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48031     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>
48032     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48033     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48034     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48035 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48036     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
48037     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48038     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>
48039     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48040     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48041     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48042 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48043 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48044 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48045 
48046 
48047     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48048     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;
48049 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48050     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48051     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;
48052     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>
48053     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;
48054     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48055     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48056 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48057     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
48058     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;
48059     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>
48060     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;
48061     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48062     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48063 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48064 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48065 
48066 
48067     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48068     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;
48069 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48070     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48071     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;
48072 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48073   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48074   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;
48075 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48076 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48077 
48078 
48079     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48080     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;
48081 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48082     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48083     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;
48084 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48085   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48086   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;
48087 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48088 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48089 
48090     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48091     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;
48092 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48093     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48094     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;
48095 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48096   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48097   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;
48098 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48099 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48100 
48101 
48102     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48103     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;
48104 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48105     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48106     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;
48107 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48108   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48109   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;
48110 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48111 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48112 
48113 
48114     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48115     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;
48116 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48117     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48118     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;
48119 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48120   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48121   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;
48122 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48123 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48124 
48125     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48126     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;
48127 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48128     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48129     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;
48130 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48131   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48132   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;
48133 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48134 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48135 
48136 
48137     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48138     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;
48139 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48140     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48141     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;
48142 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48143   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48144   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;
48145 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48146 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48147 
48148 
48149     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48150     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;
48151 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48152     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48153     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;
48154 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48155   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48156   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;
48157 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48158 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48159 
48160 
48161     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48162     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;
48163 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48164     template <typename SwapchainKHRAllocator = std::allocator<SwapchainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48165     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;
48166     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>
48167     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;
48168     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48169     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<SwapchainKHR>::type createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48170 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48171     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename SwapchainKHRAllocator = std::allocator<UniqueHandle<SwapchainKHR, Dispatch>>>
48172     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;
48173     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>
48174     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;
48175     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48176     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<SwapchainKHR, Dispatch>>::type createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48177 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48178 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48179 
48180 
48181     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48182     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;
48183 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48184     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48185     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;
48186 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48187   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48188   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;
48189 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48190 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48191 
48192 
48193     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48194     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;
48195 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48196     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48197     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;
48198 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48199   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48200   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;
48201 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48202 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48203 
48204 
48205     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48206     VULKAN_HPP_NODISCARD Result debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48207 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48208     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48209     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48210 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48211 
48212 
48213     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48214     VULKAN_HPP_NODISCARD Result debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48215 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48216     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48217     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48218 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48219 
48220 
48221 #ifdef VK_ENABLE_BETA_EXTENSIONS
48222 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48223     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48224     VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48225 #else
48226     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48227     VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48228 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48229 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48230 
48231 
48232 
48233 #ifdef VK_ENABLE_BETA_EXTENSIONS
48234     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48235     void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48236 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48237     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48238     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;
48239 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48240 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48241 
48242     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48243     void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48244 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48245     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48246     void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48247 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48248 
48249 
48250     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48251     void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48252 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48253     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48254     void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48255 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48256 
48257 
48258     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48259     void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48260 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48261     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48262     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;
48263 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48264 
48265 
48266     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48267     void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48268 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48269     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48270     void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48271 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48272 
48273 
48274     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48275     void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48276 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48277     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48278     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;
48279 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48280 
48281 
48282     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48283     void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48284 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48285     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48286     void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48287 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48288 
48289 
48290     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48291     void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48292 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48293     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48294     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;
48295 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48296 
48297 
48298     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48299     void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48300 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48301     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48302     void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48303 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48304 
48305 
48306 #ifdef VK_ENABLE_BETA_EXTENSIONS
48307     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48308     void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48309 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48310     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48311     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;
48312 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48313 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48314 
48315 
48316 #ifdef VK_ENABLE_BETA_EXTENSIONS
48317     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48318     void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48319 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48320     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48321     void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48322 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48323 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48324 
48325 
48326     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48327     void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48328 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48329     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48330     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;
48331 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48332 
48333 
48334     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48335     void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48336 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48337     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48338     void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48339 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48340 
48341 
48342     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48343     void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48344 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48345     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48346     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;
48347 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48348 
48349 
48350     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48351     void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48352 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48353     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48354     void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48355 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48356 
48357 
48358     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48359     void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48360 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48361     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48362     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;
48363 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48364 
48365     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48366     void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48367 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48368     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48369     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;
48370 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48371 
48372 
48373     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48374     void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48375 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48376     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48377     void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48378 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48379 
48380 
48381     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48382     void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48383 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48384     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48385     void destroy( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48386 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48387 
48388 
48389     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48390     void destroyEvent( VULKAN_HPP_NAMESPACE::Event event VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48391 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48392     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48393     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;
48394 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48395 
48396 
48397     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48398     void destroy( VULKAN_HPP_NAMESPACE::Event event VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48399 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48400     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48401     void destroy( VULKAN_HPP_NAMESPACE::Event event VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48402 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48403 
48404 
48405     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48406     void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48407 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48408     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48409     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;
48410 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48411 
48412 
48413     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48414     void destroy( VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48415 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48416     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48417     void destroy( VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48418 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48419 
48420 
48421     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48422     void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48423 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48424     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48425     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;
48426 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48427 
48428 
48429     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48430     void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48431 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48432     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48433     void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48434 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48435 
48436 
48437     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48438     void destroyImage( VULKAN_HPP_NAMESPACE::Image image VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48439 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48440     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48441     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;
48442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48443 
48444 
48445     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48446     void destroy( VULKAN_HPP_NAMESPACE::Image image VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48447 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48448     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48449     void destroy( VULKAN_HPP_NAMESPACE::Image image VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48450 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48451 
48452 
48453     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48454     void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48455 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48456     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48457     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;
48458 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48459 
48460 
48461     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48462     void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48463 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48464     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48465     void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48466 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48467 
48468 
48469     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48470     void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48472     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48473     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;
48474 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48475 
48476 
48477     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48478     void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48479 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48480     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48481     void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48482 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48483 
48484 
48485     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48486     void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48487 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48488     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48489     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;
48490 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48491 
48492 
48493     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48494     void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48495 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48496     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48497     void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48498 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48499 
48500 
48501     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48502     void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48504     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48505     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;
48506 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48507 
48508 
48509     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48510     void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48511 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48512     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48513     void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48514 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48515 
48516 
48517     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48518     void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48519 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48520     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48521     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;
48522 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48523 
48524 
48525     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48526     void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48527 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48528     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48529     void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48530 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48531 
48532 
48533     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48534     void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48535 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48536     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48537     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;
48538 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48539 
48540 
48541     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48542     void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48543 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48544     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48545     void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48546 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48547 
48548 
48549     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48550     void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48551 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48552     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48553     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;
48554 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48555 
48556 
48557     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48558     void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48559 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48560     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48561     void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48562 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48563 
48564 
48565     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48566     void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48567 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48568     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48569     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;
48570 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48571 
48572 
48573     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48574     void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48575 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48576     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48577     void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48579 
48580 
48581     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48582     void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48583 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48584     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48585     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;
48586 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48587 
48588 
48589     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48590     void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48591 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48592     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48593     void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48594 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48595 
48596 
48597     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48598     void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48599 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48600     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48601     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;
48602 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48603 
48604     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48605     void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48606 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48607     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48608     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;
48609 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48610 
48611 
48612     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48613     void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48614 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48615     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48616     void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48617 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48618 
48619 
48620     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48621     void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48622 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48623     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48624     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;
48625 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48626 
48627 
48628     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48629     void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48630 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48631     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48632     void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48633 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48634 
48635 
48636     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48637     void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48638 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48639     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48640     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;
48641 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48642 
48643 
48644     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48645     void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48646 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48647     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48648     void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48649 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48650 
48651 
48652     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48653     void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48654 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48655     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48656     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;
48657 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48658 
48659 
48660     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48661     void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48662 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48663     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48664     void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48665 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48666 
48667 
48668     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48669     void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48670 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48671     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48672     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;
48673 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48674 
48675 
48676     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48677     void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48678 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48679     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48680     void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48681 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48682 
48683 
48684 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48685     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48686     VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48687 #else
48688     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48689     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48690 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48691 
48692 
48693 
48694     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48695     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;
48696 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48697     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48698     typename ResultValueType<void>::type displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48699 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48700 
48701 
48702     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48703     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;
48704 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48705     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48706     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;
48707 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48708 
48709 
48710     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48711     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;
48712 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48713     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48714     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;
48715 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48716 
48717 
48718     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48719     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;
48720 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48721     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48722     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;
48723 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48724 
48725 
48726     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48727     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;
48728 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48729     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48730     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;
48731 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48732 
48733 
48734     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48735     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;
48736 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48737     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48738     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;
48739 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48740 
48741 
48742     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48743     void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48744 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48745     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48746     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;
48747 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48748 
48749 
48750     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48751     void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48752 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48753     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48754     void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48755 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48756 
48757 
48758 #ifdef VK_ENABLE_BETA_EXTENSIONS
48759     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48760     DeviceAddress getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48761 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48762     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48763     DeviceAddress getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48764 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48765 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48766 
48767 
48768     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48769     VULKAN_HPP_NODISCARD Result getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48770 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48771     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48772     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type getAccelerationStructureHandleNV(  VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, ArrayProxy<T> const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT  ) const;
48773     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48774     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<T,Allocator>>::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48775     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48776     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<T>::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48777 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48778 
48779 
48780 #ifdef VK_ENABLE_BETA_EXTENSIONS
48781     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48782     void getAccelerationStructureMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48783 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48784     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48785     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48786     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48787     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48788 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48789 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48790 
48791 
48792     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48793     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;
48794 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48795     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48796     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48797     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48798     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48799 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48800 
48801 
48802 #ifdef VK_USE_PLATFORM_ANDROID_KHR
48803     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48804     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;
48805 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48806     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48807     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;
48808     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48809     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;
48810 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48811 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
48812 
48813 
48814     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48815     DeviceAddress getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48817     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48818     DeviceAddress getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48819 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48820 
48821     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48822     DeviceAddress getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48823 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48824     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48825     DeviceAddress getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48826 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48827 
48828     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48829     DeviceAddress getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48830 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48831     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48832     DeviceAddress getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48833 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48834 
48835 
48836     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48837     void getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48838 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48839     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48840     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;
48841 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48842 
48843 
48844     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48845     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;
48846 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48847     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48848     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48849     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48850     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48851 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48852 
48853     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48854     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;
48855 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48856     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48857     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48858     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48859     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48860 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48861 
48862 
48863     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48864     uint64_t getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48865 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48866     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48867     uint64_t getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48868 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48869 
48870     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48871     uint64_t getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48872 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48873     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48874     uint64_t getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48875 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48876 
48877     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48878     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;
48879 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48880     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48881     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;
48882 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48883 
48884 #ifdef VK_ENABLE_BETA_EXTENSIONS
48885 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48886     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48887     uint32_t getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48888 #else
48889     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48890     uint32_t getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48891 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48892 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48893 
48894 
48895 #ifdef VK_ENABLE_BETA_EXTENSIONS
48896 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48897     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48898     VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48899 #else
48900     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48901     VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48902 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48903 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48904 
48905 
48906 
48907     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48908     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;
48909 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48910     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48911     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48912     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48913     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48914 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48915 
48916     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48917     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;
48918 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48919     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48920     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48921     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48922     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48923 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48924 
48925 
48926 #ifdef VK_ENABLE_BETA_EXTENSIONS
48927     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48928     VULKAN_HPP_NODISCARD Result getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR* version, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48929 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48930     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48931     typename ResultValueType<void>::type getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionKHR & version, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48932 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48933 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48934 
48935 
48936     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48937     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;
48938 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48939     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48940     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;
48941 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48942 
48943     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48944     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;
48945 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48946     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48947     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;
48948 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48949 
48950 
48951     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48952     VULKAN_HPP_NODISCARD Result getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48953 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48954     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48955     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type getGroupPresentCapabilitiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48956 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48957 
48958 
48959 #ifdef VK_USE_PLATFORM_WIN32_KHR
48960     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48961     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;
48962 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48963     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48964     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;
48965 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48966 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
48967 
48968 
48969     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48970     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;
48971 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48972     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48973     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;
48974 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48975 
48976 
48977     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48978     void getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48979 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48980     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48981     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;
48982 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48983 
48984 
48985     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48986     uint64_t getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48987 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48988     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48989     uint64_t getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48990 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48991 
48992     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48993     uint64_t getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48994 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48995     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48996     uint64_t getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48997 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48998 
48999 
49000     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49001     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49002 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49003     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49004     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49005 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49006 
49007     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49008     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;
49009 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49010     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49011     VULKAN_HPP_NAMESPACE::Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49012 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49013 
49014     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49015     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;
49016 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49017     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49018     VULKAN_HPP_NAMESPACE::Queue getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49019 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49020 
49021 
49022 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49023     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49024     VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49025 #else
49026     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49027     VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49028 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49029 
49030 
49031 
49032     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49033     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;
49034 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49035     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49036     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49037 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49038 
49039 
49040 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49041     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49042     VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49043 #else
49044     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49045     VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49046 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49047 
49048 
49049 
49050 #ifdef VK_USE_PLATFORM_WIN32_KHR
49051     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49052     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;
49053 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49054     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49055     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49056 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49057 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49058 
49059 
49060     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49061     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;
49062 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49063     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49064     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49065     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49066     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49067 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49068 
49069 
49070     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49071     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;
49072 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49073     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49074     typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49075 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49076 
49077 
49078     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49079     void getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49080 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49081     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49082     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;
49083 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49084 
49085 
49086     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49087     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;
49088 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49089     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49090     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49091     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49092     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49093 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49094 
49095     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49096     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;
49097 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49098     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49099     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49100     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49101     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49102 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49103 
49104 
49105     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49106     void getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49107 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49108     template <typename SparseImageMemoryRequirementsAllocator = std::allocator<SparseImageMemoryRequirements>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49109     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49110     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>
49111     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49112 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49113 
49114 
49115     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49116     void getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49117 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49118     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49119     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49120     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>
49121     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49122 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49123 
49124     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49125     void getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49126 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49127     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49128     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49129     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>
49130     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49131 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49132 
49133 
49134     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49135     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;
49136 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49137     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49138     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;
49139 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49140 
49141 
49142     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49143     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;
49144 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49145     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49146     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;
49147 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49148 
49149 
49150     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49151     uint32_t getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49152 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49153     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49154     uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49155 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49156 
49157 
49158 #ifdef VK_USE_PLATFORM_ANDROID_KHR
49159     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49160     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;
49161 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49162     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49163     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<struct AHardwareBuffer*>::type getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49164 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49165 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
49166 
49167 
49168     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49169     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;
49170 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49171     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49172     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49173 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49174 
49175 
49176     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49177     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;
49178 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49179     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49180     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;
49181 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49182 
49183 
49184     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49185     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;
49186 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49187     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49188     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT>::type getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49189 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49190 
49191 
49192 #ifdef VK_USE_PLATFORM_WIN32_KHR
49193     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49194     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;
49195 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49196     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49197     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49198 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49199 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49200 
49201 
49202 #ifdef VK_USE_PLATFORM_WIN32_KHR
49203     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49204     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;
49205 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49206     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49207     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;
49208 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49209 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49210 
49211 
49212 #ifdef VK_USE_PLATFORM_WIN32_KHR
49213     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49214     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;
49215 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49216     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49217     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;
49218 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49219 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49220 
49221     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49222     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;
49223 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49224     template<typename Allocator  = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49225     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49226     template<typename Allocator  = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PastPresentationTimingGOOGLE>::value, int>::type = 0>
49227     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49228 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49229 
49230 
49231     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49232     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;
49233 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49234     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49235     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;
49236 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49237 
49238     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49239     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;
49240 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49241     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49242     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49243     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
49244     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49245 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49246 
49247     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49248     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;
49249 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49250     template<typename Allocator  = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49251     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49252     template<typename Allocator  = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableInternalRepresentationKHR>::value, int>::type = 0>
49253     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49254 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49255 
49256     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49257     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;
49258 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49259     template<typename Allocator  = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49260     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49261     template<typename Allocator  = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutablePropertiesKHR>::value, int>::type = 0>
49262     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49263 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49264 
49265     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49266     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;
49267 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49268     template<typename Allocator  = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49269     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49270     template<typename Allocator  = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableStatisticKHR>::value, int>::type = 0>
49271     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49272 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49273 
49274 
49275     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49276     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;
49277 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49278     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49279     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;
49280 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49281 
49282 
49283     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49284     VULKAN_HPP_NODISCARD Result getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49285 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49286     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49287     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;
49288     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49289     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;
49290     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49291     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;
49292 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49293 
49294 
49295 #ifdef VK_ENABLE_BETA_EXTENSIONS
49296     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49297     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;
49298 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49299     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49300     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;
49301     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49302     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;
49303     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49304     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;
49305 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49306 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49307 
49308 
49309 #ifdef VK_ENABLE_BETA_EXTENSIONS
49310     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49311     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;
49312 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49313     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49314     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;
49315     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49316     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;
49317     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49318     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;
49319 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49320 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49321 
49322     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49323     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;
49324 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49325     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49326     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;
49327     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49328     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;
49329     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49330     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;
49331 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49332 
49333 
49334     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49335     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;
49336 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49337     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49338     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;
49339 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49340 
49341 
49342     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49343     void getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49344 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49345     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49346     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;
49347 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49348 
49349 
49350     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49351     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;
49352 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49353     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49354     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;
49355 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49356 
49357     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49358     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;
49359 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49360     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49361     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;
49362 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49363 
49364 
49365     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49366     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;
49367 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49368     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49369     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49370 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49371 
49372 
49373 #ifdef VK_USE_PLATFORM_WIN32_KHR
49374     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49375     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;
49376 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49377     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49378     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49379 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49380 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49381 
49382     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49383     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;
49384 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49385     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49386     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49387     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
49388     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49389 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49390 
49391 
49392     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49393     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;
49394 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49395     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49396     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;
49397 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49398 
49399     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49400     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;
49401 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49402     template<typename Allocator  = std::allocator<Image>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49403     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Image,Allocator>>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49404     template<typename Allocator  = std::allocator<Image>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, Image>::value, int>::type = 0>
49405     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Image,Allocator>>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49406 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49407 
49408 
49409 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49410     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49411     VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49412 #else
49413     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49414     VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49415 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49416 
49417 
49418     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49419     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;
49420 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49421     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49422     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49423     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
49424     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49425 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49426 
49427 
49428     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49429     VULKAN_HPP_NODISCARD Result importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49430 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49431     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49432     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49433 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49434 
49435 
49436 #ifdef VK_USE_PLATFORM_WIN32_KHR
49437     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49438     VULKAN_HPP_NODISCARD Result importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49439 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49440     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49441     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49443 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49444 
49445 
49446     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49447     VULKAN_HPP_NODISCARD Result importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, 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     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49451 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49452 
49453 
49454 #ifdef VK_USE_PLATFORM_WIN32_KHR
49455     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49456     VULKAN_HPP_NODISCARD Result importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49457 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49458     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49459     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49460 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49461 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49462 
49463 
49464     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49465     VULKAN_HPP_NODISCARD Result initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49466 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49467     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49468     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49469 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49470 
49471 
49472     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49473     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;
49474 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49475     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49476     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;
49477 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49478 
49479 
49480     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49481     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;
49482 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49483     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49484     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;
49485 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49486 
49487 
49488     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49489     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;
49490 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49491     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49492     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;
49493 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49494 
49495 
49496     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49497     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;
49498 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49499     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49500     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;
49501 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49502 
49503 
49504     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49505     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;
49506 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49507     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49508     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;
49509 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49510   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49511   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;
49512 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49513 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49514 
49515 
49516     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49517     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;
49518 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49519     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49520     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;
49521 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49522   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49523   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;
49524 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49525 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49526 
49527 
49528 #ifdef VK_USE_PLATFORM_WIN32_KHR
49529 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49530     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49531     VULKAN_HPP_NODISCARD Result releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49532 #else
49533     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49534     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;
49535 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49536 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49537 
49538 
49539 
49540 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49541     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49542     VULKAN_HPP_NODISCARD Result releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49543 #else
49544     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49545     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;
49546 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49547 
49548 
49549 
49550 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49551     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49552     VULKAN_HPP_NODISCARD Result release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49553 #else
49554     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49555     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49556 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49557 
49558 
49559 
49560     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49561     void releaseProfilingLockKHR( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49562 
49563 
49564 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49565     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49566     VULKAN_HPP_NODISCARD Result resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49567 #else
49568     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49569     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;
49570 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49571 
49572 
49573 
49574 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49575     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49576     Result resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49577 #else
49578     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49579     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;
49580 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49581 
49582 
49583 
49584 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49585     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49586     VULKAN_HPP_NODISCARD Result resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49587 #else
49588     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49589     typename ResultValueType<void>::type resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49590 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49591 
49592 
49593 
49594     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49595     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;
49596 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49597     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49598     typename ResultValueType<void>::type resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49599 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49600 
49601 
49602     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49603     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;
49604 
49605     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49606     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;
49607 
49608 
49609     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49610     VULKAN_HPP_NODISCARD Result setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49611 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49612     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49613     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49614 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49615 
49616 
49617     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49618     VULKAN_HPP_NODISCARD Result setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49619 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49620     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49621     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49622 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49623 
49624 
49625 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49626     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49627     VULKAN_HPP_NODISCARD Result setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49628 #else
49629     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49630     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;
49631 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49632 
49633 
49634 
49635     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49636     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;
49637 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49638     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49639     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;
49640 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49641 
49642 
49643     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49644     void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49645 
49646 
49647 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49648     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49649     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;
49650 #else
49651     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49652     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;
49653 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49654 
49655 
49656 
49657     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49658     VULKAN_HPP_NODISCARD Result signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49659 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49660     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49661     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49662 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49663 
49664     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49665     VULKAN_HPP_NODISCARD Result signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49666 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49667     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49668     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49669 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49670 
49671 
49672     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49673     void trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49674 
49675     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49676     void trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49677 
49678 
49679     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49680     void uninitializePerformanceApiINTEL( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49681 
49682 
49683     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49684     void unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49685 
49686 
49687     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49688     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;
49689 
49690     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49691     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;
49692 
49693 
49694     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49695     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;
49696 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49697     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49698     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;
49699 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49700 
49701 
49702     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49703     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;
49704 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49705     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49706     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;
49707 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49708 
49709 
49710     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49711     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;
49712 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49713     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49714     VULKAN_HPP_NODISCARD Result waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49715 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49716 
49717     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49718     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;
49719 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49720     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49721     VULKAN_HPP_NODISCARD Result waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49722 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49723 
49724 #ifdef VK_ENABLE_BETA_EXTENSIONS
49725     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49726     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;
49727 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49728     template<typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49729     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;
49730 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49731 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49732 
operator VkDevice() const49733     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const VULKAN_HPP_NOEXCEPT
49734     {
49735       return m_device;
49736     }
49737 
operator bool() const49738     explicit operator bool() const VULKAN_HPP_NOEXCEPT
49739     {
49740       return m_device != VK_NULL_HANDLE;
49741     }
49742 
operator !() const49743     bool operator!() const VULKAN_HPP_NOEXCEPT
49744     {
49745       return m_device == VK_NULL_HANDLE;
49746     }
49747 
49748   private:
49749     VkDevice m_device;
49750   };
49751   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Device ) == sizeof( VkDevice ), "handle and wrapper have different size!" );
49752 
49753   template <>
49754   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDevice>
49755   {
49756     using type = VULKAN_HPP_NAMESPACE::Device;
49757   };
49758 
49759   template <>
49760   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDevice>
49761   {
49762     using Type = VULKAN_HPP_NAMESPACE::Device;
49763   };
49764 
49765 
49766   template <>
49767   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice>
49768   {
49769     using Type = VULKAN_HPP_NAMESPACE::Device;
49770   };
49771 
49772 
49773   template <>
49774   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Device>
49775   {
49776     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
49777   };
49778 
49779   struct DisplayModeParametersKHR
49780   {
49781 
49782 
49783 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49784     VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR(VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, uint32_t refreshRate_ = {}) VULKAN_HPP_NOEXCEPT
49785     : visibleRegion( visibleRegion_ ), refreshRate( refreshRate_ )
49786     {}
49787 
49788     VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49789 
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49790     DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49791     {
49792       *this = rhs;
49793     }
49794 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
49795 
operator =VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49796     DisplayModeParametersKHR & operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49797     {
49798       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const *>( &rhs );
49799       return *this;
49800     }
49801 
operator =VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49802     DisplayModeParametersKHR & operator=( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49803     {
49804       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModeParametersKHR ) );
49805       return *this;
49806     }
49807 
setVisibleRegionVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49808     DisplayModeParametersKHR & setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT
49809     {
49810       visibleRegion = visibleRegion_;
49811       return *this;
49812     }
49813 
setRefreshRateVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49814     DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT
49815     {
49816       refreshRate = refreshRate_;
49817       return *this;
49818     }
49819 
49820 
operator VkDisplayModeParametersKHR const&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49821     operator VkDisplayModeParametersKHR const&() const VULKAN_HPP_NOEXCEPT
49822     {
49823       return *reinterpret_cast<const VkDisplayModeParametersKHR*>( this );
49824     }
49825 
operator VkDisplayModeParametersKHR&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49826     operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT
49827     {
49828       return *reinterpret_cast<VkDisplayModeParametersKHR*>( this );
49829     }
49830 
49831 
49832 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49833     auto operator<=>( DisplayModeParametersKHR const& ) const = default;
49834 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49835     bool operator==( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49836     {
49837       return ( visibleRegion == rhs.visibleRegion )
49838           && ( refreshRate == rhs.refreshRate );
49839     }
49840 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49841     bool operator!=( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49842     {
49843       return !operator==( rhs );
49844     }
49845 #endif
49846 
49847 
49848 
49849   public:
49850     VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {};
49851     uint32_t refreshRate = {};
49852 
49853   };
49854   static_assert( sizeof( DisplayModeParametersKHR ) == sizeof( VkDisplayModeParametersKHR ), "struct and wrapper have different size!" );
49855   static_assert( std::is_standard_layout<DisplayModeParametersKHR>::value, "struct wrapper is not a standard layout!" );
49856 
49857   struct DisplayModeCreateInfoKHR
49858   {
49859     static const bool allowDuplicate = false;
49860     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeCreateInfoKHR;
49861 
49862 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49863     VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR(VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT
49864     : flags( flags_ ), parameters( parameters_ )
49865     {}
49866 
49867     VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49868 
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49869     DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49870     {
49871       *this = rhs;
49872     }
49873 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
49874 
operator =VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49875     DisplayModeCreateInfoKHR & operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49876     {
49877       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const *>( &rhs );
49878       return *this;
49879     }
49880 
operator =VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49881     DisplayModeCreateInfoKHR & operator=( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49882     {
49883       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModeCreateInfoKHR ) );
49884       return *this;
49885     }
49886 
setPNextVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49887     DisplayModeCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
49888     {
49889       pNext = pNext_;
49890       return *this;
49891     }
49892 
setFlagsVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49893     DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
49894     {
49895       flags = flags_;
49896       return *this;
49897     }
49898 
setParametersVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49899     DisplayModeCreateInfoKHR & setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & parameters_ ) VULKAN_HPP_NOEXCEPT
49900     {
49901       parameters = parameters_;
49902       return *this;
49903     }
49904 
49905 
operator VkDisplayModeCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49906     operator VkDisplayModeCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
49907     {
49908       return *reinterpret_cast<const VkDisplayModeCreateInfoKHR*>( this );
49909     }
49910 
operator VkDisplayModeCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49911     operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
49912     {
49913       return *reinterpret_cast<VkDisplayModeCreateInfoKHR*>( this );
49914     }
49915 
49916 
49917 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49918     auto operator<=>( DisplayModeCreateInfoKHR const& ) const = default;
49919 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49920     bool operator==( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49921     {
49922       return ( sType == rhs.sType )
49923           && ( pNext == rhs.pNext )
49924           && ( flags == rhs.flags )
49925           && ( parameters == rhs.parameters );
49926     }
49927 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49928     bool operator!=( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49929     {
49930       return !operator==( rhs );
49931     }
49932 #endif
49933 
49934 
49935 
49936   public:
49937     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR;
49938     const void* pNext = {};
49939     VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {};
49940     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
49941 
49942   };
49943   static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), "struct and wrapper have different size!" );
49944   static_assert( std::is_standard_layout<DisplayModeCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
49945 
49946   template <>
49947   struct CppType<StructureType, StructureType::eDisplayModeCreateInfoKHR>
49948   {
49949     using Type = DisplayModeCreateInfoKHR;
49950   };
49951 
49952   class DisplayModeKHR
49953   {
49954   public:
49955     using CType = VkDisplayModeKHR;
49956 
49957     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR;
49958     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR;
49959 
49960   public:
DisplayModeKHR()49961     VULKAN_HPP_CONSTEXPR DisplayModeKHR() VULKAN_HPP_NOEXCEPT
49962       : m_displayModeKHR(VK_NULL_HANDLE)
49963     {}
49964 
DisplayModeKHR(std::nullptr_t)49965     VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
49966       : m_displayModeKHR(VK_NULL_HANDLE)
49967     {}
49968 
DisplayModeKHR(VkDisplayModeKHR displayModeKHR)49969     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR ) VULKAN_HPP_NOEXCEPT
49970       : m_displayModeKHR( displayModeKHR )
49971     {}
49972 
49973 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayModeKHR displayModeKHR)49974     DisplayModeKHR & operator=(VkDisplayModeKHR displayModeKHR) VULKAN_HPP_NOEXCEPT
49975     {
49976       m_displayModeKHR = displayModeKHR;
49977       return *this;
49978     }
49979 #endif
49980 
operator =(std::nullptr_t)49981     DisplayModeKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
49982     {
49983       m_displayModeKHR = VK_NULL_HANDLE;
49984       return *this;
49985     }
49986 
49987 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49988     auto operator<=>( DisplayModeKHR const& ) const = default;
49989 #else
operator ==(DisplayModeKHR const & rhs) const49990     bool operator==( DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
49991     {
49992       return m_displayModeKHR == rhs.m_displayModeKHR;
49993     }
49994 
operator !=(DisplayModeKHR const & rhs) const49995     bool operator!=(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
49996     {
49997       return m_displayModeKHR != rhs.m_displayModeKHR;
49998     }
49999 
operator <(DisplayModeKHR const & rhs) const50000     bool operator<(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
50001     {
50002       return m_displayModeKHR < rhs.m_displayModeKHR;
50003     }
50004 #endif
50005 
operator VkDisplayModeKHR() const50006     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayModeKHR() const VULKAN_HPP_NOEXCEPT
50007     {
50008       return m_displayModeKHR;
50009     }
50010 
operator bool() const50011     explicit operator bool() const VULKAN_HPP_NOEXCEPT
50012     {
50013       return m_displayModeKHR != VK_NULL_HANDLE;
50014     }
50015 
operator !() const50016     bool operator!() const VULKAN_HPP_NOEXCEPT
50017     {
50018       return m_displayModeKHR == VK_NULL_HANDLE;
50019     }
50020 
50021   private:
50022     VkDisplayModeKHR m_displayModeKHR;
50023   };
50024   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), "handle and wrapper have different size!" );
50025 
50026   template <>
50027   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDisplayModeKHR>
50028   {
50029     using type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
50030   };
50031 
50032   template <>
50033   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR>
50034   {
50035     using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
50036   };
50037 
50038 
50039   template <>
50040   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR>
50041   {
50042     using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
50043   };
50044 
50045 
50046   template <>
50047   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
50048   {
50049     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
50050   };
50051 
50052   struct ExtensionProperties
50053   {
50054 
50055 
50056 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties50057     VULKAN_HPP_CONSTEXPR_14 ExtensionProperties(std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& extensionName_ = {}, uint32_t specVersion_ = {}) VULKAN_HPP_NOEXCEPT
50058     : extensionName( extensionName_ ), specVersion( specVersion_ )
50059     {}
50060 
50061     VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50062 
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties50063     ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50064     {
50065       *this = rhs;
50066     }
50067 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50068 
operator =VULKAN_HPP_NAMESPACE::ExtensionProperties50069     ExtensionProperties & operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50070     {
50071       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExtensionProperties const *>( &rhs );
50072       return *this;
50073     }
50074 
operator =VULKAN_HPP_NAMESPACE::ExtensionProperties50075     ExtensionProperties & operator=( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50076     {
50077       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExtensionProperties ) );
50078       return *this;
50079     }
50080 
50081 
operator VkExtensionProperties const&VULKAN_HPP_NAMESPACE::ExtensionProperties50082     operator VkExtensionProperties const&() const VULKAN_HPP_NOEXCEPT
50083     {
50084       return *reinterpret_cast<const VkExtensionProperties*>( this );
50085     }
50086 
operator VkExtensionProperties&VULKAN_HPP_NAMESPACE::ExtensionProperties50087     operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT
50088     {
50089       return *reinterpret_cast<VkExtensionProperties*>( this );
50090     }
50091 
50092 
50093 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50094     auto operator<=>( ExtensionProperties const& ) const = default;
50095 #else
operator ==VULKAN_HPP_NAMESPACE::ExtensionProperties50096     bool operator==( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
50097     {
50098       return ( extensionName == rhs.extensionName )
50099           && ( specVersion == rhs.specVersion );
50100     }
50101 
operator !=VULKAN_HPP_NAMESPACE::ExtensionProperties50102     bool operator!=( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
50103     {
50104       return !operator==( rhs );
50105     }
50106 #endif
50107 
50108 
50109 
50110   public:
50111     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> extensionName = {};
50112     uint32_t specVersion = {};
50113 
50114   };
50115   static_assert( sizeof( ExtensionProperties ) == sizeof( VkExtensionProperties ), "struct and wrapper have different size!" );
50116   static_assert( std::is_standard_layout<ExtensionProperties>::value, "struct wrapper is not a standard layout!" );
50117 
50118   struct LayerProperties
50119   {
50120 
50121 
50122 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties50123     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
50124     : layerName( layerName_ ), specVersion( specVersion_ ), implementationVersion( implementationVersion_ ), description( description_ )
50125     {}
50126 
50127     VULKAN_HPP_CONSTEXPR_14 LayerProperties( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50128 
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties50129     LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50130     {
50131       *this = rhs;
50132     }
50133 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50134 
operator =VULKAN_HPP_NAMESPACE::LayerProperties50135     LayerProperties & operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50136     {
50137       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LayerProperties const *>( &rhs );
50138       return *this;
50139     }
50140 
operator =VULKAN_HPP_NAMESPACE::LayerProperties50141     LayerProperties & operator=( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50142     {
50143       memcpy( static_cast<void *>( this ), &rhs, sizeof( LayerProperties ) );
50144       return *this;
50145     }
50146 
50147 
operator VkLayerProperties const&VULKAN_HPP_NAMESPACE::LayerProperties50148     operator VkLayerProperties const&() const VULKAN_HPP_NOEXCEPT
50149     {
50150       return *reinterpret_cast<const VkLayerProperties*>( this );
50151     }
50152 
operator VkLayerProperties&VULKAN_HPP_NAMESPACE::LayerProperties50153     operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT
50154     {
50155       return *reinterpret_cast<VkLayerProperties*>( this );
50156     }
50157 
50158 
50159 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50160     auto operator<=>( LayerProperties const& ) const = default;
50161 #else
operator ==VULKAN_HPP_NAMESPACE::LayerProperties50162     bool operator==( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
50163     {
50164       return ( layerName == rhs.layerName )
50165           && ( specVersion == rhs.specVersion )
50166           && ( implementationVersion == rhs.implementationVersion )
50167           && ( description == rhs.description );
50168     }
50169 
operator !=VULKAN_HPP_NAMESPACE::LayerProperties50170     bool operator!=( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
50171     {
50172       return !operator==( rhs );
50173     }
50174 #endif
50175 
50176 
50177 
50178   public:
50179     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layerName = {};
50180     uint32_t specVersion = {};
50181     uint32_t implementationVersion = {};
50182     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
50183 
50184   };
50185   static_assert( sizeof( LayerProperties ) == sizeof( VkLayerProperties ), "struct and wrapper have different size!" );
50186   static_assert( std::is_standard_layout<LayerProperties>::value, "struct wrapper is not a standard layout!" );
50187 
50188   struct PerformanceCounterKHR
50189   {
50190     static const bool allowDuplicate = false;
50191     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterKHR;
50192 
50193 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR50194     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
50195     : unit( unit_ ), scope( scope_ ), storage( storage_ ), uuid( uuid_ )
50196     {}
50197 
50198     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50199 
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR50200     PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50201     {
50202       *this = rhs;
50203     }
50204 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50205 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50206     PerformanceCounterKHR & operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50207     {
50208       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR const *>( &rhs );
50209       return *this;
50210     }
50211 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50212     PerformanceCounterKHR & operator=( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50213     {
50214       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceCounterKHR ) );
50215       return *this;
50216     }
50217 
50218 
operator VkPerformanceCounterKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50219     operator VkPerformanceCounterKHR const&() const VULKAN_HPP_NOEXCEPT
50220     {
50221       return *reinterpret_cast<const VkPerformanceCounterKHR*>( this );
50222     }
50223 
operator VkPerformanceCounterKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50224     operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT
50225     {
50226       return *reinterpret_cast<VkPerformanceCounterKHR*>( this );
50227     }
50228 
50229 
50230 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50231     auto operator<=>( PerformanceCounterKHR const& ) const = default;
50232 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50233     bool operator==( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50234     {
50235       return ( sType == rhs.sType )
50236           && ( pNext == rhs.pNext )
50237           && ( unit == rhs.unit )
50238           && ( scope == rhs.scope )
50239           && ( storage == rhs.storage )
50240           && ( uuid == rhs.uuid );
50241     }
50242 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50243     bool operator!=( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50244     {
50245       return !operator==( rhs );
50246     }
50247 #endif
50248 
50249 
50250 
50251   public:
50252     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR;
50253     const void* pNext = {};
50254     VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric;
50255     VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer;
50256     VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32;
50257     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> uuid = {};
50258 
50259   };
50260   static_assert( sizeof( PerformanceCounterKHR ) == sizeof( VkPerformanceCounterKHR ), "struct and wrapper have different size!" );
50261   static_assert( std::is_standard_layout<PerformanceCounterKHR>::value, "struct wrapper is not a standard layout!" );
50262 
50263   template <>
50264   struct CppType<StructureType, StructureType::ePerformanceCounterKHR>
50265   {
50266     using Type = PerformanceCounterKHR;
50267   };
50268 
50269   struct PerformanceCounterDescriptionKHR
50270   {
50271     static const bool allowDuplicate = false;
50272     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterDescriptionKHR;
50273 
50274 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50275     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
50276     : flags( flags_ ), name( name_ ), category( category_ ), description( description_ )
50277     {}
50278 
50279     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50280 
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50281     PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50282     {
50283       *this = rhs;
50284     }
50285 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50286 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50287     PerformanceCounterDescriptionKHR & operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50288     {
50289       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR const *>( &rhs );
50290       return *this;
50291     }
50292 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50293     PerformanceCounterDescriptionKHR & operator=( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50294     {
50295       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceCounterDescriptionKHR ) );
50296       return *this;
50297     }
50298 
50299 
operator VkPerformanceCounterDescriptionKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50300     operator VkPerformanceCounterDescriptionKHR const&() const VULKAN_HPP_NOEXCEPT
50301     {
50302       return *reinterpret_cast<const VkPerformanceCounterDescriptionKHR*>( this );
50303     }
50304 
operator VkPerformanceCounterDescriptionKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50305     operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT
50306     {
50307       return *reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( this );
50308     }
50309 
50310 
50311 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50312     auto operator<=>( PerformanceCounterDescriptionKHR const& ) const = default;
50313 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50314     bool operator==( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50315     {
50316       return ( sType == rhs.sType )
50317           && ( pNext == rhs.pNext )
50318           && ( flags == rhs.flags )
50319           && ( name == rhs.name )
50320           && ( category == rhs.category )
50321           && ( description == rhs.description );
50322     }
50323 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50324     bool operator!=( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50325     {
50326       return !operator==( rhs );
50327     }
50328 #endif
50329 
50330 
50331 
50332   public:
50333     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR;
50334     const void* pNext = {};
50335     VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {};
50336     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
50337     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> category = {};
50338     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
50339 
50340   };
50341   static_assert( sizeof( PerformanceCounterDescriptionKHR ) == sizeof( VkPerformanceCounterDescriptionKHR ), "struct and wrapper have different size!" );
50342   static_assert( std::is_standard_layout<PerformanceCounterDescriptionKHR>::value, "struct wrapper is not a standard layout!" );
50343 
50344   template <>
50345   struct CppType<StructureType, StructureType::ePerformanceCounterDescriptionKHR>
50346   {
50347     using Type = PerformanceCounterDescriptionKHR;
50348   };
50349 
50350   struct DisplayModePropertiesKHR
50351   {
50352 
50353 
50354 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50355     VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT
50356     : displayMode( displayMode_ ), parameters( parameters_ )
50357     {}
50358 
50359     VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50360 
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50361     DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50362     {
50363       *this = rhs;
50364     }
50365 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50366 
operator =VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50367     DisplayModePropertiesKHR & operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50368     {
50369       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const *>( &rhs );
50370       return *this;
50371     }
50372 
operator =VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50373     DisplayModePropertiesKHR & operator=( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50374     {
50375       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModePropertiesKHR ) );
50376       return *this;
50377     }
50378 
50379 
operator VkDisplayModePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50380     operator VkDisplayModePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
50381     {
50382       return *reinterpret_cast<const VkDisplayModePropertiesKHR*>( this );
50383     }
50384 
operator VkDisplayModePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50385     operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT
50386     {
50387       return *reinterpret_cast<VkDisplayModePropertiesKHR*>( this );
50388     }
50389 
50390 
50391 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50392     auto operator<=>( DisplayModePropertiesKHR const& ) const = default;
50393 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50394     bool operator==( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50395     {
50396       return ( displayMode == rhs.displayMode )
50397           && ( parameters == rhs.parameters );
50398     }
50399 
operator !=VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50400     bool operator!=( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50401     {
50402       return !operator==( rhs );
50403     }
50404 #endif
50405 
50406 
50407 
50408   public:
50409     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
50410     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
50411 
50412   };
50413   static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" );
50414   static_assert( std::is_standard_layout<DisplayModePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
50415 
50416   struct DisplayModeProperties2KHR
50417   {
50418     static const bool allowDuplicate = false;
50419     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeProperties2KHR;
50420 
50421 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50422     VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {}) VULKAN_HPP_NOEXCEPT
50423     : displayModeProperties( displayModeProperties_ )
50424     {}
50425 
50426     VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50427 
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50428     DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50429     {
50430       *this = rhs;
50431     }
50432 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50433 
operator =VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50434     DisplayModeProperties2KHR & operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50435     {
50436       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR const *>( &rhs );
50437       return *this;
50438     }
50439 
operator =VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50440     DisplayModeProperties2KHR & operator=( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50441     {
50442       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModeProperties2KHR ) );
50443       return *this;
50444     }
50445 
50446 
operator VkDisplayModeProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50447     operator VkDisplayModeProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
50448     {
50449       return *reinterpret_cast<const VkDisplayModeProperties2KHR*>( this );
50450     }
50451 
operator VkDisplayModeProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50452     operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT
50453     {
50454       return *reinterpret_cast<VkDisplayModeProperties2KHR*>( this );
50455     }
50456 
50457 
50458 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50459     auto operator<=>( DisplayModeProperties2KHR const& ) const = default;
50460 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50461     bool operator==( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50462     {
50463       return ( sType == rhs.sType )
50464           && ( pNext == rhs.pNext )
50465           && ( displayModeProperties == rhs.displayModeProperties );
50466     }
50467 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50468     bool operator!=( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50469     {
50470       return !operator==( rhs );
50471     }
50472 #endif
50473 
50474 
50475 
50476   public:
50477     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR;
50478     void* pNext = {};
50479     VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {};
50480 
50481   };
50482   static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), "struct and wrapper have different size!" );
50483   static_assert( std::is_standard_layout<DisplayModeProperties2KHR>::value, "struct wrapper is not a standard layout!" );
50484 
50485   template <>
50486   struct CppType<StructureType, StructureType::eDisplayModeProperties2KHR>
50487   {
50488     using Type = DisplayModeProperties2KHR;
50489   };
50490 
50491   struct DisplayPlaneInfo2KHR
50492   {
50493     static const bool allowDuplicate = false;
50494     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneInfo2KHR;
50495 
50496 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50497     VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, uint32_t planeIndex_ = {}) VULKAN_HPP_NOEXCEPT
50498     : mode( mode_ ), planeIndex( planeIndex_ )
50499     {}
50500 
50501     VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50502 
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50503     DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50504     {
50505       *this = rhs;
50506     }
50507 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50508 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50509     DisplayPlaneInfo2KHR & operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50510     {
50511       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR const *>( &rhs );
50512       return *this;
50513     }
50514 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50515     DisplayPlaneInfo2KHR & operator=( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50516     {
50517       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneInfo2KHR ) );
50518       return *this;
50519     }
50520 
setPNextVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50521     DisplayPlaneInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
50522     {
50523       pNext = pNext_;
50524       return *this;
50525     }
50526 
setModeVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50527     DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
50528     {
50529       mode = mode_;
50530       return *this;
50531     }
50532 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50533     DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
50534     {
50535       planeIndex = planeIndex_;
50536       return *this;
50537     }
50538 
50539 
operator VkDisplayPlaneInfo2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50540     operator VkDisplayPlaneInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
50541     {
50542       return *reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( this );
50543     }
50544 
operator VkDisplayPlaneInfo2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50545     operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT
50546     {
50547       return *reinterpret_cast<VkDisplayPlaneInfo2KHR*>( this );
50548     }
50549 
50550 
50551 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50552     auto operator<=>( DisplayPlaneInfo2KHR const& ) const = default;
50553 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50554     bool operator==( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50555     {
50556       return ( sType == rhs.sType )
50557           && ( pNext == rhs.pNext )
50558           && ( mode == rhs.mode )
50559           && ( planeIndex == rhs.planeIndex );
50560     }
50561 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50562     bool operator!=( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50563     {
50564       return !operator==( rhs );
50565     }
50566 #endif
50567 
50568 
50569 
50570   public:
50571     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR;
50572     const void* pNext = {};
50573     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {};
50574     uint32_t planeIndex = {};
50575 
50576   };
50577   static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), "struct and wrapper have different size!" );
50578   static_assert( std::is_standard_layout<DisplayPlaneInfo2KHR>::value, "struct wrapper is not a standard layout!" );
50579 
50580   template <>
50581   struct CppType<StructureType, StructureType::eDisplayPlaneInfo2KHR>
50582   {
50583     using Type = DisplayPlaneInfo2KHR;
50584   };
50585 
50586   struct DisplayPlaneCapabilitiesKHR
50587   {
50588 
50589 
50590 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50591     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
50592     : supportedAlpha( supportedAlpha_ ), minSrcPosition( minSrcPosition_ ), maxSrcPosition( maxSrcPosition_ ), minSrcExtent( minSrcExtent_ ), maxSrcExtent( maxSrcExtent_ ), minDstPosition( minDstPosition_ ), maxDstPosition( maxDstPosition_ ), minDstExtent( minDstExtent_ ), maxDstExtent( maxDstExtent_ )
50593     {}
50594 
50595     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50596 
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50597     DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50598     {
50599       *this = rhs;
50600     }
50601 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50602 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50603     DisplayPlaneCapabilitiesKHR & operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50604     {
50605       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const *>( &rhs );
50606       return *this;
50607     }
50608 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50609     DisplayPlaneCapabilitiesKHR & operator=( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50610     {
50611       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneCapabilitiesKHR ) );
50612       return *this;
50613     }
50614 
50615 
operator VkDisplayPlaneCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50616     operator VkDisplayPlaneCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
50617     {
50618       return *reinterpret_cast<const VkDisplayPlaneCapabilitiesKHR*>( this );
50619     }
50620 
operator VkDisplayPlaneCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50621     operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
50622     {
50623       return *reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( this );
50624     }
50625 
50626 
50627 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50628     auto operator<=>( DisplayPlaneCapabilitiesKHR const& ) const = default;
50629 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50630     bool operator==( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50631     {
50632       return ( supportedAlpha == rhs.supportedAlpha )
50633           && ( minSrcPosition == rhs.minSrcPosition )
50634           && ( maxSrcPosition == rhs.maxSrcPosition )
50635           && ( minSrcExtent == rhs.minSrcExtent )
50636           && ( maxSrcExtent == rhs.maxSrcExtent )
50637           && ( minDstPosition == rhs.minDstPosition )
50638           && ( maxDstPosition == rhs.maxDstPosition )
50639           && ( minDstExtent == rhs.minDstExtent )
50640           && ( maxDstExtent == rhs.maxDstExtent );
50641     }
50642 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50643     bool operator!=( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50644     {
50645       return !operator==( rhs );
50646     }
50647 #endif
50648 
50649 
50650 
50651   public:
50652     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {};
50653     VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {};
50654     VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {};
50655     VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {};
50656     VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {};
50657     VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {};
50658     VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {};
50659     VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {};
50660     VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {};
50661 
50662   };
50663   static_assert( sizeof( DisplayPlaneCapabilitiesKHR ) == sizeof( VkDisplayPlaneCapabilitiesKHR ), "struct and wrapper have different size!" );
50664   static_assert( std::is_standard_layout<DisplayPlaneCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
50665 
50666   struct DisplayPlaneCapabilities2KHR
50667   {
50668     static const bool allowDuplicate = false;
50669     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneCapabilities2KHR;
50670 
50671 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50672     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR(VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {}) VULKAN_HPP_NOEXCEPT
50673     : capabilities( capabilities_ )
50674     {}
50675 
50676     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50677 
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50678     DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50679     {
50680       *this = rhs;
50681     }
50682 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50683 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50684     DisplayPlaneCapabilities2KHR & operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50685     {
50686       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR const *>( &rhs );
50687       return *this;
50688     }
50689 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50690     DisplayPlaneCapabilities2KHR & operator=( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50691     {
50692       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneCapabilities2KHR ) );
50693       return *this;
50694     }
50695 
50696 
operator VkDisplayPlaneCapabilities2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50697     operator VkDisplayPlaneCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT
50698     {
50699       return *reinterpret_cast<const VkDisplayPlaneCapabilities2KHR*>( this );
50700     }
50701 
operator VkDisplayPlaneCapabilities2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50702     operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
50703     {
50704       return *reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( this );
50705     }
50706 
50707 
50708 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50709     auto operator<=>( DisplayPlaneCapabilities2KHR const& ) const = default;
50710 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50711     bool operator==( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50712     {
50713       return ( sType == rhs.sType )
50714           && ( pNext == rhs.pNext )
50715           && ( capabilities == rhs.capabilities );
50716     }
50717 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50718     bool operator!=( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50719     {
50720       return !operator==( rhs );
50721     }
50722 #endif
50723 
50724 
50725 
50726   public:
50727     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR;
50728     void* pNext = {};
50729     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {};
50730 
50731   };
50732   static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), "struct and wrapper have different size!" );
50733   static_assert( std::is_standard_layout<DisplayPlaneCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
50734 
50735   template <>
50736   struct CppType<StructureType, StructureType::eDisplayPlaneCapabilities2KHR>
50737   {
50738     using Type = DisplayPlaneCapabilities2KHR;
50739   };
50740 
50741   struct DisplayPlanePropertiesKHR
50742   {
50743 
50744 
50745 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50746     VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {}, uint32_t currentStackIndex_ = {}) VULKAN_HPP_NOEXCEPT
50747     : currentDisplay( currentDisplay_ ), currentStackIndex( currentStackIndex_ )
50748     {}
50749 
50750     VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50751 
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50752     DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50753     {
50754       *this = rhs;
50755     }
50756 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50757 
operator =VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50758     DisplayPlanePropertiesKHR & operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50759     {
50760       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const *>( &rhs );
50761       return *this;
50762     }
50763 
operator =VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50764     DisplayPlanePropertiesKHR & operator=( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50765     {
50766       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlanePropertiesKHR ) );
50767       return *this;
50768     }
50769 
50770 
operator VkDisplayPlanePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50771     operator VkDisplayPlanePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
50772     {
50773       return *reinterpret_cast<const VkDisplayPlanePropertiesKHR*>( this );
50774     }
50775 
operator VkDisplayPlanePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50776     operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT
50777     {
50778       return *reinterpret_cast<VkDisplayPlanePropertiesKHR*>( this );
50779     }
50780 
50781 
50782 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50783     auto operator<=>( DisplayPlanePropertiesKHR const& ) const = default;
50784 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50785     bool operator==( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50786     {
50787       return ( currentDisplay == rhs.currentDisplay )
50788           && ( currentStackIndex == rhs.currentStackIndex );
50789     }
50790 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50791     bool operator!=( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50792     {
50793       return !operator==( rhs );
50794     }
50795 #endif
50796 
50797 
50798 
50799   public:
50800     VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {};
50801     uint32_t currentStackIndex = {};
50802 
50803   };
50804   static_assert( sizeof( DisplayPlanePropertiesKHR ) == sizeof( VkDisplayPlanePropertiesKHR ), "struct and wrapper have different size!" );
50805   static_assert( std::is_standard_layout<DisplayPlanePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
50806 
50807   struct DisplayPlaneProperties2KHR
50808   {
50809     static const bool allowDuplicate = false;
50810     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneProperties2KHR;
50811 
50812 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50813     VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {}) VULKAN_HPP_NOEXCEPT
50814     : displayPlaneProperties( displayPlaneProperties_ )
50815     {}
50816 
50817     VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50818 
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50819     DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50820     {
50821       *this = rhs;
50822     }
50823 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50824 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50825     DisplayPlaneProperties2KHR & operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50826     {
50827       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR const *>( &rhs );
50828       return *this;
50829     }
50830 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50831     DisplayPlaneProperties2KHR & operator=( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50832     {
50833       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneProperties2KHR ) );
50834       return *this;
50835     }
50836 
50837 
operator VkDisplayPlaneProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50838     operator VkDisplayPlaneProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
50839     {
50840       return *reinterpret_cast<const VkDisplayPlaneProperties2KHR*>( this );
50841     }
50842 
operator VkDisplayPlaneProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50843     operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT
50844     {
50845       return *reinterpret_cast<VkDisplayPlaneProperties2KHR*>( this );
50846     }
50847 
50848 
50849 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50850     auto operator<=>( DisplayPlaneProperties2KHR const& ) const = default;
50851 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50852     bool operator==( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50853     {
50854       return ( sType == rhs.sType )
50855           && ( pNext == rhs.pNext )
50856           && ( displayPlaneProperties == rhs.displayPlaneProperties );
50857     }
50858 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50859     bool operator!=( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50860     {
50861       return !operator==( rhs );
50862     }
50863 #endif
50864 
50865 
50866 
50867   public:
50868     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR;
50869     void* pNext = {};
50870     VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {};
50871 
50872   };
50873   static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), "struct and wrapper have different size!" );
50874   static_assert( std::is_standard_layout<DisplayPlaneProperties2KHR>::value, "struct wrapper is not a standard layout!" );
50875 
50876   template <>
50877   struct CppType<StructureType, StructureType::eDisplayPlaneProperties2KHR>
50878   {
50879     using Type = DisplayPlaneProperties2KHR;
50880   };
50881 
50882   struct DisplayPropertiesKHR
50883   {
50884 
50885 
50886 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50887     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
50888     : display( display_ ), displayName( displayName_ ), physicalDimensions( physicalDimensions_ ), physicalResolution( physicalResolution_ ), supportedTransforms( supportedTransforms_ ), planeReorderPossible( planeReorderPossible_ ), persistentContent( persistentContent_ )
50889     {}
50890 
50891     VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50892 
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50893     DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50894     {
50895       *this = rhs;
50896     }
50897 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50898 
operator =VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50899     DisplayPropertiesKHR & operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50900     {
50901       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const *>( &rhs );
50902       return *this;
50903     }
50904 
operator =VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50905     DisplayPropertiesKHR & operator=( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50906     {
50907       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPropertiesKHR ) );
50908       return *this;
50909     }
50910 
50911 
operator VkDisplayPropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50912     operator VkDisplayPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
50913     {
50914       return *reinterpret_cast<const VkDisplayPropertiesKHR*>( this );
50915     }
50916 
operator VkDisplayPropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50917     operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT
50918     {
50919       return *reinterpret_cast<VkDisplayPropertiesKHR*>( this );
50920     }
50921 
50922 
50923 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50924     auto operator<=>( DisplayPropertiesKHR const& ) const = default;
50925 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50926     bool operator==( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50927     {
50928       return ( display == rhs.display )
50929           && ( displayName == rhs.displayName )
50930           && ( physicalDimensions == rhs.physicalDimensions )
50931           && ( physicalResolution == rhs.physicalResolution )
50932           && ( supportedTransforms == rhs.supportedTransforms )
50933           && ( planeReorderPossible == rhs.planeReorderPossible )
50934           && ( persistentContent == rhs.persistentContent );
50935     }
50936 
operator !=VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50937     bool operator!=( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50938     {
50939       return !operator==( rhs );
50940     }
50941 #endif
50942 
50943 
50944 
50945   public:
50946     VULKAN_HPP_NAMESPACE::DisplayKHR display = {};
50947     const char* displayName = {};
50948     VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {};
50949     VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {};
50950     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
50951     VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {};
50952     VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {};
50953 
50954   };
50955   static_assert( sizeof( DisplayPropertiesKHR ) == sizeof( VkDisplayPropertiesKHR ), "struct and wrapper have different size!" );
50956   static_assert( std::is_standard_layout<DisplayPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
50957 
50958   struct DisplayProperties2KHR
50959   {
50960     static const bool allowDuplicate = false;
50961     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayProperties2KHR;
50962 
50963 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR50964     VULKAN_HPP_CONSTEXPR DisplayProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {}) VULKAN_HPP_NOEXCEPT
50965     : displayProperties( displayProperties_ )
50966     {}
50967 
50968     VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50969 
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR50970     DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50971     {
50972       *this = rhs;
50973     }
50974 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50975 
operator =VULKAN_HPP_NAMESPACE::DisplayProperties2KHR50976     DisplayProperties2KHR & operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50977     {
50978       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR const *>( &rhs );
50979       return *this;
50980     }
50981 
operator =VULKAN_HPP_NAMESPACE::DisplayProperties2KHR50982     DisplayProperties2KHR & operator=( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50983     {
50984       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayProperties2KHR ) );
50985       return *this;
50986     }
50987 
50988 
operator VkDisplayProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR50989     operator VkDisplayProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
50990     {
50991       return *reinterpret_cast<const VkDisplayProperties2KHR*>( this );
50992     }
50993 
operator VkDisplayProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR50994     operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT
50995     {
50996       return *reinterpret_cast<VkDisplayProperties2KHR*>( this );
50997     }
50998 
50999 
51000 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51001     auto operator<=>( DisplayProperties2KHR const& ) const = default;
51002 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51003     bool operator==( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51004     {
51005       return ( sType == rhs.sType )
51006           && ( pNext == rhs.pNext )
51007           && ( displayProperties == rhs.displayProperties );
51008     }
51009 
operator !=VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51010     bool operator!=( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51011     {
51012       return !operator==( rhs );
51013     }
51014 #endif
51015 
51016 
51017 
51018   public:
51019     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR;
51020     void* pNext = {};
51021     VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {};
51022 
51023   };
51024   static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), "struct and wrapper have different size!" );
51025   static_assert( std::is_standard_layout<DisplayProperties2KHR>::value, "struct wrapper is not a standard layout!" );
51026 
51027   template <>
51028   struct CppType<StructureType, StructureType::eDisplayProperties2KHR>
51029   {
51030     using Type = DisplayProperties2KHR;
51031   };
51032 
51033   struct PhysicalDeviceExternalBufferInfo
51034   {
51035     static const bool allowDuplicate = false;
51036     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalBufferInfo;
51037 
51038 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51039     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
51040     : flags( flags_ ), usage( usage_ ), handleType( handleType_ )
51041     {}
51042 
51043     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51044 
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51045     PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51046     {
51047       *this = rhs;
51048     }
51049 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51050 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51051     PhysicalDeviceExternalBufferInfo & operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51052     {
51053       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const *>( &rhs );
51054       return *this;
51055     }
51056 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51057     PhysicalDeviceExternalBufferInfo & operator=( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51058     {
51059       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalBufferInfo ) );
51060       return *this;
51061     }
51062 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51063     PhysicalDeviceExternalBufferInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
51064     {
51065       pNext = pNext_;
51066       return *this;
51067     }
51068 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51069     PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
51070     {
51071       flags = flags_;
51072       return *this;
51073     }
51074 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51075     PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
51076     {
51077       usage = usage_;
51078       return *this;
51079     }
51080 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51081     PhysicalDeviceExternalBufferInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
51082     {
51083       handleType = handleType_;
51084       return *this;
51085     }
51086 
51087 
operator VkPhysicalDeviceExternalBufferInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51088     operator VkPhysicalDeviceExternalBufferInfo const&() const VULKAN_HPP_NOEXCEPT
51089     {
51090       return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( this );
51091     }
51092 
operator VkPhysicalDeviceExternalBufferInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51093     operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT
51094     {
51095       return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>( this );
51096     }
51097 
51098 
51099 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51100     auto operator<=>( PhysicalDeviceExternalBufferInfo const& ) const = default;
51101 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51102     bool operator==( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51103     {
51104       return ( sType == rhs.sType )
51105           && ( pNext == rhs.pNext )
51106           && ( flags == rhs.flags )
51107           && ( usage == rhs.usage )
51108           && ( handleType == rhs.handleType );
51109     }
51110 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51111     bool operator!=( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51112     {
51113       return !operator==( rhs );
51114     }
51115 #endif
51116 
51117 
51118 
51119   public:
51120     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo;
51121     const void* pNext = {};
51122     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
51123     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
51124     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
51125 
51126   };
51127   static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), "struct and wrapper have different size!" );
51128   static_assert( std::is_standard_layout<PhysicalDeviceExternalBufferInfo>::value, "struct wrapper is not a standard layout!" );
51129 
51130   template <>
51131   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalBufferInfo>
51132   {
51133     using Type = PhysicalDeviceExternalBufferInfo;
51134   };
51135   using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
51136 
51137   struct ExternalMemoryProperties
51138   {
51139 
51140 
51141 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties51142     VULKAN_HPP_CONSTEXPR ExternalMemoryProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {}) VULKAN_HPP_NOEXCEPT
51143     : externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ )
51144     {}
51145 
51146     VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51147 
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties51148     ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51149     {
51150       *this = rhs;
51151     }
51152 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51153 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51154     ExternalMemoryProperties & operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51155     {
51156       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const *>( &rhs );
51157       return *this;
51158     }
51159 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51160     ExternalMemoryProperties & operator=( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51161     {
51162       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryProperties ) );
51163       return *this;
51164     }
51165 
51166 
operator VkExternalMemoryProperties const&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51167     operator VkExternalMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
51168     {
51169       return *reinterpret_cast<const VkExternalMemoryProperties*>( this );
51170     }
51171 
operator VkExternalMemoryProperties&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51172     operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT
51173     {
51174       return *reinterpret_cast<VkExternalMemoryProperties*>( this );
51175     }
51176 
51177 
51178 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51179     auto operator<=>( ExternalMemoryProperties const& ) const = default;
51180 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51181     bool operator==( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51182     {
51183       return ( externalMemoryFeatures == rhs.externalMemoryFeatures )
51184           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
51185           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
51186     }
51187 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51188     bool operator!=( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51189     {
51190       return !operator==( rhs );
51191     }
51192 #endif
51193 
51194 
51195 
51196   public:
51197     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {};
51198     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {};
51199     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {};
51200 
51201   };
51202   static_assert( sizeof( ExternalMemoryProperties ) == sizeof( VkExternalMemoryProperties ), "struct and wrapper have different size!" );
51203   static_assert( std::is_standard_layout<ExternalMemoryProperties>::value, "struct wrapper is not a standard layout!" );
51204   using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
51205 
51206   struct ExternalBufferProperties
51207   {
51208     static const bool allowDuplicate = false;
51209     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalBufferProperties;
51210 
51211 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties51212     VULKAN_HPP_CONSTEXPR ExternalBufferProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
51213     : externalMemoryProperties( externalMemoryProperties_ )
51214     {}
51215 
51216     VULKAN_HPP_CONSTEXPR ExternalBufferProperties( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51217 
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties51218     ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51219     {
51220       *this = rhs;
51221     }
51222 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51223 
operator =VULKAN_HPP_NAMESPACE::ExternalBufferProperties51224     ExternalBufferProperties & operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51225     {
51226       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalBufferProperties const *>( &rhs );
51227       return *this;
51228     }
51229 
operator =VULKAN_HPP_NAMESPACE::ExternalBufferProperties51230     ExternalBufferProperties & operator=( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51231     {
51232       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalBufferProperties ) );
51233       return *this;
51234     }
51235 
51236 
operator VkExternalBufferProperties const&VULKAN_HPP_NAMESPACE::ExternalBufferProperties51237     operator VkExternalBufferProperties const&() const VULKAN_HPP_NOEXCEPT
51238     {
51239       return *reinterpret_cast<const VkExternalBufferProperties*>( this );
51240     }
51241 
operator VkExternalBufferProperties&VULKAN_HPP_NAMESPACE::ExternalBufferProperties51242     operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT
51243     {
51244       return *reinterpret_cast<VkExternalBufferProperties*>( this );
51245     }
51246 
51247 
51248 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51249     auto operator<=>( ExternalBufferProperties const& ) const = default;
51250 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalBufferProperties51251     bool operator==( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51252     {
51253       return ( sType == rhs.sType )
51254           && ( pNext == rhs.pNext )
51255           && ( externalMemoryProperties == rhs.externalMemoryProperties );
51256     }
51257 
operator !=VULKAN_HPP_NAMESPACE::ExternalBufferProperties51258     bool operator!=( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51259     {
51260       return !operator==( rhs );
51261     }
51262 #endif
51263 
51264 
51265 
51266   public:
51267     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties;
51268     void* pNext = {};
51269     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
51270 
51271   };
51272   static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), "struct and wrapper have different size!" );
51273   static_assert( std::is_standard_layout<ExternalBufferProperties>::value, "struct wrapper is not a standard layout!" );
51274 
51275   template <>
51276   struct CppType<StructureType, StructureType::eExternalBufferProperties>
51277   {
51278     using Type = ExternalBufferProperties;
51279   };
51280   using ExternalBufferPropertiesKHR = ExternalBufferProperties;
51281 
51282   struct PhysicalDeviceExternalFenceInfo
51283   {
51284     static const bool allowDuplicate = false;
51285     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFenceInfo;
51286 
51287 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51288     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
51289     : handleType( handleType_ )
51290     {}
51291 
51292     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51293 
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51294     PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51295     {
51296       *this = rhs;
51297     }
51298 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51299 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51300     PhysicalDeviceExternalFenceInfo & operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51301     {
51302       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo const *>( &rhs );
51303       return *this;
51304     }
51305 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51306     PhysicalDeviceExternalFenceInfo & operator=( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51307     {
51308       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalFenceInfo ) );
51309       return *this;
51310     }
51311 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51312     PhysicalDeviceExternalFenceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
51313     {
51314       pNext = pNext_;
51315       return *this;
51316     }
51317 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51318     PhysicalDeviceExternalFenceInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
51319     {
51320       handleType = handleType_;
51321       return *this;
51322     }
51323 
51324 
operator VkPhysicalDeviceExternalFenceInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51325     operator VkPhysicalDeviceExternalFenceInfo const&() const VULKAN_HPP_NOEXCEPT
51326     {
51327       return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( this );
51328     }
51329 
operator VkPhysicalDeviceExternalFenceInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51330     operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT
51331     {
51332       return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>( this );
51333     }
51334 
51335 
51336 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51337     auto operator<=>( PhysicalDeviceExternalFenceInfo const& ) const = default;
51338 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51339     bool operator==( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51340     {
51341       return ( sType == rhs.sType )
51342           && ( pNext == rhs.pNext )
51343           && ( handleType == rhs.handleType );
51344     }
51345 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51346     bool operator!=( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51347     {
51348       return !operator==( rhs );
51349     }
51350 #endif
51351 
51352 
51353 
51354   public:
51355     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo;
51356     const void* pNext = {};
51357     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
51358 
51359   };
51360   static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), "struct and wrapper have different size!" );
51361   static_assert( std::is_standard_layout<PhysicalDeviceExternalFenceInfo>::value, "struct wrapper is not a standard layout!" );
51362 
51363   template <>
51364   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFenceInfo>
51365   {
51366     using Type = PhysicalDeviceExternalFenceInfo;
51367   };
51368   using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
51369 
51370   struct ExternalFenceProperties
51371   {
51372     static const bool allowDuplicate = false;
51373     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFenceProperties;
51374 
51375 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties51376     VULKAN_HPP_CONSTEXPR ExternalFenceProperties(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {}) VULKAN_HPP_NOEXCEPT
51377     : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalFenceFeatures( externalFenceFeatures_ )
51378     {}
51379 
51380     VULKAN_HPP_CONSTEXPR ExternalFenceProperties( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51381 
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties51382     ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51383     {
51384       *this = rhs;
51385     }
51386 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51387 
operator =VULKAN_HPP_NAMESPACE::ExternalFenceProperties51388     ExternalFenceProperties & operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51389     {
51390       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFenceProperties const *>( &rhs );
51391       return *this;
51392     }
51393 
operator =VULKAN_HPP_NAMESPACE::ExternalFenceProperties51394     ExternalFenceProperties & operator=( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51395     {
51396       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalFenceProperties ) );
51397       return *this;
51398     }
51399 
51400 
operator VkExternalFenceProperties const&VULKAN_HPP_NAMESPACE::ExternalFenceProperties51401     operator VkExternalFenceProperties const&() const VULKAN_HPP_NOEXCEPT
51402     {
51403       return *reinterpret_cast<const VkExternalFenceProperties*>( this );
51404     }
51405 
operator VkExternalFenceProperties&VULKAN_HPP_NAMESPACE::ExternalFenceProperties51406     operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT
51407     {
51408       return *reinterpret_cast<VkExternalFenceProperties*>( this );
51409     }
51410 
51411 
51412 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51413     auto operator<=>( ExternalFenceProperties const& ) const = default;
51414 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFenceProperties51415     bool operator==( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51416     {
51417       return ( sType == rhs.sType )
51418           && ( pNext == rhs.pNext )
51419           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
51420           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
51421           && ( externalFenceFeatures == rhs.externalFenceFeatures );
51422     }
51423 
operator !=VULKAN_HPP_NAMESPACE::ExternalFenceProperties51424     bool operator!=( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51425     {
51426       return !operator==( rhs );
51427     }
51428 #endif
51429 
51430 
51431 
51432   public:
51433     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties;
51434     void* pNext = {};
51435     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {};
51436     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {};
51437     VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {};
51438 
51439   };
51440   static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), "struct and wrapper have different size!" );
51441   static_assert( std::is_standard_layout<ExternalFenceProperties>::value, "struct wrapper is not a standard layout!" );
51442 
51443   template <>
51444   struct CppType<StructureType, StructureType::eExternalFenceProperties>
51445   {
51446     using Type = ExternalFenceProperties;
51447   };
51448   using ExternalFencePropertiesKHR = ExternalFenceProperties;
51449 
51450   struct ImageFormatProperties
51451   {
51452 
51453 
51454 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties51455     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
51456     : maxExtent( maxExtent_ ), maxMipLevels( maxMipLevels_ ), maxArrayLayers( maxArrayLayers_ ), sampleCounts( sampleCounts_ ), maxResourceSize( maxResourceSize_ )
51457     {}
51458 
51459     VULKAN_HPP_CONSTEXPR ImageFormatProperties( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51460 
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties51461     ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51462     {
51463       *this = rhs;
51464     }
51465 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51466 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties51467     ImageFormatProperties & operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51468     {
51469       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties const *>( &rhs );
51470       return *this;
51471     }
51472 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties51473     ImageFormatProperties & operator=( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51474     {
51475       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageFormatProperties ) );
51476       return *this;
51477     }
51478 
51479 
operator VkImageFormatProperties const&VULKAN_HPP_NAMESPACE::ImageFormatProperties51480     operator VkImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
51481     {
51482       return *reinterpret_cast<const VkImageFormatProperties*>( this );
51483     }
51484 
operator VkImageFormatProperties&VULKAN_HPP_NAMESPACE::ImageFormatProperties51485     operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT
51486     {
51487       return *reinterpret_cast<VkImageFormatProperties*>( this );
51488     }
51489 
51490 
51491 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51492     auto operator<=>( ImageFormatProperties const& ) const = default;
51493 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties51494     bool operator==( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51495     {
51496       return ( maxExtent == rhs.maxExtent )
51497           && ( maxMipLevels == rhs.maxMipLevels )
51498           && ( maxArrayLayers == rhs.maxArrayLayers )
51499           && ( sampleCounts == rhs.sampleCounts )
51500           && ( maxResourceSize == rhs.maxResourceSize );
51501     }
51502 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties51503     bool operator!=( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51504     {
51505       return !operator==( rhs );
51506     }
51507 #endif
51508 
51509 
51510 
51511   public:
51512     VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {};
51513     uint32_t maxMipLevels = {};
51514     uint32_t maxArrayLayers = {};
51515     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
51516     VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {};
51517 
51518   };
51519   static_assert( sizeof( ImageFormatProperties ) == sizeof( VkImageFormatProperties ), "struct and wrapper have different size!" );
51520   static_assert( std::is_standard_layout<ImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
51521 
51522   struct ExternalImageFormatPropertiesNV
51523   {
51524 
51525 
51526 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51527     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
51528     : imageFormatProperties( imageFormatProperties_ ), externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ )
51529     {}
51530 
51531     VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51532 
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51533     ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51534     {
51535       *this = rhs;
51536     }
51537 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51538 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51539     ExternalImageFormatPropertiesNV & operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51540     {
51541       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV const *>( &rhs );
51542       return *this;
51543     }
51544 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51545     ExternalImageFormatPropertiesNV & operator=( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51546     {
51547       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalImageFormatPropertiesNV ) );
51548       return *this;
51549     }
51550 
51551 
operator VkExternalImageFormatPropertiesNV const&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51552     operator VkExternalImageFormatPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
51553     {
51554       return *reinterpret_cast<const VkExternalImageFormatPropertiesNV*>( this );
51555     }
51556 
operator VkExternalImageFormatPropertiesNV&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51557     operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT
51558     {
51559       return *reinterpret_cast<VkExternalImageFormatPropertiesNV*>( this );
51560     }
51561 
51562 
51563 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51564     auto operator<=>( ExternalImageFormatPropertiesNV const& ) const = default;
51565 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51566     bool operator==( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51567     {
51568       return ( imageFormatProperties == rhs.imageFormatProperties )
51569           && ( externalMemoryFeatures == rhs.externalMemoryFeatures )
51570           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
51571           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
51572     }
51573 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51574     bool operator!=( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51575     {
51576       return !operator==( rhs );
51577     }
51578 #endif
51579 
51580 
51581 
51582   public:
51583     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
51584     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {};
51585     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {};
51586     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {};
51587 
51588   };
51589   static_assert( sizeof( ExternalImageFormatPropertiesNV ) == sizeof( VkExternalImageFormatPropertiesNV ), "struct and wrapper have different size!" );
51590   static_assert( std::is_standard_layout<ExternalImageFormatPropertiesNV>::value, "struct wrapper is not a standard layout!" );
51591 
51592   struct PhysicalDeviceExternalSemaphoreInfo
51593   {
51594     static const bool allowDuplicate = false;
51595     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
51596 
51597 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51598     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
51599     : handleType( handleType_ )
51600     {}
51601 
51602     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51603 
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51604     PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51605     {
51606       *this = rhs;
51607     }
51608 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51609 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51610     PhysicalDeviceExternalSemaphoreInfo & operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51611     {
51612       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo const *>( &rhs );
51613       return *this;
51614     }
51615 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51616     PhysicalDeviceExternalSemaphoreInfo & operator=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51617     {
51618       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalSemaphoreInfo ) );
51619       return *this;
51620     }
51621 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51622     PhysicalDeviceExternalSemaphoreInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
51623     {
51624       pNext = pNext_;
51625       return *this;
51626     }
51627 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51628     PhysicalDeviceExternalSemaphoreInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
51629     {
51630       handleType = handleType_;
51631       return *this;
51632     }
51633 
51634 
operator VkPhysicalDeviceExternalSemaphoreInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51635     operator VkPhysicalDeviceExternalSemaphoreInfo const&() const VULKAN_HPP_NOEXCEPT
51636     {
51637       return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( this );
51638     }
51639 
operator VkPhysicalDeviceExternalSemaphoreInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51640     operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT
51641     {
51642       return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>( this );
51643     }
51644 
51645 
51646 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51647     auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const& ) const = default;
51648 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51649     bool operator==( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51650     {
51651       return ( sType == rhs.sType )
51652           && ( pNext == rhs.pNext )
51653           && ( handleType == rhs.handleType );
51654     }
51655 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51656     bool operator!=( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51657     {
51658       return !operator==( rhs );
51659     }
51660 #endif
51661 
51662 
51663 
51664   public:
51665     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
51666     const void* pNext = {};
51667     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
51668 
51669   };
51670   static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), "struct and wrapper have different size!" );
51671   static_assert( std::is_standard_layout<PhysicalDeviceExternalSemaphoreInfo>::value, "struct wrapper is not a standard layout!" );
51672 
51673   template <>
51674   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalSemaphoreInfo>
51675   {
51676     using Type = PhysicalDeviceExternalSemaphoreInfo;
51677   };
51678   using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
51679 
51680   struct ExternalSemaphoreProperties
51681   {
51682     static const bool allowDuplicate = false;
51683     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalSemaphoreProperties;
51684 
51685 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51686     VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {}) VULKAN_HPP_NOEXCEPT
51687     : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalSemaphoreFeatures( externalSemaphoreFeatures_ )
51688     {}
51689 
51690     VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51691 
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51692     ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51693     {
51694       *this = rhs;
51695     }
51696 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51697 
operator =VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51698     ExternalSemaphoreProperties & operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51699     {
51700       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const *>( &rhs );
51701       return *this;
51702     }
51703 
operator =VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51704     ExternalSemaphoreProperties & operator=( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51705     {
51706       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalSemaphoreProperties ) );
51707       return *this;
51708     }
51709 
51710 
operator VkExternalSemaphoreProperties const&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51711     operator VkExternalSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT
51712     {
51713       return *reinterpret_cast<const VkExternalSemaphoreProperties*>( this );
51714     }
51715 
operator VkExternalSemaphoreProperties&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51716     operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
51717     {
51718       return *reinterpret_cast<VkExternalSemaphoreProperties*>( this );
51719     }
51720 
51721 
51722 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51723     auto operator<=>( ExternalSemaphoreProperties const& ) const = default;
51724 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51725     bool operator==( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51726     {
51727       return ( sType == rhs.sType )
51728           && ( pNext == rhs.pNext )
51729           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
51730           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
51731           && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures );
51732     }
51733 
operator !=VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51734     bool operator!=( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51735     {
51736       return !operator==( rhs );
51737     }
51738 #endif
51739 
51740 
51741 
51742   public:
51743     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties;
51744     void* pNext = {};
51745     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {};
51746     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {};
51747     VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {};
51748 
51749   };
51750   static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), "struct and wrapper have different size!" );
51751   static_assert( std::is_standard_layout<ExternalSemaphoreProperties>::value, "struct wrapper is not a standard layout!" );
51752 
51753   template <>
51754   struct CppType<StructureType, StructureType::eExternalSemaphoreProperties>
51755   {
51756     using Type = ExternalSemaphoreProperties;
51757   };
51758   using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
51759 
51760   struct PhysicalDeviceFeatures2
51761   {
51762     static const bool allowDuplicate = false;
51763     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFeatures2;
51764 
51765 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251766     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {}) VULKAN_HPP_NOEXCEPT
51767     : features( features_ )
51768     {}
51769 
51770     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51771 
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251772     PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
51773     {
51774       *this = rhs;
51775     }
51776 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51777 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251778     PhysicalDeviceFeatures2 & operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
51779     {
51780       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 const *>( &rhs );
51781       return *this;
51782     }
51783 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251784     PhysicalDeviceFeatures2 & operator=( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
51785     {
51786       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFeatures2 ) );
51787       return *this;
51788     }
51789 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251790     PhysicalDeviceFeatures2 & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
51791     {
51792       pNext = pNext_;
51793       return *this;
51794     }
51795 
setFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251796     PhysicalDeviceFeatures2 & setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & features_ ) VULKAN_HPP_NOEXCEPT
51797     {
51798       features = features_;
51799       return *this;
51800     }
51801 
51802 
operator VkPhysicalDeviceFeatures2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251803     operator VkPhysicalDeviceFeatures2 const&() const VULKAN_HPP_NOEXCEPT
51804     {
51805       return *reinterpret_cast<const VkPhysicalDeviceFeatures2*>( this );
51806     }
51807 
operator VkPhysicalDeviceFeatures2&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251808     operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT
51809     {
51810       return *reinterpret_cast<VkPhysicalDeviceFeatures2*>( this );
51811     }
51812 
51813 
51814 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51815     auto operator<=>( PhysicalDeviceFeatures2 const& ) const = default;
51816 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251817     bool operator==( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51818     {
51819       return ( sType == rhs.sType )
51820           && ( pNext == rhs.pNext )
51821           && ( features == rhs.features );
51822     }
51823 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251824     bool operator!=( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51825     {
51826       return !operator==( rhs );
51827     }
51828 #endif
51829 
51830 
51831 
51832   public:
51833     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2;
51834     void* pNext = {};
51835     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {};
51836 
51837   };
51838   static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), "struct and wrapper have different size!" );
51839   static_assert( std::is_standard_layout<PhysicalDeviceFeatures2>::value, "struct wrapper is not a standard layout!" );
51840 
51841   template <>
51842   struct CppType<StructureType, StructureType::ePhysicalDeviceFeatures2>
51843   {
51844     using Type = PhysicalDeviceFeatures2;
51845   };
51846   using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
51847 
51848   struct FormatProperties
51849   {
51850 
51851 
51852 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties51853     VULKAN_HPP_CONSTEXPR FormatProperties(VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {}) VULKAN_HPP_NOEXCEPT
51854     : linearTilingFeatures( linearTilingFeatures_ ), optimalTilingFeatures( optimalTilingFeatures_ ), bufferFeatures( bufferFeatures_ )
51855     {}
51856 
51857     VULKAN_HPP_CONSTEXPR FormatProperties( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51858 
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties51859     FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51860     {
51861       *this = rhs;
51862     }
51863 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51864 
operator =VULKAN_HPP_NAMESPACE::FormatProperties51865     FormatProperties & operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51866     {
51867       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties const *>( &rhs );
51868       return *this;
51869     }
51870 
operator =VULKAN_HPP_NAMESPACE::FormatProperties51871     FormatProperties & operator=( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51872     {
51873       memcpy( static_cast<void *>( this ), &rhs, sizeof( FormatProperties ) );
51874       return *this;
51875     }
51876 
51877 
operator VkFormatProperties const&VULKAN_HPP_NAMESPACE::FormatProperties51878     operator VkFormatProperties const&() const VULKAN_HPP_NOEXCEPT
51879     {
51880       return *reinterpret_cast<const VkFormatProperties*>( this );
51881     }
51882 
operator VkFormatProperties&VULKAN_HPP_NAMESPACE::FormatProperties51883     operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT
51884     {
51885       return *reinterpret_cast<VkFormatProperties*>( this );
51886     }
51887 
51888 
51889 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51890     auto operator<=>( FormatProperties const& ) const = default;
51891 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties51892     bool operator==( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51893     {
51894       return ( linearTilingFeatures == rhs.linearTilingFeatures )
51895           && ( optimalTilingFeatures == rhs.optimalTilingFeatures )
51896           && ( bufferFeatures == rhs.bufferFeatures );
51897     }
51898 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties51899     bool operator!=( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51900     {
51901       return !operator==( rhs );
51902     }
51903 #endif
51904 
51905 
51906 
51907   public:
51908     VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {};
51909     VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {};
51910     VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {};
51911 
51912   };
51913   static_assert( sizeof( FormatProperties ) == sizeof( VkFormatProperties ), "struct and wrapper have different size!" );
51914   static_assert( std::is_standard_layout<FormatProperties>::value, "struct wrapper is not a standard layout!" );
51915 
51916   struct FormatProperties2
51917   {
51918     static const bool allowDuplicate = false;
51919     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties2;
51920 
51921 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties251922     VULKAN_HPP_CONSTEXPR FormatProperties2(VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {}) VULKAN_HPP_NOEXCEPT
51923     : formatProperties( formatProperties_ )
51924     {}
51925 
51926     VULKAN_HPP_CONSTEXPR FormatProperties2( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51927 
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties251928     FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
51929     {
51930       *this = rhs;
51931     }
51932 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51933 
operator =VULKAN_HPP_NAMESPACE::FormatProperties251934     FormatProperties2 & operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
51935     {
51936       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties2 const *>( &rhs );
51937       return *this;
51938     }
51939 
operator =VULKAN_HPP_NAMESPACE::FormatProperties251940     FormatProperties2 & operator=( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
51941     {
51942       memcpy( static_cast<void *>( this ), &rhs, sizeof( FormatProperties2 ) );
51943       return *this;
51944     }
51945 
51946 
operator VkFormatProperties2 const&VULKAN_HPP_NAMESPACE::FormatProperties251947     operator VkFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
51948     {
51949       return *reinterpret_cast<const VkFormatProperties2*>( this );
51950     }
51951 
operator VkFormatProperties2&VULKAN_HPP_NAMESPACE::FormatProperties251952     operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT
51953     {
51954       return *reinterpret_cast<VkFormatProperties2*>( this );
51955     }
51956 
51957 
51958 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51959     auto operator<=>( FormatProperties2 const& ) const = default;
51960 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties251961     bool operator==( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51962     {
51963       return ( sType == rhs.sType )
51964           && ( pNext == rhs.pNext )
51965           && ( formatProperties == rhs.formatProperties );
51966     }
51967 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties251968     bool operator!=( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51969     {
51970       return !operator==( rhs );
51971     }
51972 #endif
51973 
51974 
51975 
51976   public:
51977     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2;
51978     void* pNext = {};
51979     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {};
51980 
51981   };
51982   static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), "struct and wrapper have different size!" );
51983   static_assert( std::is_standard_layout<FormatProperties2>::value, "struct wrapper is not a standard layout!" );
51984 
51985   template <>
51986   struct CppType<StructureType, StructureType::eFormatProperties2>
51987   {
51988     using Type = FormatProperties2;
51989   };
51990   using FormatProperties2KHR = FormatProperties2;
51991 
51992   struct PhysicalDeviceFragmentShadingRateKHR
51993   {
51994     static const bool allowDuplicate = false;
51995     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
51996 
51997 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR51998     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR(VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}) VULKAN_HPP_NOEXCEPT
51999     : sampleCounts( sampleCounts_ ), fragmentSize( fragmentSize_ )
52000     {}
52001 
52002     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52003 
PhysicalDeviceFragmentShadingRateKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52004     PhysicalDeviceFragmentShadingRateKHR( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52005     {
52006       *this = rhs;
52007     }
52008 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52009 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52010     PhysicalDeviceFragmentShadingRateKHR & operator=( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52011     {
52012       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR const *>( &rhs );
52013       return *this;
52014     }
52015 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52016     PhysicalDeviceFragmentShadingRateKHR & operator=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52017     {
52018       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRateKHR ) );
52019       return *this;
52020     }
52021 
52022 
operator VkPhysicalDeviceFragmentShadingRateKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52023     operator VkPhysicalDeviceFragmentShadingRateKHR const&() const VULKAN_HPP_NOEXCEPT
52024     {
52025       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateKHR*>( this );
52026     }
52027 
operator VkPhysicalDeviceFragmentShadingRateKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52028     operator VkPhysicalDeviceFragmentShadingRateKHR &() VULKAN_HPP_NOEXCEPT
52029     {
52030       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR*>( this );
52031     }
52032 
52033 
52034 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52035     auto operator<=>( PhysicalDeviceFragmentShadingRateKHR const& ) const = default;
52036 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52037     bool operator==( PhysicalDeviceFragmentShadingRateKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
52038     {
52039       return ( sType == rhs.sType )
52040           && ( pNext == rhs.pNext )
52041           && ( sampleCounts == rhs.sampleCounts )
52042           && ( fragmentSize == rhs.fragmentSize );
52043     }
52044 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52045     bool operator!=( PhysicalDeviceFragmentShadingRateKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
52046     {
52047       return !operator==( rhs );
52048     }
52049 #endif
52050 
52051 
52052 
52053   public:
52054     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
52055     void* pNext = {};
52056     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
52057     VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
52058 
52059   };
52060   static_assert( sizeof( PhysicalDeviceFragmentShadingRateKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRateKHR ), "struct and wrapper have different size!" );
52061   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRateKHR>::value, "struct wrapper is not a standard layout!" );
52062 
52063   template <>
52064   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateKHR>
52065   {
52066     using Type = PhysicalDeviceFragmentShadingRateKHR;
52067   };
52068 
52069   struct PhysicalDeviceImageFormatInfo2
52070   {
52071     static const bool allowDuplicate = false;
52072     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageFormatInfo2;
52073 
52074 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252075     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
52076     : format( format_ ), type( type_ ), tiling( tiling_ ), usage( usage_ ), flags( flags_ )
52077     {}
52078 
52079     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52080 
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252081     PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
52082     {
52083       *this = rhs;
52084     }
52085 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52086 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252087     PhysicalDeviceImageFormatInfo2 & operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
52088     {
52089       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 const *>( &rhs );
52090       return *this;
52091     }
52092 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252093     PhysicalDeviceImageFormatInfo2 & operator=( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
52094     {
52095       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageFormatInfo2 ) );
52096       return *this;
52097     }
52098 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252099     PhysicalDeviceImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
52100     {
52101       pNext = pNext_;
52102       return *this;
52103     }
52104 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252105     PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
52106     {
52107       format = format_;
52108       return *this;
52109     }
52110 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252111     PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
52112     {
52113       type = type_;
52114       return *this;
52115     }
52116 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252117     PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
52118     {
52119       tiling = tiling_;
52120       return *this;
52121     }
52122 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252123     PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
52124     {
52125       usage = usage_;
52126       return *this;
52127     }
52128 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252129     PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
52130     {
52131       flags = flags_;
52132       return *this;
52133     }
52134 
52135 
operator VkPhysicalDeviceImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252136     operator VkPhysicalDeviceImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT
52137     {
52138       return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( this );
52139     }
52140 
operator VkPhysicalDeviceImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252141     operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
52142     {
52143       return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>( this );
52144     }
52145 
52146 
52147 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52148     auto operator<=>( PhysicalDeviceImageFormatInfo2 const& ) const = default;
52149 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252150     bool operator==( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52151     {
52152       return ( sType == rhs.sType )
52153           && ( pNext == rhs.pNext )
52154           && ( format == rhs.format )
52155           && ( type == rhs.type )
52156           && ( tiling == rhs.tiling )
52157           && ( usage == rhs.usage )
52158           && ( flags == rhs.flags );
52159     }
52160 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252161     bool operator!=( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52162     {
52163       return !operator==( rhs );
52164     }
52165 #endif
52166 
52167 
52168 
52169   public:
52170     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2;
52171     const void* pNext = {};
52172     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
52173     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
52174     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
52175     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
52176     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
52177 
52178   };
52179   static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), "struct and wrapper have different size!" );
52180   static_assert( std::is_standard_layout<PhysicalDeviceImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
52181 
52182   template <>
52183   struct CppType<StructureType, StructureType::ePhysicalDeviceImageFormatInfo2>
52184   {
52185     using Type = PhysicalDeviceImageFormatInfo2;
52186   };
52187   using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
52188 
52189   struct ImageFormatProperties2
52190   {
52191     static const bool allowDuplicate = false;
52192     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatProperties2;
52193 
52194 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties252195     VULKAN_HPP_CONSTEXPR ImageFormatProperties2(VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}) VULKAN_HPP_NOEXCEPT
52196     : imageFormatProperties( imageFormatProperties_ )
52197     {}
52198 
52199     VULKAN_HPP_CONSTEXPR ImageFormatProperties2( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52200 
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties252201     ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52202     {
52203       *this = rhs;
52204     }
52205 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52206 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties252207     ImageFormatProperties2 & operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52208     {
52209       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties2 const *>( &rhs );
52210       return *this;
52211     }
52212 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties252213     ImageFormatProperties2 & operator=( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52214     {
52215       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageFormatProperties2 ) );
52216       return *this;
52217     }
52218 
52219 
operator VkImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::ImageFormatProperties252220     operator VkImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
52221     {
52222       return *reinterpret_cast<const VkImageFormatProperties2*>( this );
52223     }
52224 
operator VkImageFormatProperties2&VULKAN_HPP_NAMESPACE::ImageFormatProperties252225     operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
52226     {
52227       return *reinterpret_cast<VkImageFormatProperties2*>( this );
52228     }
52229 
52230 
52231 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52232     auto operator<=>( ImageFormatProperties2 const& ) const = default;
52233 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties252234     bool operator==( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52235     {
52236       return ( sType == rhs.sType )
52237           && ( pNext == rhs.pNext )
52238           && ( imageFormatProperties == rhs.imageFormatProperties );
52239     }
52240 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties252241     bool operator!=( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52242     {
52243       return !operator==( rhs );
52244     }
52245 #endif
52246 
52247 
52248 
52249   public:
52250     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2;
52251     void* pNext = {};
52252     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
52253 
52254   };
52255   static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), "struct and wrapper have different size!" );
52256   static_assert( std::is_standard_layout<ImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
52257 
52258   template <>
52259   struct CppType<StructureType, StructureType::eImageFormatProperties2>
52260   {
52261     using Type = ImageFormatProperties2;
52262   };
52263   using ImageFormatProperties2KHR = ImageFormatProperties2;
52264 
52265   struct MemoryType
52266   {
52267 
52268 
52269 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType52270     VULKAN_HPP_CONSTEXPR MemoryType(VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, uint32_t heapIndex_ = {}) VULKAN_HPP_NOEXCEPT
52271     : propertyFlags( propertyFlags_ ), heapIndex( heapIndex_ )
52272     {}
52273 
52274     VULKAN_HPP_CONSTEXPR MemoryType( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52275 
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType52276     MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
52277     {
52278       *this = rhs;
52279     }
52280 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52281 
operator =VULKAN_HPP_NAMESPACE::MemoryType52282     MemoryType & operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
52283     {
52284       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryType const *>( &rhs );
52285       return *this;
52286     }
52287 
operator =VULKAN_HPP_NAMESPACE::MemoryType52288     MemoryType & operator=( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
52289     {
52290       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryType ) );
52291       return *this;
52292     }
52293 
52294 
operator VkMemoryType const&VULKAN_HPP_NAMESPACE::MemoryType52295     operator VkMemoryType const&() const VULKAN_HPP_NOEXCEPT
52296     {
52297       return *reinterpret_cast<const VkMemoryType*>( this );
52298     }
52299 
operator VkMemoryType&VULKAN_HPP_NAMESPACE::MemoryType52300     operator VkMemoryType &() VULKAN_HPP_NOEXCEPT
52301     {
52302       return *reinterpret_cast<VkMemoryType*>( this );
52303     }
52304 
52305 
52306 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52307     auto operator<=>( MemoryType const& ) const = default;
52308 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryType52309     bool operator==( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT
52310     {
52311       return ( propertyFlags == rhs.propertyFlags )
52312           && ( heapIndex == rhs.heapIndex );
52313     }
52314 
operator !=VULKAN_HPP_NAMESPACE::MemoryType52315     bool operator!=( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT
52316     {
52317       return !operator==( rhs );
52318     }
52319 #endif
52320 
52321 
52322 
52323   public:
52324     VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {};
52325     uint32_t heapIndex = {};
52326 
52327   };
52328   static_assert( sizeof( MemoryType ) == sizeof( VkMemoryType ), "struct and wrapper have different size!" );
52329   static_assert( std::is_standard_layout<MemoryType>::value, "struct wrapper is not a standard layout!" );
52330 
52331   struct MemoryHeap
52332   {
52333 
52334 
52335 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap52336     VULKAN_HPP_CONSTEXPR MemoryHeap(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
52337     : size( size_ ), flags( flags_ )
52338     {}
52339 
52340     VULKAN_HPP_CONSTEXPR MemoryHeap( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52341 
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap52342     MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
52343     {
52344       *this = rhs;
52345     }
52346 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52347 
operator =VULKAN_HPP_NAMESPACE::MemoryHeap52348     MemoryHeap & operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
52349     {
52350       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHeap const *>( &rhs );
52351       return *this;
52352     }
52353 
operator =VULKAN_HPP_NAMESPACE::MemoryHeap52354     MemoryHeap & operator=( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
52355     {
52356       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryHeap ) );
52357       return *this;
52358     }
52359 
52360 
operator VkMemoryHeap const&VULKAN_HPP_NAMESPACE::MemoryHeap52361     operator VkMemoryHeap const&() const VULKAN_HPP_NOEXCEPT
52362     {
52363       return *reinterpret_cast<const VkMemoryHeap*>( this );
52364     }
52365 
operator VkMemoryHeap&VULKAN_HPP_NAMESPACE::MemoryHeap52366     operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT
52367     {
52368       return *reinterpret_cast<VkMemoryHeap*>( this );
52369     }
52370 
52371 
52372 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52373     auto operator<=>( MemoryHeap const& ) const = default;
52374 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHeap52375     bool operator==( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT
52376     {
52377       return ( size == rhs.size )
52378           && ( flags == rhs.flags );
52379     }
52380 
operator !=VULKAN_HPP_NAMESPACE::MemoryHeap52381     bool operator!=( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT
52382     {
52383       return !operator==( rhs );
52384     }
52385 #endif
52386 
52387 
52388 
52389   public:
52390     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
52391     VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {};
52392 
52393   };
52394   static_assert( sizeof( MemoryHeap ) == sizeof( VkMemoryHeap ), "struct and wrapper have different size!" );
52395   static_assert( std::is_standard_layout<MemoryHeap>::value, "struct wrapper is not a standard layout!" );
52396 
52397   struct PhysicalDeviceMemoryProperties
52398   {
52399 
52400 
52401 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52402     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
52403     : memoryTypeCount( memoryTypeCount_ ), memoryTypes( memoryTypes_ ), memoryHeapCount( memoryHeapCount_ ), memoryHeaps( memoryHeaps_ )
52404     {}
52405 
52406     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52407 
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52408     PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52409     {
52410       *this = rhs;
52411     }
52412 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52413 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52414     PhysicalDeviceMemoryProperties & operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52415     {
52416       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const *>( &rhs );
52417       return *this;
52418     }
52419 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52420     PhysicalDeviceMemoryProperties & operator=( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52421     {
52422       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryProperties ) );
52423       return *this;
52424     }
52425 
52426 
operator VkPhysicalDeviceMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52427     operator VkPhysicalDeviceMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
52428     {
52429       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties*>( this );
52430     }
52431 
operator VkPhysicalDeviceMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52432     operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT
52433     {
52434       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( this );
52435     }
52436 
52437 
52438 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52439     auto operator<=>( PhysicalDeviceMemoryProperties const& ) const = default;
52440 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52441     bool operator==( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52442     {
52443       return ( memoryTypeCount == rhs.memoryTypeCount )
52444           && ( memoryTypes == rhs.memoryTypes )
52445           && ( memoryHeapCount == rhs.memoryHeapCount )
52446           && ( memoryHeaps == rhs.memoryHeaps );
52447     }
52448 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52449     bool operator!=( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52450     {
52451       return !operator==( rhs );
52452     }
52453 #endif
52454 
52455 
52456 
52457   public:
52458     uint32_t memoryTypeCount = {};
52459     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> memoryTypes = {};
52460     uint32_t memoryHeapCount = {};
52461     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> memoryHeaps = {};
52462 
52463   };
52464   static_assert( sizeof( PhysicalDeviceMemoryProperties ) == sizeof( VkPhysicalDeviceMemoryProperties ), "struct and wrapper have different size!" );
52465   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties>::value, "struct wrapper is not a standard layout!" );
52466 
52467   struct PhysicalDeviceMemoryProperties2
52468   {
52469     static const bool allowDuplicate = false;
52470     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryProperties2;
52471 
52472 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252473     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
52474     : memoryProperties( memoryProperties_ )
52475     {}
52476 
52477     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52478 
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252479     PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52480     {
52481       *this = rhs;
52482     }
52483 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52484 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252485     PhysicalDeviceMemoryProperties2 & operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52486     {
52487       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 const *>( &rhs );
52488       return *this;
52489     }
52490 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252491     PhysicalDeviceMemoryProperties2 & operator=( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52492     {
52493       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryProperties2 ) );
52494       return *this;
52495     }
52496 
52497 
operator VkPhysicalDeviceMemoryProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252498     operator VkPhysicalDeviceMemoryProperties2 const&() const VULKAN_HPP_NOEXCEPT
52499     {
52500       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2*>( this );
52501     }
52502 
operator VkPhysicalDeviceMemoryProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252503     operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT
52504     {
52505       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( this );
52506     }
52507 
52508 
52509 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52510     auto operator<=>( PhysicalDeviceMemoryProperties2 const& ) const = default;
52511 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252512     bool operator==( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52513     {
52514       return ( sType == rhs.sType )
52515           && ( pNext == rhs.pNext )
52516           && ( memoryProperties == rhs.memoryProperties );
52517     }
52518 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252519     bool operator!=( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52520     {
52521       return !operator==( rhs );
52522     }
52523 #endif
52524 
52525 
52526 
52527   public:
52528     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2;
52529     void* pNext = {};
52530     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {};
52531 
52532   };
52533   static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), "struct and wrapper have different size!" );
52534   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties2>::value, "struct wrapper is not a standard layout!" );
52535 
52536   template <>
52537   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryProperties2>
52538   {
52539     using Type = PhysicalDeviceMemoryProperties2;
52540   };
52541   using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
52542 
52543   struct MultisamplePropertiesEXT
52544   {
52545     static const bool allowDuplicate = false;
52546     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisamplePropertiesEXT;
52547 
52548 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52549     VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}) VULKAN_HPP_NOEXCEPT
52550     : maxSampleLocationGridSize( maxSampleLocationGridSize_ )
52551     {}
52552 
52553     VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52554 
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52555     MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52556     {
52557       *this = rhs;
52558     }
52559 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52560 
operator =VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52561     MultisamplePropertiesEXT & operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52562     {
52563       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT const *>( &rhs );
52564       return *this;
52565     }
52566 
operator =VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52567     MultisamplePropertiesEXT & operator=( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52568     {
52569       memcpy( static_cast<void *>( this ), &rhs, sizeof( MultisamplePropertiesEXT ) );
52570       return *this;
52571     }
52572 
52573 
operator VkMultisamplePropertiesEXT const&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52574     operator VkMultisamplePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
52575     {
52576       return *reinterpret_cast<const VkMultisamplePropertiesEXT*>( this );
52577     }
52578 
operator VkMultisamplePropertiesEXT&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52579     operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT
52580     {
52581       return *reinterpret_cast<VkMultisamplePropertiesEXT*>( this );
52582     }
52583 
52584 
52585 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52586     auto operator<=>( MultisamplePropertiesEXT const& ) const = default;
52587 #else
operator ==VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52588     bool operator==( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
52589     {
52590       return ( sType == rhs.sType )
52591           && ( pNext == rhs.pNext )
52592           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize );
52593     }
52594 
operator !=VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52595     bool operator!=( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
52596     {
52597       return !operator==( rhs );
52598     }
52599 #endif
52600 
52601 
52602 
52603   public:
52604     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT;
52605     void* pNext = {};
52606     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
52607 
52608   };
52609   static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), "struct and wrapper have different size!" );
52610   static_assert( std::is_standard_layout<MultisamplePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
52611 
52612   template <>
52613   struct CppType<StructureType, StructureType::eMultisamplePropertiesEXT>
52614   {
52615     using Type = MultisamplePropertiesEXT;
52616   };
52617 
52618   struct PhysicalDeviceLimits
52619   {
52620 
52621 
52622 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52623     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
52624     : 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_ )
52625     {}
52626 
52627     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52628 
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52629     PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
52630     {
52631       *this = rhs;
52632     }
52633 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52634 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52635     PhysicalDeviceLimits & operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
52636     {
52637       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const *>( &rhs );
52638       return *this;
52639     }
52640 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52641     PhysicalDeviceLimits & operator=( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
52642     {
52643       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceLimits ) );
52644       return *this;
52645     }
52646 
52647 
operator VkPhysicalDeviceLimits const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52648     operator VkPhysicalDeviceLimits const&() const VULKAN_HPP_NOEXCEPT
52649     {
52650       return *reinterpret_cast<const VkPhysicalDeviceLimits*>( this );
52651     }
52652 
operator VkPhysicalDeviceLimits&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52653     operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT
52654     {
52655       return *reinterpret_cast<VkPhysicalDeviceLimits*>( this );
52656     }
52657 
52658 
52659 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52660     auto operator<=>( PhysicalDeviceLimits const& ) const = default;
52661 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52662     bool operator==( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT
52663     {
52664       return ( maxImageDimension1D == rhs.maxImageDimension1D )
52665           && ( maxImageDimension2D == rhs.maxImageDimension2D )
52666           && ( maxImageDimension3D == rhs.maxImageDimension3D )
52667           && ( maxImageDimensionCube == rhs.maxImageDimensionCube )
52668           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
52669           && ( maxTexelBufferElements == rhs.maxTexelBufferElements )
52670           && ( maxUniformBufferRange == rhs.maxUniformBufferRange )
52671           && ( maxStorageBufferRange == rhs.maxStorageBufferRange )
52672           && ( maxPushConstantsSize == rhs.maxPushConstantsSize )
52673           && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount )
52674           && ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount )
52675           && ( bufferImageGranularity == rhs.bufferImageGranularity )
52676           && ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize )
52677           && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets )
52678           && ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers )
52679           && ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers )
52680           && ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers )
52681           && ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages )
52682           && ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages )
52683           && ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments )
52684           && ( maxPerStageResources == rhs.maxPerStageResources )
52685           && ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers )
52686           && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers )
52687           && ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic )
52688           && ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers )
52689           && ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic )
52690           && ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages )
52691           && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages )
52692           && ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments )
52693           && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes )
52694           && ( maxVertexInputBindings == rhs.maxVertexInputBindings )
52695           && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset )
52696           && ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride )
52697           && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents )
52698           && ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel )
52699           && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize )
52700           && ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents )
52701           && ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents )
52702           && ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents )
52703           && ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents )
52704           && ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents )
52705           && ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents )
52706           && ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations )
52707           && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents )
52708           && ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents )
52709           && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices )
52710           && ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents )
52711           && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents )
52712           && ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments )
52713           && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments )
52714           && ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources )
52715           && ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize )
52716           && ( maxComputeWorkGroupCount == rhs.maxComputeWorkGroupCount )
52717           && ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations )
52718           && ( maxComputeWorkGroupSize == rhs.maxComputeWorkGroupSize )
52719           && ( subPixelPrecisionBits == rhs.subPixelPrecisionBits )
52720           && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits )
52721           && ( mipmapPrecisionBits == rhs.mipmapPrecisionBits )
52722           && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue )
52723           && ( maxDrawIndirectCount == rhs.maxDrawIndirectCount )
52724           && ( maxSamplerLodBias == rhs.maxSamplerLodBias )
52725           && ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy )
52726           && ( maxViewports == rhs.maxViewports )
52727           && ( maxViewportDimensions == rhs.maxViewportDimensions )
52728           && ( viewportBoundsRange == rhs.viewportBoundsRange )
52729           && ( viewportSubPixelBits == rhs.viewportSubPixelBits )
52730           && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment )
52731           && ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment )
52732           && ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment )
52733           && ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment )
52734           && ( minTexelOffset == rhs.minTexelOffset )
52735           && ( maxTexelOffset == rhs.maxTexelOffset )
52736           && ( minTexelGatherOffset == rhs.minTexelGatherOffset )
52737           && ( maxTexelGatherOffset == rhs.maxTexelGatherOffset )
52738           && ( minInterpolationOffset == rhs.minInterpolationOffset )
52739           && ( maxInterpolationOffset == rhs.maxInterpolationOffset )
52740           && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits )
52741           && ( maxFramebufferWidth == rhs.maxFramebufferWidth )
52742           && ( maxFramebufferHeight == rhs.maxFramebufferHeight )
52743           && ( maxFramebufferLayers == rhs.maxFramebufferLayers )
52744           && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts )
52745           && ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts )
52746           && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts )
52747           && ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts )
52748           && ( maxColorAttachments == rhs.maxColorAttachments )
52749           && ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts )
52750           && ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts )
52751           && ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts )
52752           && ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts )
52753           && ( storageImageSampleCounts == rhs.storageImageSampleCounts )
52754           && ( maxSampleMaskWords == rhs.maxSampleMaskWords )
52755           && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics )
52756           && ( timestampPeriod == rhs.timestampPeriod )
52757           && ( maxClipDistances == rhs.maxClipDistances )
52758           && ( maxCullDistances == rhs.maxCullDistances )
52759           && ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances )
52760           && ( discreteQueuePriorities == rhs.discreteQueuePriorities )
52761           && ( pointSizeRange == rhs.pointSizeRange )
52762           && ( lineWidthRange == rhs.lineWidthRange )
52763           && ( pointSizeGranularity == rhs.pointSizeGranularity )
52764           && ( lineWidthGranularity == rhs.lineWidthGranularity )
52765           && ( strictLines == rhs.strictLines )
52766           && ( standardSampleLocations == rhs.standardSampleLocations )
52767           && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment )
52768           && ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment )
52769           && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize );
52770     }
52771 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52772     bool operator!=( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT
52773     {
52774       return !operator==( rhs );
52775     }
52776 #endif
52777 
52778 
52779 
52780   public:
52781     uint32_t maxImageDimension1D = {};
52782     uint32_t maxImageDimension2D = {};
52783     uint32_t maxImageDimension3D = {};
52784     uint32_t maxImageDimensionCube = {};
52785     uint32_t maxImageArrayLayers = {};
52786     uint32_t maxTexelBufferElements = {};
52787     uint32_t maxUniformBufferRange = {};
52788     uint32_t maxStorageBufferRange = {};
52789     uint32_t maxPushConstantsSize = {};
52790     uint32_t maxMemoryAllocationCount = {};
52791     uint32_t maxSamplerAllocationCount = {};
52792     VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {};
52793     VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {};
52794     uint32_t maxBoundDescriptorSets = {};
52795     uint32_t maxPerStageDescriptorSamplers = {};
52796     uint32_t maxPerStageDescriptorUniformBuffers = {};
52797     uint32_t maxPerStageDescriptorStorageBuffers = {};
52798     uint32_t maxPerStageDescriptorSampledImages = {};
52799     uint32_t maxPerStageDescriptorStorageImages = {};
52800     uint32_t maxPerStageDescriptorInputAttachments = {};
52801     uint32_t maxPerStageResources = {};
52802     uint32_t maxDescriptorSetSamplers = {};
52803     uint32_t maxDescriptorSetUniformBuffers = {};
52804     uint32_t maxDescriptorSetUniformBuffersDynamic = {};
52805     uint32_t maxDescriptorSetStorageBuffers = {};
52806     uint32_t maxDescriptorSetStorageBuffersDynamic = {};
52807     uint32_t maxDescriptorSetSampledImages = {};
52808     uint32_t maxDescriptorSetStorageImages = {};
52809     uint32_t maxDescriptorSetInputAttachments = {};
52810     uint32_t maxVertexInputAttributes = {};
52811     uint32_t maxVertexInputBindings = {};
52812     uint32_t maxVertexInputAttributeOffset = {};
52813     uint32_t maxVertexInputBindingStride = {};
52814     uint32_t maxVertexOutputComponents = {};
52815     uint32_t maxTessellationGenerationLevel = {};
52816     uint32_t maxTessellationPatchSize = {};
52817     uint32_t maxTessellationControlPerVertexInputComponents = {};
52818     uint32_t maxTessellationControlPerVertexOutputComponents = {};
52819     uint32_t maxTessellationControlPerPatchOutputComponents = {};
52820     uint32_t maxTessellationControlTotalOutputComponents = {};
52821     uint32_t maxTessellationEvaluationInputComponents = {};
52822     uint32_t maxTessellationEvaluationOutputComponents = {};
52823     uint32_t maxGeometryShaderInvocations = {};
52824     uint32_t maxGeometryInputComponents = {};
52825     uint32_t maxGeometryOutputComponents = {};
52826     uint32_t maxGeometryOutputVertices = {};
52827     uint32_t maxGeometryTotalOutputComponents = {};
52828     uint32_t maxFragmentInputComponents = {};
52829     uint32_t maxFragmentOutputAttachments = {};
52830     uint32_t maxFragmentDualSrcAttachments = {};
52831     uint32_t maxFragmentCombinedOutputResources = {};
52832     uint32_t maxComputeSharedMemorySize = {};
52833     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupCount = {};
52834     uint32_t maxComputeWorkGroupInvocations = {};
52835     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupSize = {};
52836     uint32_t subPixelPrecisionBits = {};
52837     uint32_t subTexelPrecisionBits = {};
52838     uint32_t mipmapPrecisionBits = {};
52839     uint32_t maxDrawIndexedIndexValue = {};
52840     uint32_t maxDrawIndirectCount = {};
52841     float maxSamplerLodBias = {};
52842     float maxSamplerAnisotropy = {};
52843     uint32_t maxViewports = {};
52844     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 2> maxViewportDimensions = {};
52845     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> viewportBoundsRange = {};
52846     uint32_t viewportSubPixelBits = {};
52847     size_t minMemoryMapAlignment = {};
52848     VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {};
52849     VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {};
52850     VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {};
52851     int32_t minTexelOffset = {};
52852     uint32_t maxTexelOffset = {};
52853     int32_t minTexelGatherOffset = {};
52854     uint32_t maxTexelGatherOffset = {};
52855     float minInterpolationOffset = {};
52856     float maxInterpolationOffset = {};
52857     uint32_t subPixelInterpolationOffsetBits = {};
52858     uint32_t maxFramebufferWidth = {};
52859     uint32_t maxFramebufferHeight = {};
52860     uint32_t maxFramebufferLayers = {};
52861     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {};
52862     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {};
52863     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {};
52864     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {};
52865     uint32_t maxColorAttachments = {};
52866     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {};
52867     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {};
52868     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {};
52869     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {};
52870     VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {};
52871     uint32_t maxSampleMaskWords = {};
52872     VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {};
52873     float timestampPeriod = {};
52874     uint32_t maxClipDistances = {};
52875     uint32_t maxCullDistances = {};
52876     uint32_t maxCombinedClipAndCullDistances = {};
52877     uint32_t discreteQueuePriorities = {};
52878     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> pointSizeRange = {};
52879     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> lineWidthRange = {};
52880     float pointSizeGranularity = {};
52881     float lineWidthGranularity = {};
52882     VULKAN_HPP_NAMESPACE::Bool32 strictLines = {};
52883     VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {};
52884     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {};
52885     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {};
52886     VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {};
52887 
52888   };
52889   static_assert( sizeof( PhysicalDeviceLimits ) == sizeof( VkPhysicalDeviceLimits ), "struct and wrapper have different size!" );
52890   static_assert( std::is_standard_layout<PhysicalDeviceLimits>::value, "struct wrapper is not a standard layout!" );
52891 
52892   struct PhysicalDeviceSparseProperties
52893   {
52894 
52895 
52896 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52897     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
52898     : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ ), residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ ), residencyStandard3DBlockShape( residencyStandard3DBlockShape_ ), residencyAlignedMipSize( residencyAlignedMipSize_ ), residencyNonResidentStrict( residencyNonResidentStrict_ )
52899     {}
52900 
52901     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52902 
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52903     PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52904     {
52905       *this = rhs;
52906     }
52907 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52908 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52909     PhysicalDeviceSparseProperties & operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52910     {
52911       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const *>( &rhs );
52912       return *this;
52913     }
52914 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52915     PhysicalDeviceSparseProperties & operator=( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52916     {
52917       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSparseProperties ) );
52918       return *this;
52919     }
52920 
52921 
operator VkPhysicalDeviceSparseProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52922     operator VkPhysicalDeviceSparseProperties const&() const VULKAN_HPP_NOEXCEPT
52923     {
52924       return *reinterpret_cast<const VkPhysicalDeviceSparseProperties*>( this );
52925     }
52926 
operator VkPhysicalDeviceSparseProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52927     operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT
52928     {
52929       return *reinterpret_cast<VkPhysicalDeviceSparseProperties*>( this );
52930     }
52931 
52932 
52933 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52934     auto operator<=>( PhysicalDeviceSparseProperties const& ) const = default;
52935 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52936     bool operator==( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52937     {
52938       return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape )
52939           && ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape )
52940           && ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape )
52941           && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize )
52942           && ( residencyNonResidentStrict == rhs.residencyNonResidentStrict );
52943     }
52944 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52945     bool operator!=( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52946     {
52947       return !operator==( rhs );
52948     }
52949 #endif
52950 
52951 
52952 
52953   public:
52954     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {};
52955     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {};
52956     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {};
52957     VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {};
52958     VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {};
52959 
52960   };
52961   static_assert( sizeof( PhysicalDeviceSparseProperties ) == sizeof( VkPhysicalDeviceSparseProperties ), "struct and wrapper have different size!" );
52962   static_assert( std::is_standard_layout<PhysicalDeviceSparseProperties>::value, "struct wrapper is not a standard layout!" );
52963 
52964   struct PhysicalDeviceProperties
52965   {
52966 
52967 
52968 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52969     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
52970     : apiVersion( apiVersion_ ), driverVersion( driverVersion_ ), vendorID( vendorID_ ), deviceID( deviceID_ ), deviceType( deviceType_ ), deviceName( deviceName_ ), pipelineCacheUUID( pipelineCacheUUID_ ), limits( limits_ ), sparseProperties( sparseProperties_ )
52971     {}
52972 
52973     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52974 
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52975     PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52976     {
52977       *this = rhs;
52978     }
52979 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52980 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52981     PhysicalDeviceProperties & operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52982     {
52983       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const *>( &rhs );
52984       return *this;
52985     }
52986 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52987     PhysicalDeviceProperties & operator=( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52988     {
52989       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProperties ) );
52990       return *this;
52991     }
52992 
52993 
operator VkPhysicalDeviceProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52994     operator VkPhysicalDeviceProperties const&() const VULKAN_HPP_NOEXCEPT
52995     {
52996       return *reinterpret_cast<const VkPhysicalDeviceProperties*>( this );
52997     }
52998 
operator VkPhysicalDeviceProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52999     operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT
53000     {
53001       return *reinterpret_cast<VkPhysicalDeviceProperties*>( this );
53002     }
53003 
53004 
53005 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53006     auto operator<=>( PhysicalDeviceProperties const& ) const = default;
53007 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53008     bool operator==( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53009     {
53010       return ( apiVersion == rhs.apiVersion )
53011           && ( driverVersion == rhs.driverVersion )
53012           && ( vendorID == rhs.vendorID )
53013           && ( deviceID == rhs.deviceID )
53014           && ( deviceType == rhs.deviceType )
53015           && ( deviceName == rhs.deviceName )
53016           && ( pipelineCacheUUID == rhs.pipelineCacheUUID )
53017           && ( limits == rhs.limits )
53018           && ( sparseProperties == rhs.sparseProperties );
53019     }
53020 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53021     bool operator!=( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53022     {
53023       return !operator==( rhs );
53024     }
53025 #endif
53026 
53027 
53028 
53029   public:
53030     uint32_t apiVersion = {};
53031     uint32_t driverVersion = {};
53032     uint32_t vendorID = {};
53033     uint32_t deviceID = {};
53034     VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther;
53035     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> deviceName = {};
53036     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
53037     VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {};
53038     VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {};
53039 
53040   };
53041   static_assert( sizeof( PhysicalDeviceProperties ) == sizeof( VkPhysicalDeviceProperties ), "struct and wrapper have different size!" );
53042   static_assert( std::is_standard_layout<PhysicalDeviceProperties>::value, "struct wrapper is not a standard layout!" );
53043 
53044   struct PhysicalDeviceProperties2
53045   {
53046     static const bool allowDuplicate = false;
53047     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProperties2;
53048 
53049 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253050     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {}) VULKAN_HPP_NOEXCEPT
53051     : properties( properties_ )
53052     {}
53053 
53054     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53055 
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253056     PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53057     {
53058       *this = rhs;
53059     }
53060 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53061 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253062     PhysicalDeviceProperties2 & operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53063     {
53064       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 const *>( &rhs );
53065       return *this;
53066     }
53067 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253068     PhysicalDeviceProperties2 & operator=( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53069     {
53070       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProperties2 ) );
53071       return *this;
53072     }
53073 
53074 
operator VkPhysicalDeviceProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253075     operator VkPhysicalDeviceProperties2 const&() const VULKAN_HPP_NOEXCEPT
53076     {
53077       return *reinterpret_cast<const VkPhysicalDeviceProperties2*>( this );
53078     }
53079 
operator VkPhysicalDeviceProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253080     operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT
53081     {
53082       return *reinterpret_cast<VkPhysicalDeviceProperties2*>( this );
53083     }
53084 
53085 
53086 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53087     auto operator<=>( PhysicalDeviceProperties2 const& ) const = default;
53088 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253089     bool operator==( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53090     {
53091       return ( sType == rhs.sType )
53092           && ( pNext == rhs.pNext )
53093           && ( properties == rhs.properties );
53094     }
53095 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253096     bool operator!=( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53097     {
53098       return !operator==( rhs );
53099     }
53100 #endif
53101 
53102 
53103 
53104   public:
53105     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2;
53106     void* pNext = {};
53107     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {};
53108 
53109   };
53110   static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), "struct and wrapper have different size!" );
53111   static_assert( std::is_standard_layout<PhysicalDeviceProperties2>::value, "struct wrapper is not a standard layout!" );
53112 
53113   template <>
53114   struct CppType<StructureType, StructureType::ePhysicalDeviceProperties2>
53115   {
53116     using Type = PhysicalDeviceProperties2;
53117   };
53118   using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
53119 
53120   struct QueryPoolPerformanceCreateInfoKHR
53121   {
53122     static const bool allowDuplicate = false;
53123     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
53124 
53125 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53126     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR(uint32_t queueFamilyIndex_ = {}, uint32_t counterIndexCount_ = {}, const uint32_t* pCounterIndices_ = {}) VULKAN_HPP_NOEXCEPT
53127     : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( counterIndexCount_ ), pCounterIndices( pCounterIndices_ )
53128     {}
53129 
53130     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53131 
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53132     QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53133     {
53134       *this = rhs;
53135     }
53136 
53137 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53138     QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ )
53139     : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( static_cast<uint32_t>( counterIndices_.size() ) ), pCounterIndices( counterIndices_.data() )
53140     {}
53141 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
53142 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53143 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53144     QueryPoolPerformanceCreateInfoKHR & operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53145     {
53146       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR const *>( &rhs );
53147       return *this;
53148     }
53149 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53150     QueryPoolPerformanceCreateInfoKHR & operator=( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53151     {
53152       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueryPoolPerformanceCreateInfoKHR ) );
53153       return *this;
53154     }
53155 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53156     QueryPoolPerformanceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
53157     {
53158       pNext = pNext_;
53159       return *this;
53160     }
53161 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53162     QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
53163     {
53164       queueFamilyIndex = queueFamilyIndex_;
53165       return *this;
53166     }
53167 
setCounterIndexCountVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53168     QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT
53169     {
53170       counterIndexCount = counterIndexCount_;
53171       return *this;
53172     }
53173 
setPCounterIndicesVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53174     QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t* pCounterIndices_ ) VULKAN_HPP_NOEXCEPT
53175     {
53176       pCounterIndices = pCounterIndices_;
53177       return *this;
53178     }
53179 
53180 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCounterIndicesVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53181     QueryPoolPerformanceCreateInfoKHR & setCounterIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ ) VULKAN_HPP_NOEXCEPT
53182     {
53183       counterIndexCount = static_cast<uint32_t>( counterIndices_.size() );
53184       pCounterIndices = counterIndices_.data();
53185       return *this;
53186     }
53187 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
53188 
53189 
operator VkQueryPoolPerformanceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53190     operator VkQueryPoolPerformanceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
53191     {
53192       return *reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>( this );
53193     }
53194 
operator VkQueryPoolPerformanceCreateInfoKHR&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53195     operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
53196     {
53197       return *reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>( this );
53198     }
53199 
53200 
53201 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53202     auto operator<=>( QueryPoolPerformanceCreateInfoKHR const& ) const = default;
53203 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53204     bool operator==( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53205     {
53206       return ( sType == rhs.sType )
53207           && ( pNext == rhs.pNext )
53208           && ( queueFamilyIndex == rhs.queueFamilyIndex )
53209           && ( counterIndexCount == rhs.counterIndexCount )
53210           && ( pCounterIndices == rhs.pCounterIndices );
53211     }
53212 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53213     bool operator!=( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53214     {
53215       return !operator==( rhs );
53216     }
53217 #endif
53218 
53219 
53220 
53221   public:
53222     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
53223     const void* pNext = {};
53224     uint32_t queueFamilyIndex = {};
53225     uint32_t counterIndexCount = {};
53226     const uint32_t* pCounterIndices = {};
53227 
53228   };
53229   static_assert( sizeof( QueryPoolPerformanceCreateInfoKHR ) == sizeof( VkQueryPoolPerformanceCreateInfoKHR ), "struct and wrapper have different size!" );
53230   static_assert( std::is_standard_layout<QueryPoolPerformanceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
53231 
53232   template <>
53233   struct CppType<StructureType, StructureType::eQueryPoolPerformanceCreateInfoKHR>
53234   {
53235     using Type = QueryPoolPerformanceCreateInfoKHR;
53236   };
53237 
53238   struct QueueFamilyProperties
53239   {
53240 
53241 
53242 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties53243     VULKAN_HPP_CONSTEXPR QueueFamilyProperties(VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {}, uint32_t queueCount_ = {}, uint32_t timestampValidBits_ = {}, VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {}) VULKAN_HPP_NOEXCEPT
53244     : queueFlags( queueFlags_ ), queueCount( queueCount_ ), timestampValidBits( timestampValidBits_ ), minImageTransferGranularity( minImageTransferGranularity_ )
53245     {}
53246 
53247     VULKAN_HPP_CONSTEXPR QueueFamilyProperties( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53248 
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties53249     QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53250     {
53251       *this = rhs;
53252     }
53253 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53254 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties53255     QueueFamilyProperties & operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53256     {
53257       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties const *>( &rhs );
53258       return *this;
53259     }
53260 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties53261     QueueFamilyProperties & operator=( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53262     {
53263       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueueFamilyProperties ) );
53264       return *this;
53265     }
53266 
53267 
operator VkQueueFamilyProperties const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties53268     operator VkQueueFamilyProperties const&() const VULKAN_HPP_NOEXCEPT
53269     {
53270       return *reinterpret_cast<const VkQueueFamilyProperties*>( this );
53271     }
53272 
operator VkQueueFamilyProperties&VULKAN_HPP_NAMESPACE::QueueFamilyProperties53273     operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT
53274     {
53275       return *reinterpret_cast<VkQueueFamilyProperties*>( this );
53276     }
53277 
53278 
53279 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53280     auto operator<=>( QueueFamilyProperties const& ) const = default;
53281 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties53282     bool operator==( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53283     {
53284       return ( queueFlags == rhs.queueFlags )
53285           && ( queueCount == rhs.queueCount )
53286           && ( timestampValidBits == rhs.timestampValidBits )
53287           && ( minImageTransferGranularity == rhs.minImageTransferGranularity );
53288     }
53289 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties53290     bool operator!=( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53291     {
53292       return !operator==( rhs );
53293     }
53294 #endif
53295 
53296 
53297 
53298   public:
53299     VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {};
53300     uint32_t queueCount = {};
53301     uint32_t timestampValidBits = {};
53302     VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {};
53303 
53304   };
53305   static_assert( sizeof( QueueFamilyProperties ) == sizeof( VkQueueFamilyProperties ), "struct and wrapper have different size!" );
53306   static_assert( std::is_standard_layout<QueueFamilyProperties>::value, "struct wrapper is not a standard layout!" );
53307 
53308   struct QueueFamilyProperties2
53309   {
53310     static const bool allowDuplicate = false;
53311     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyProperties2;
53312 
53313 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties253314     VULKAN_HPP_CONSTEXPR QueueFamilyProperties2(VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {}) VULKAN_HPP_NOEXCEPT
53315     : queueFamilyProperties( queueFamilyProperties_ )
53316     {}
53317 
53318     VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53319 
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties253320     QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53321     {
53322       *this = rhs;
53323     }
53324 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53325 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties253326     QueueFamilyProperties2 & operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53327     {
53328       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 const *>( &rhs );
53329       return *this;
53330     }
53331 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties253332     QueueFamilyProperties2 & operator=( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53333     {
53334       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueueFamilyProperties2 ) );
53335       return *this;
53336     }
53337 
53338 
operator VkQueueFamilyProperties2 const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties253339     operator VkQueueFamilyProperties2 const&() const VULKAN_HPP_NOEXCEPT
53340     {
53341       return *reinterpret_cast<const VkQueueFamilyProperties2*>( this );
53342     }
53343 
operator VkQueueFamilyProperties2&VULKAN_HPP_NAMESPACE::QueueFamilyProperties253344     operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT
53345     {
53346       return *reinterpret_cast<VkQueueFamilyProperties2*>( this );
53347     }
53348 
53349 
53350 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53351     auto operator<=>( QueueFamilyProperties2 const& ) const = default;
53352 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties253353     bool operator==( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53354     {
53355       return ( sType == rhs.sType )
53356           && ( pNext == rhs.pNext )
53357           && ( queueFamilyProperties == rhs.queueFamilyProperties );
53358     }
53359 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties253360     bool operator!=( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53361     {
53362       return !operator==( rhs );
53363     }
53364 #endif
53365 
53366 
53367 
53368   public:
53369     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2;
53370     void* pNext = {};
53371     VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {};
53372 
53373   };
53374   static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), "struct and wrapper have different size!" );
53375   static_assert( std::is_standard_layout<QueueFamilyProperties2>::value, "struct wrapper is not a standard layout!" );
53376 
53377   template <>
53378   struct CppType<StructureType, StructureType::eQueueFamilyProperties2>
53379   {
53380     using Type = QueueFamilyProperties2;
53381   };
53382   using QueueFamilyProperties2KHR = QueueFamilyProperties2;
53383 
53384   struct PhysicalDeviceSparseImageFormatInfo2
53385   {
53386     static const bool allowDuplicate = false;
53387     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
53388 
53389 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253390     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
53391     : format( format_ ), type( type_ ), samples( samples_ ), usage( usage_ ), tiling( tiling_ )
53392     {}
53393 
53394     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53395 
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253396     PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53397     {
53398       *this = rhs;
53399     }
53400 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53401 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253402     PhysicalDeviceSparseImageFormatInfo2 & operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53403     {
53404       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 const *>( &rhs );
53405       return *this;
53406     }
53407 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253408     PhysicalDeviceSparseImageFormatInfo2 & operator=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53409     {
53410       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSparseImageFormatInfo2 ) );
53411       return *this;
53412     }
53413 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253414     PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
53415     {
53416       pNext = pNext_;
53417       return *this;
53418     }
53419 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253420     PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
53421     {
53422       format = format_;
53423       return *this;
53424     }
53425 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253426     PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
53427     {
53428       type = type_;
53429       return *this;
53430     }
53431 
setSamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253432     PhysicalDeviceSparseImageFormatInfo2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
53433     {
53434       samples = samples_;
53435       return *this;
53436     }
53437 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253438     PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
53439     {
53440       usage = usage_;
53441       return *this;
53442     }
53443 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253444     PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
53445     {
53446       tiling = tiling_;
53447       return *this;
53448     }
53449 
53450 
operator VkPhysicalDeviceSparseImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253451     operator VkPhysicalDeviceSparseImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT
53452     {
53453       return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( this );
53454     }
53455 
operator VkPhysicalDeviceSparseImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253456     operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
53457     {
53458       return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>( this );
53459     }
53460 
53461 
53462 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53463     auto operator<=>( PhysicalDeviceSparseImageFormatInfo2 const& ) const = default;
53464 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253465     bool operator==( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53466     {
53467       return ( sType == rhs.sType )
53468           && ( pNext == rhs.pNext )
53469           && ( format == rhs.format )
53470           && ( type == rhs.type )
53471           && ( samples == rhs.samples )
53472           && ( usage == rhs.usage )
53473           && ( tiling == rhs.tiling );
53474     }
53475 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253476     bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53477     {
53478       return !operator==( rhs );
53479     }
53480 #endif
53481 
53482 
53483 
53484   public:
53485     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
53486     const void* pNext = {};
53487     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
53488     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
53489     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
53490     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
53491     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
53492 
53493   };
53494   static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), "struct and wrapper have different size!" );
53495   static_assert( std::is_standard_layout<PhysicalDeviceSparseImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
53496 
53497   template <>
53498   struct CppType<StructureType, StructureType::ePhysicalDeviceSparseImageFormatInfo2>
53499   {
53500     using Type = PhysicalDeviceSparseImageFormatInfo2;
53501   };
53502   using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
53503 
53504   struct SparseImageFormatProperties2
53505   {
53506     static const bool allowDuplicate = false;
53507     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageFormatProperties2;
53508 
53509 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253510     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2(VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {}) VULKAN_HPP_NOEXCEPT
53511     : properties( properties_ )
53512     {}
53513 
53514     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53515 
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253516     SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53517     {
53518       *this = rhs;
53519     }
53520 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53521 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253522     SparseImageFormatProperties2 & operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53523     {
53524       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 const *>( &rhs );
53525       return *this;
53526     }
53527 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253528     SparseImageFormatProperties2 & operator=( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53529     {
53530       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageFormatProperties2 ) );
53531       return *this;
53532     }
53533 
53534 
operator VkSparseImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253535     operator VkSparseImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
53536     {
53537       return *reinterpret_cast<const VkSparseImageFormatProperties2*>( this );
53538     }
53539 
operator VkSparseImageFormatProperties2&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253540     operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
53541     {
53542       return *reinterpret_cast<VkSparseImageFormatProperties2*>( this );
53543     }
53544 
53545 
53546 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53547     auto operator<=>( SparseImageFormatProperties2 const& ) const = default;
53548 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253549     bool operator==( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53550     {
53551       return ( sType == rhs.sType )
53552           && ( pNext == rhs.pNext )
53553           && ( properties == rhs.properties );
53554     }
53555 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253556     bool operator!=( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53557     {
53558       return !operator==( rhs );
53559     }
53560 #endif
53561 
53562 
53563 
53564   public:
53565     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2;
53566     void* pNext = {};
53567     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {};
53568 
53569   };
53570   static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), "struct and wrapper have different size!" );
53571   static_assert( std::is_standard_layout<SparseImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
53572 
53573   template <>
53574   struct CppType<StructureType, StructureType::eSparseImageFormatProperties2>
53575   {
53576     using Type = SparseImageFormatProperties2;
53577   };
53578   using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
53579 
53580   struct FramebufferMixedSamplesCombinationNV
53581   {
53582     static const bool allowDuplicate = false;
53583     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferMixedSamplesCombinationNV;
53584 
53585 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53586     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
53587     : coverageReductionMode( coverageReductionMode_ ), rasterizationSamples( rasterizationSamples_ ), depthStencilSamples( depthStencilSamples_ ), colorSamples( colorSamples_ )
53588     {}
53589 
53590     VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53591 
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53592     FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
53593     {
53594       *this = rhs;
53595     }
53596 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53597 
operator =VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53598     FramebufferMixedSamplesCombinationNV & operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
53599     {
53600       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV const *>( &rhs );
53601       return *this;
53602     }
53603 
operator =VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53604     FramebufferMixedSamplesCombinationNV & operator=( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
53605     {
53606       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferMixedSamplesCombinationNV ) );
53607       return *this;
53608     }
53609 
53610 
operator VkFramebufferMixedSamplesCombinationNV const&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53611     operator VkFramebufferMixedSamplesCombinationNV const&() const VULKAN_HPP_NOEXCEPT
53612     {
53613       return *reinterpret_cast<const VkFramebufferMixedSamplesCombinationNV*>( this );
53614     }
53615 
operator VkFramebufferMixedSamplesCombinationNV&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53616     operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT
53617     {
53618       return *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( this );
53619     }
53620 
53621 
53622 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53623     auto operator<=>( FramebufferMixedSamplesCombinationNV const& ) const = default;
53624 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53625     bool operator==( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
53626     {
53627       return ( sType == rhs.sType )
53628           && ( pNext == rhs.pNext )
53629           && ( coverageReductionMode == rhs.coverageReductionMode )
53630           && ( rasterizationSamples == rhs.rasterizationSamples )
53631           && ( depthStencilSamples == rhs.depthStencilSamples )
53632           && ( colorSamples == rhs.colorSamples );
53633     }
53634 
operator !=VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53635     bool operator!=( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
53636     {
53637       return !operator==( rhs );
53638     }
53639 #endif
53640 
53641 
53642 
53643   public:
53644     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV;
53645     void* pNext = {};
53646     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
53647     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
53648     VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {};
53649     VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {};
53650 
53651   };
53652   static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), "struct and wrapper have different size!" );
53653   static_assert( std::is_standard_layout<FramebufferMixedSamplesCombinationNV>::value, "struct wrapper is not a standard layout!" );
53654 
53655   template <>
53656   struct CppType<StructureType, StructureType::eFramebufferMixedSamplesCombinationNV>
53657   {
53658     using Type = FramebufferMixedSamplesCombinationNV;
53659   };
53660 
53661   struct SurfaceCapabilities2EXT
53662   {
53663     static const bool allowDuplicate = false;
53664     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2EXT;
53665 
53666 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53667     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
53668     : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ ), supportedSurfaceCounters( supportedSurfaceCounters_ )
53669     {}
53670 
53671     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53672 
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53673     SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
53674     {
53675       *this = rhs;
53676     }
53677 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53678 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53679     SurfaceCapabilities2EXT & operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
53680     {
53681       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT const *>( &rhs );
53682       return *this;
53683     }
53684 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53685     SurfaceCapabilities2EXT & operator=( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
53686     {
53687       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilities2EXT ) );
53688       return *this;
53689     }
53690 
53691 
operator VkSurfaceCapabilities2EXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53692     operator VkSurfaceCapabilities2EXT const&() const VULKAN_HPP_NOEXCEPT
53693     {
53694       return *reinterpret_cast<const VkSurfaceCapabilities2EXT*>( this );
53695     }
53696 
operator VkSurfaceCapabilities2EXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53697     operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT
53698     {
53699       return *reinterpret_cast<VkSurfaceCapabilities2EXT*>( this );
53700     }
53701 
53702 
53703 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53704     auto operator<=>( SurfaceCapabilities2EXT const& ) const = default;
53705 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53706     bool operator==( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53707     {
53708       return ( sType == rhs.sType )
53709           && ( pNext == rhs.pNext )
53710           && ( minImageCount == rhs.minImageCount )
53711           && ( maxImageCount == rhs.maxImageCount )
53712           && ( currentExtent == rhs.currentExtent )
53713           && ( minImageExtent == rhs.minImageExtent )
53714           && ( maxImageExtent == rhs.maxImageExtent )
53715           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
53716           && ( supportedTransforms == rhs.supportedTransforms )
53717           && ( currentTransform == rhs.currentTransform )
53718           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
53719           && ( supportedUsageFlags == rhs.supportedUsageFlags )
53720           && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters );
53721     }
53722 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53723     bool operator!=( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53724     {
53725       return !operator==( rhs );
53726     }
53727 #endif
53728 
53729 
53730 
53731   public:
53732     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT;
53733     void* pNext = {};
53734     uint32_t minImageCount = {};
53735     uint32_t maxImageCount = {};
53736     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
53737     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
53738     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
53739     uint32_t maxImageArrayLayers = {};
53740     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
53741     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
53742     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
53743     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
53744     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {};
53745 
53746   };
53747   static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), "struct and wrapper have different size!" );
53748   static_assert( std::is_standard_layout<SurfaceCapabilities2EXT>::value, "struct wrapper is not a standard layout!" );
53749 
53750   template <>
53751   struct CppType<StructureType, StructureType::eSurfaceCapabilities2EXT>
53752   {
53753     using Type = SurfaceCapabilities2EXT;
53754   };
53755 
53756   struct SurfaceCapabilitiesKHR
53757   {
53758 
53759 
53760 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53761     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
53762     : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ )
53763     {}
53764 
53765     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53766 
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53767     SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53768     {
53769       *this = rhs;
53770     }
53771 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53772 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53773     SurfaceCapabilitiesKHR & operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53774     {
53775       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const *>( &rhs );
53776       return *this;
53777     }
53778 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53779     SurfaceCapabilitiesKHR & operator=( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53780     {
53781       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilitiesKHR ) );
53782       return *this;
53783     }
53784 
53785 
operator VkSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53786     operator VkSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
53787     {
53788       return *reinterpret_cast<const VkSurfaceCapabilitiesKHR*>( this );
53789     }
53790 
operator VkSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53791     operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
53792     {
53793       return *reinterpret_cast<VkSurfaceCapabilitiesKHR*>( this );
53794     }
53795 
53796 
53797 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53798     auto operator<=>( SurfaceCapabilitiesKHR const& ) const = default;
53799 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53800     bool operator==( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53801     {
53802       return ( minImageCount == rhs.minImageCount )
53803           && ( maxImageCount == rhs.maxImageCount )
53804           && ( currentExtent == rhs.currentExtent )
53805           && ( minImageExtent == rhs.minImageExtent )
53806           && ( maxImageExtent == rhs.maxImageExtent )
53807           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
53808           && ( supportedTransforms == rhs.supportedTransforms )
53809           && ( currentTransform == rhs.currentTransform )
53810           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
53811           && ( supportedUsageFlags == rhs.supportedUsageFlags );
53812     }
53813 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53814     bool operator!=( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53815     {
53816       return !operator==( rhs );
53817     }
53818 #endif
53819 
53820 
53821 
53822   public:
53823     uint32_t minImageCount = {};
53824     uint32_t maxImageCount = {};
53825     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
53826     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
53827     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
53828     uint32_t maxImageArrayLayers = {};
53829     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
53830     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
53831     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
53832     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
53833 
53834   };
53835   static_assert( sizeof( SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
53836   static_assert( std::is_standard_layout<SurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
53837 
53838   struct SurfaceCapabilities2KHR
53839   {
53840     static const bool allowDuplicate = false;
53841     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2KHR;
53842 
53843 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53844     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR(VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {}) VULKAN_HPP_NOEXCEPT
53845     : surfaceCapabilities( surfaceCapabilities_ )
53846     {}
53847 
53848     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53849 
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53850     SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
53851     {
53852       *this = rhs;
53853     }
53854 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53855 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53856     SurfaceCapabilities2KHR & operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
53857     {
53858       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR const *>( &rhs );
53859       return *this;
53860     }
53861 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53862     SurfaceCapabilities2KHR & operator=( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
53863     {
53864       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilities2KHR ) );
53865       return *this;
53866     }
53867 
53868 
operator VkSurfaceCapabilities2KHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53869     operator VkSurfaceCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT
53870     {
53871       return *reinterpret_cast<const VkSurfaceCapabilities2KHR*>( this );
53872     }
53873 
operator VkSurfaceCapabilities2KHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53874     operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
53875     {
53876       return *reinterpret_cast<VkSurfaceCapabilities2KHR*>( this );
53877     }
53878 
53879 
53880 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53881     auto operator<=>( SurfaceCapabilities2KHR const& ) const = default;
53882 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53883     bool operator==( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53884     {
53885       return ( sType == rhs.sType )
53886           && ( pNext == rhs.pNext )
53887           && ( surfaceCapabilities == rhs.surfaceCapabilities );
53888     }
53889 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53890     bool operator!=( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53891     {
53892       return !operator==( rhs );
53893     }
53894 #endif
53895 
53896 
53897 
53898   public:
53899     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR;
53900     void* pNext = {};
53901     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {};
53902 
53903   };
53904   static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), "struct and wrapper have different size!" );
53905   static_assert( std::is_standard_layout<SurfaceCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
53906 
53907   template <>
53908   struct CppType<StructureType, StructureType::eSurfaceCapabilities2KHR>
53909   {
53910     using Type = SurfaceCapabilities2KHR;
53911   };
53912 
53913   struct SurfaceFormatKHR
53914   {
53915 
53916 
53917 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR53918     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
53919     : format( format_ ), colorSpace( colorSpace_ )
53920     {}
53921 
53922     VULKAN_HPP_CONSTEXPR SurfaceFormatKHR( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53923 
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR53924     SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53925     {
53926       *this = rhs;
53927     }
53928 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53929 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53930     SurfaceFormatKHR & operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53931     {
53932       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const *>( &rhs );
53933       return *this;
53934     }
53935 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53936     SurfaceFormatKHR & operator=( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53937     {
53938       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFormatKHR ) );
53939       return *this;
53940     }
53941 
53942 
operator VkSurfaceFormatKHR const&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53943     operator VkSurfaceFormatKHR const&() const VULKAN_HPP_NOEXCEPT
53944     {
53945       return *reinterpret_cast<const VkSurfaceFormatKHR*>( this );
53946     }
53947 
operator VkSurfaceFormatKHR&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53948     operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT
53949     {
53950       return *reinterpret_cast<VkSurfaceFormatKHR*>( this );
53951     }
53952 
53953 
53954 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53955     auto operator<=>( SurfaceFormatKHR const& ) const = default;
53956 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53957     bool operator==( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53958     {
53959       return ( format == rhs.format )
53960           && ( colorSpace == rhs.colorSpace );
53961     }
53962 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53963     bool operator!=( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53964     {
53965       return !operator==( rhs );
53966     }
53967 #endif
53968 
53969 
53970 
53971   public:
53972     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
53973     VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
53974 
53975   };
53976   static_assert( sizeof( SurfaceFormatKHR ) == sizeof( VkSurfaceFormatKHR ), "struct and wrapper have different size!" );
53977   static_assert( std::is_standard_layout<SurfaceFormatKHR>::value, "struct wrapper is not a standard layout!" );
53978 
53979   struct SurfaceFormat2KHR
53980   {
53981     static const bool allowDuplicate = false;
53982     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFormat2KHR;
53983 
53984 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR53985     VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR(VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {}) VULKAN_HPP_NOEXCEPT
53986     : surfaceFormat( surfaceFormat_ )
53987     {}
53988 
53989     VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53990 
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR53991     SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
53992     {
53993       *this = rhs;
53994     }
53995 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53996 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR53997     SurfaceFormat2KHR & operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
53998     {
53999       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR const *>( &rhs );
54000       return *this;
54001     }
54002 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54003     SurfaceFormat2KHR & operator=( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
54004     {
54005       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFormat2KHR ) );
54006       return *this;
54007     }
54008 
54009 
operator VkSurfaceFormat2KHR const&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54010     operator VkSurfaceFormat2KHR const&() const VULKAN_HPP_NOEXCEPT
54011     {
54012       return *reinterpret_cast<const VkSurfaceFormat2KHR*>( this );
54013     }
54014 
operator VkSurfaceFormat2KHR&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54015     operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT
54016     {
54017       return *reinterpret_cast<VkSurfaceFormat2KHR*>( this );
54018     }
54019 
54020 
54021 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54022     auto operator<=>( SurfaceFormat2KHR const& ) const = default;
54023 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54024     bool operator==( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54025     {
54026       return ( sType == rhs.sType )
54027           && ( pNext == rhs.pNext )
54028           && ( surfaceFormat == rhs.surfaceFormat );
54029     }
54030 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54031     bool operator!=( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54032     {
54033       return !operator==( rhs );
54034     }
54035 #endif
54036 
54037 
54038 
54039   public:
54040     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR;
54041     void* pNext = {};
54042     VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {};
54043 
54044   };
54045   static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), "struct and wrapper have different size!" );
54046   static_assert( std::is_standard_layout<SurfaceFormat2KHR>::value, "struct wrapper is not a standard layout!" );
54047 
54048   template <>
54049   struct CppType<StructureType, StructureType::eSurfaceFormat2KHR>
54050   {
54051     using Type = SurfaceFormat2KHR;
54052   };
54053 
54054   struct PhysicalDeviceToolPropertiesEXT
54055   {
54056     static const bool allowDuplicate = false;
54057     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceToolPropertiesEXT;
54058 
54059 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceToolPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54060     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
54061     : name( name_ ), version( version_ ), purposes( purposes_ ), description( description_ ), layer( layer_ )
54062     {}
54063 
54064     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54065 
PhysicalDeviceToolPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54066     PhysicalDeviceToolPropertiesEXT( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54067     {
54068       *this = rhs;
54069     }
54070 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54071 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54072     PhysicalDeviceToolPropertiesEXT & operator=( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54073     {
54074       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT const *>( &rhs );
54075       return *this;
54076     }
54077 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54078     PhysicalDeviceToolPropertiesEXT & operator=( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54079     {
54080       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceToolPropertiesEXT ) );
54081       return *this;
54082     }
54083 
54084 
operator VkPhysicalDeviceToolPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54085     operator VkPhysicalDeviceToolPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
54086     {
54087       return *reinterpret_cast<const VkPhysicalDeviceToolPropertiesEXT*>( this );
54088     }
54089 
operator VkPhysicalDeviceToolPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54090     operator VkPhysicalDeviceToolPropertiesEXT &() VULKAN_HPP_NOEXCEPT
54091     {
54092       return *reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( this );
54093     }
54094 
54095 
54096 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54097     auto operator<=>( PhysicalDeviceToolPropertiesEXT const& ) const = default;
54098 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54099     bool operator==( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54100     {
54101       return ( sType == rhs.sType )
54102           && ( pNext == rhs.pNext )
54103           && ( name == rhs.name )
54104           && ( version == rhs.version )
54105           && ( purposes == rhs.purposes )
54106           && ( description == rhs.description )
54107           && ( layer == rhs.layer );
54108     }
54109 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54110     bool operator!=( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54111     {
54112       return !operator==( rhs );
54113     }
54114 #endif
54115 
54116 
54117 
54118   public:
54119     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolPropertiesEXT;
54120     void* pNext = {};
54121     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> name = {};
54122     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> version = {};
54123     VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes = {};
54124     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
54125     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layer = {};
54126 
54127   };
54128   static_assert( sizeof( PhysicalDeviceToolPropertiesEXT ) == sizeof( VkPhysicalDeviceToolPropertiesEXT ), "struct and wrapper have different size!" );
54129   static_assert( std::is_standard_layout<PhysicalDeviceToolPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
54130 
54131   template <>
54132   struct CppType<StructureType, StructureType::ePhysicalDeviceToolPropertiesEXT>
54133   {
54134     using Type = PhysicalDeviceToolPropertiesEXT;
54135   };
54136 
54137 #ifndef VULKAN_HPP_NO_SMART_HANDLE
54138   template <typename Dispatch> class UniqueHandleTraits<Device, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
54139   using UniqueDevice = UniqueHandle<Device, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
54140 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
54141 
54142   class PhysicalDevice
54143   {
54144   public:
54145     using CType = VkPhysicalDevice;
54146 
54147     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice;
54148     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice;
54149 
54150   public:
PhysicalDevice()54151     VULKAN_HPP_CONSTEXPR PhysicalDevice() VULKAN_HPP_NOEXCEPT
54152       : m_physicalDevice(VK_NULL_HANDLE)
54153     {}
54154 
PhysicalDevice(std::nullptr_t)54155     VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
54156       : m_physicalDevice(VK_NULL_HANDLE)
54157     {}
54158 
PhysicalDevice(VkPhysicalDevice physicalDevice)54159     VULKAN_HPP_TYPESAFE_EXPLICIT PhysicalDevice( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT
54160       : m_physicalDevice( physicalDevice )
54161     {}
54162 
54163 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPhysicalDevice physicalDevice)54164     PhysicalDevice & operator=(VkPhysicalDevice physicalDevice) VULKAN_HPP_NOEXCEPT
54165     {
54166       m_physicalDevice = physicalDevice;
54167       return *this;
54168     }
54169 #endif
54170 
operator =(std::nullptr_t)54171     PhysicalDevice & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
54172     {
54173       m_physicalDevice = VK_NULL_HANDLE;
54174       return *this;
54175     }
54176 
54177 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54178     auto operator<=>( PhysicalDevice const& ) const = default;
54179 #else
operator ==(PhysicalDevice const & rhs) const54180     bool operator==( PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
54181     {
54182       return m_physicalDevice == rhs.m_physicalDevice;
54183     }
54184 
operator !=(PhysicalDevice const & rhs) const54185     bool operator!=(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
54186     {
54187       return m_physicalDevice != rhs.m_physicalDevice;
54188     }
54189 
operator <(PhysicalDevice const & rhs) const54190     bool operator<(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
54191     {
54192       return m_physicalDevice < rhs.m_physicalDevice;
54193     }
54194 #endif
54195 
54196 
54197 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
54198     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54199     VULKAN_HPP_NODISCARD Result acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54200 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54201     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54202     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;
54203 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54204 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
54205 
54206 
54207     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54208     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;
54209 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54210     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54211     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;
54212 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
54213   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54214   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;
54215 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
54216 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54217 
54218 
54219     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54220     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;
54221 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54222     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54223     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;
54224 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
54225   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54226   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;
54227 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
54228 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54229 
54230     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54231     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;
54232 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54233     template<typename Allocator  = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54234     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54235     template<typename Allocator  = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type = 0>
54236     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54237 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54238 
54239     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54240     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;
54241 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54242     template<typename Allocator  = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54243     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateDeviceLayerProperties(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54244     template<typename Allocator  = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type = 0>
54245     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54246 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54247 
54248 
54249     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54250     VULKAN_HPP_NODISCARD Result enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54251 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54252     template <typename Allocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch  = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54253     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;
54254     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>
54255     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;
54256     template <typename PerformanceCounterKHRAllocator = std::allocator<PerformanceCounterKHR>, typename PerformanceCounterDescriptionKHRAllocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54257     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;
54258     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>
54259     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;
54260 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54261 
54262     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54263     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;
54264 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54265     template<typename Allocator  = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54266     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54267     template<typename Allocator  = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayModeProperties2KHR>::value, int>::type = 0>
54268     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54269 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54270 
54271     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54272     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;
54273 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54274     template<typename Allocator  = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54275     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54276     template<typename Allocator  = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayModePropertiesKHR>::value, int>::type = 0>
54277     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54278 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54279 
54280 
54281     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54282     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;
54283 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54284     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54285     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;
54286 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54287 
54288 
54289     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54290     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;
54291 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54292     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54293     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;
54294 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54295 
54296     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54297     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;
54298 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54299     template<typename Allocator  = std::allocator<DisplayKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54300     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54301     template<typename Allocator  = std::allocator<DisplayKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayKHR>::value, int>::type = 0>
54302     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54303 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54304 
54305     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54306     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;
54307 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54308     template<typename Allocator  = std::allocator<TimeDomainEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54309     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type getCalibrateableTimeDomainsEXT(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54310     template<typename Allocator  = std::allocator<TimeDomainEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, TimeDomainEXT>::value, int>::type = 0>
54311     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54312 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54313 
54314     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54315     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;
54316 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54317     template<typename Allocator  = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54318     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type getCooperativeMatrixPropertiesNV(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54319     template<typename Allocator  = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, CooperativeMatrixPropertiesNV>::value, int>::type = 0>
54320     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54321 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54322 
54323 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
54324     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54325     Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54326 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54327     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54328     Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54329 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54330 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
54331 
54332     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54333     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;
54334 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54335     template<typename Allocator  = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54336     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type getDisplayPlaneProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54337     template<typename Allocator  = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlaneProperties2KHR>::value, int>::type = 0>
54338     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54339 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54340 
54341     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54342     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;
54343 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54344     template<typename Allocator  = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54345     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type getDisplayPlanePropertiesKHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54346     template<typename Allocator  = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlanePropertiesKHR>::value, int>::type = 0>
54347     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54348 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54349 
54350     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54351     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;
54352 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54353     template<typename Allocator  = std::allocator<DisplayProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54354     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type getDisplayProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54355     template<typename Allocator  = std::allocator<DisplayProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayProperties2KHR>::value, int>::type = 0>
54356     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54357 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54358 
54359     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54360     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;
54361 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54362     template<typename Allocator  = std::allocator<DisplayPropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54363     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type getDisplayPropertiesKHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54364     template<typename Allocator  = std::allocator<DisplayPropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPropertiesKHR>::value, int>::type = 0>
54365     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54366 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54367 
54368 
54369     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54370     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;
54371 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54372     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54373     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54374 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54375 
54376     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54377     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;
54378 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54379     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54380     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54381 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54382 
54383 
54384     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54385     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;
54386 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54387     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54388     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54389 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54390 
54391     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54392     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;
54393 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54394     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54395     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54396 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54397 
54398 
54399     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54400     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;
54401 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54402     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54403     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;
54404 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54405 
54406 
54407     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54408     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;
54409 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54410     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54411     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54412 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54413 
54414     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54415     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;
54416 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54417     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54418     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54419 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54420 
54421 
54422     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54423     void getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54424 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54425     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54426     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54427 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54428 
54429 
54430     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54431     void getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54432 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54433     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54434     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54435     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54436     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54437 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54438 
54439     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54440     void getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54441 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54442     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54443     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54444     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54445     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54446 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54447 
54448 
54449     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54450     void getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54451 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54452     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54453     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;
54454 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54455 
54456 
54457     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54458     void getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54459 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54460     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54461     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;
54462     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54463     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;
54464 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54465 
54466     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54467     void getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54468 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54469     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54470     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;
54471     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54472     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;
54473 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54474 
54475     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54476     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;
54477 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54478     template<typename Allocator  = std::allocator<PhysicalDeviceFragmentShadingRateKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54479     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR,Allocator>>::type getFragmentShadingRatesKHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54480     template<typename Allocator  = std::allocator<PhysicalDeviceFragmentShadingRateKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceFragmentShadingRateKHR>::value, int>::type = 0>
54481     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR,Allocator>>::type getFragmentShadingRatesKHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54482 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54483 
54484 
54485     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54486     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;
54487 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54488     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54489     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;
54490 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54491 
54492 
54493     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54494     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;
54495 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54496     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54497     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;
54498     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54499     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;
54500 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54501 
54502     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54503     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;
54504 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54505     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54506     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;
54507     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54508     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;
54509 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54510 
54511 
54512     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54513     void getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54514 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54515     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54516     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54517 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54518 
54519 
54520     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54521     void getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54522 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54523     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54524     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54525     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54526     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54527 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54528 
54529     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54530     void getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54531 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54532     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54533     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54534     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54535     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54536 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54537 
54538 
54539     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54540     void getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54541 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54542     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54543     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;
54544 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54545 
54546     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54547     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;
54548 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54549     template<typename Allocator  = std::allocator<Rect2D>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54550     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Rect2D,Allocator>>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54551     template<typename Allocator  = std::allocator<Rect2D>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, Rect2D>::value, int>::type = 0>
54552     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Rect2D,Allocator>>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54553 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54554 
54555 
54556     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54557     void getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54558 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54559     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54560     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54561 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54562 
54563 
54564     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54565     void getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54566 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54567     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54568     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54569     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54570     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54571 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54572 
54573     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54574     void getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54575 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54576     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54577     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54578     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54579     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54580 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54581 
54582 
54583     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54584     void getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54585 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54586     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54587     VULKAN_HPP_NODISCARD uint32_t getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54588 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54589 
54590 
54591     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54592     void getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54593 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54594     template <typename QueueFamilyPropertiesAllocator = std::allocator<QueueFamilyProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54595     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> getQueueFamilyProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54596     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>
54597     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54598 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54599 
54600     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54601     void getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54602 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54603     template<typename Allocator  = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54604     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54605     template<typename Allocator  = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type = 0>
54606     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54607     template<typename StructureChain, typename Allocator  = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54608     std::vector<StructureChain,Allocator> getQueueFamilyProperties2(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54609     template<typename StructureChain, typename Allocator  = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type = 0>
54610     std::vector<StructureChain,Allocator> getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54611 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54612 
54613     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54614     void getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54615 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54616     template<typename Allocator  = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54617     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54618     template<typename Allocator  = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type = 0>
54619     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54620     template<typename StructureChain, typename Allocator  = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54621     std::vector<StructureChain,Allocator> getQueueFamilyProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54622     template<typename StructureChain, typename Allocator  = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type = 0>
54623     std::vector<StructureChain,Allocator> getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54624 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54625 
54626 
54627     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54628     void getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties* pProperties VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54629 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54630     template <typename SparseImageFormatPropertiesAllocator = std::allocator<SparseImageFormatProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54631     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;
54632     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>
54633     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;
54634 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54635 
54636 
54637     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54638     void getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54639 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54640     template <typename SparseImageFormatProperties2Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54641     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54642     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>
54643     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54644 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54645 
54646     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54647     void getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54648 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54649     template <typename SparseImageFormatProperties2Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54650     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54651     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>
54652     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54653 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54654 
54655     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54656     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;
54657 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54658     template<typename Allocator  = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54659     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54660     template<typename Allocator  = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, FramebufferMixedSamplesCombinationNV>::value, int>::type = 0>
54661     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54662 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54663 
54664 
54665     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54666     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;
54667 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54668     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54669     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;
54670 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54671 
54672 
54673     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54674     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;
54675 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54676     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54677     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;
54678     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54679     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;
54680 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54681 
54682 
54683     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54684     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;
54685 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54686     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54687     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;
54688 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54689 
54690     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54691     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;
54692 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54693     template<typename Allocator  = std::allocator<SurfaceFormat2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54694     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54695     template<typename Allocator  = std::allocator<SurfaceFormat2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormat2KHR>::value, int>::type = 0>
54696     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54697 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54698 
54699     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54700     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;
54701 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54702     template<typename Allocator  = std::allocator<SurfaceFormatKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54703     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54704     template<typename Allocator  = std::allocator<SurfaceFormatKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormatKHR>::value, int>::type = 0>
54705     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54706 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54707 
54708 #ifdef VK_USE_PLATFORM_WIN32_KHR
54709     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54710     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;
54711 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54712     template<typename Allocator  = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54713     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54714     template<typename Allocator  = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type = 0>
54715     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54716 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54717 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
54718 
54719     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54720     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;
54721 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54722     template<typename Allocator  = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54723     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54724     template<typename Allocator  = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type = 0>
54725     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54726 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54727 
54728 
54729     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54730     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;
54731 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54732     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54733     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;
54734 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54735 
54736     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54737     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;
54738 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54739     template<typename Allocator  = std::allocator<PhysicalDeviceToolPropertiesEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54740     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type getToolPropertiesEXT(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54741     template<typename Allocator  = std::allocator<PhysicalDeviceToolPropertiesEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceToolPropertiesEXT>::value, int>::type = 0>
54742     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type getToolPropertiesEXT(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54743 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54744 
54745 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
54746     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54747     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54748 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54749     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54750     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54751 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54752 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
54753 
54754 #ifdef VK_USE_PLATFORM_WIN32_KHR
54755 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
54756     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54757     Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54758 #else
54759     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54760     Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54761 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54762 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
54763 
54764 #ifdef VK_USE_PLATFORM_XCB_KHR
54765     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54766     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;
54767 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54768     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54769     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;
54770 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54771 #endif /*VK_USE_PLATFORM_XCB_KHR*/
54772 
54773 
54774 #ifdef VK_USE_PLATFORM_XLIB_KHR
54775     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54776     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54777 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54778     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54779     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54780 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54781 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
54782 
54783 
54784 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
54785     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54786     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;
54787 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54788     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54789     typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54790 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
54791   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54792   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;
54793 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
54794 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54795 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
54796 
54797 
54798 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
54799     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54800     Result releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54801 #else
54802     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54803     typename ResultValueType<void>::type releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54804 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54805 
54806 
operator VkPhysicalDevice() const54807     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPhysicalDevice() const VULKAN_HPP_NOEXCEPT
54808     {
54809       return m_physicalDevice;
54810     }
54811 
operator bool() const54812     explicit operator bool() const VULKAN_HPP_NOEXCEPT
54813     {
54814       return m_physicalDevice != VK_NULL_HANDLE;
54815     }
54816 
operator !() const54817     bool operator!() const VULKAN_HPP_NOEXCEPT
54818     {
54819       return m_physicalDevice == VK_NULL_HANDLE;
54820     }
54821 
54822   private:
54823     VkPhysicalDevice m_physicalDevice;
54824   };
54825   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevice ) == sizeof( VkPhysicalDevice ), "handle and wrapper have different size!" );
54826 
54827   template <>
54828   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePhysicalDevice>
54829   {
54830     using type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
54831   };
54832 
54833   template <>
54834   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice>
54835   {
54836     using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
54837   };
54838 
54839 
54840   template <>
54841   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice>
54842   {
54843     using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
54844   };
54845 
54846 
54847   template <>
54848   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PhysicalDevice>
54849   {
54850     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
54851   };
54852 
54853   struct DeviceGroupDeviceCreateInfo
54854   {
54855     static const bool allowDuplicate = false;
54856     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupDeviceCreateInfo;
54857 
54858 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54859     VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo(uint32_t physicalDeviceCount_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ = {}) VULKAN_HPP_NOEXCEPT
54860     : physicalDeviceCount( physicalDeviceCount_ ), pPhysicalDevices( pPhysicalDevices_ )
54861     {}
54862 
54863     VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54864 
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54865     DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54866     {
54867       *this = rhs;
54868     }
54869 
54870 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54871     DeviceGroupDeviceCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_ )
54872     : physicalDeviceCount( static_cast<uint32_t>( physicalDevices_.size() ) ), pPhysicalDevices( physicalDevices_.data() )
54873     {}
54874 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54875 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54876 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54877     DeviceGroupDeviceCreateInfo & operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54878     {
54879       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo const *>( &rhs );
54880       return *this;
54881     }
54882 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54883     DeviceGroupDeviceCreateInfo & operator=( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54884     {
54885       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupDeviceCreateInfo ) );
54886       return *this;
54887     }
54888 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54889     DeviceGroupDeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
54890     {
54891       pNext = pNext_;
54892       return *this;
54893     }
54894 
setPhysicalDeviceCountVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54895     DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT
54896     {
54897       physicalDeviceCount = physicalDeviceCount_;
54898       return *this;
54899     }
54900 
setPPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54901     DeviceGroupDeviceCreateInfo & setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT
54902     {
54903       pPhysicalDevices = pPhysicalDevices_;
54904       return *this;
54905     }
54906 
54907 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54908     DeviceGroupDeviceCreateInfo & setPhysicalDevices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_ ) VULKAN_HPP_NOEXCEPT
54909     {
54910       physicalDeviceCount = static_cast<uint32_t>( physicalDevices_.size() );
54911       pPhysicalDevices = physicalDevices_.data();
54912       return *this;
54913     }
54914 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54915 
54916 
operator VkDeviceGroupDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54917     operator VkDeviceGroupDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
54918     {
54919       return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>( this );
54920     }
54921 
operator VkDeviceGroupDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54922     operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
54923     {
54924       return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>( this );
54925     }
54926 
54927 
54928 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54929     auto operator<=>( DeviceGroupDeviceCreateInfo const& ) const = default;
54930 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54931     bool operator==( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
54932     {
54933       return ( sType == rhs.sType )
54934           && ( pNext == rhs.pNext )
54935           && ( physicalDeviceCount == rhs.physicalDeviceCount )
54936           && ( pPhysicalDevices == rhs.pPhysicalDevices );
54937     }
54938 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54939     bool operator!=( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
54940     {
54941       return !operator==( rhs );
54942     }
54943 #endif
54944 
54945 
54946 
54947   public:
54948     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo;
54949     const void* pNext = {};
54950     uint32_t physicalDeviceCount = {};
54951     const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices = {};
54952 
54953   };
54954   static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), "struct and wrapper have different size!" );
54955   static_assert( std::is_standard_layout<DeviceGroupDeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
54956 
54957   template <>
54958   struct CppType<StructureType, StructureType::eDeviceGroupDeviceCreateInfo>
54959   {
54960     using Type = DeviceGroupDeviceCreateInfo;
54961   };
54962   using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
54963 
54964   struct DeviceGroupPresentInfoKHR
54965   {
54966     static const bool allowDuplicate = false;
54967     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentInfoKHR;
54968 
54969 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54970     VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR(uint32_t swapchainCount_ = {}, const uint32_t* pDeviceMasks_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal) VULKAN_HPP_NOEXCEPT
54971     : swapchainCount( swapchainCount_ ), pDeviceMasks( pDeviceMasks_ ), mode( mode_ )
54972     {}
54973 
54974     VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54975 
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54976     DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54977     {
54978       *this = rhs;
54979     }
54980 
54981 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54982     DeviceGroupPresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal )
54983     : swapchainCount( static_cast<uint32_t>( deviceMasks_.size() ) ), pDeviceMasks( deviceMasks_.data() ), mode( mode_ )
54984     {}
54985 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54986 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54987 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54988     DeviceGroupPresentInfoKHR & operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54989     {
54990       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR const *>( &rhs );
54991       return *this;
54992     }
54993 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54994     DeviceGroupPresentInfoKHR & operator=( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54995     {
54996       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupPresentInfoKHR ) );
54997       return *this;
54998     }
54999 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55000     DeviceGroupPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55001     {
55002       pNext = pNext_;
55003       return *this;
55004     }
55005 
setSwapchainCountVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55006     DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
55007     {
55008       swapchainCount = swapchainCount_;
55009       return *this;
55010     }
55011 
setPDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55012     DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t* pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
55013     {
55014       pDeviceMasks = pDeviceMasks_;
55015       return *this;
55016     }
55017 
55018 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55019     DeviceGroupPresentInfoKHR & setDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_ ) VULKAN_HPP_NOEXCEPT
55020     {
55021       swapchainCount = static_cast<uint32_t>( deviceMasks_.size() );
55022       pDeviceMasks = deviceMasks_.data();
55023       return *this;
55024     }
55025 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55026 
setModeVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55027     DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT
55028     {
55029       mode = mode_;
55030       return *this;
55031     }
55032 
55033 
operator VkDeviceGroupPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55034     operator VkDeviceGroupPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
55035     {
55036       return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>( this );
55037     }
55038 
operator VkDeviceGroupPresentInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55039     operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
55040     {
55041       return *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>( this );
55042     }
55043 
55044 
55045 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55046     auto operator<=>( DeviceGroupPresentInfoKHR const& ) const = default;
55047 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55048     bool operator==( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55049     {
55050       return ( sType == rhs.sType )
55051           && ( pNext == rhs.pNext )
55052           && ( swapchainCount == rhs.swapchainCount )
55053           && ( pDeviceMasks == rhs.pDeviceMasks )
55054           && ( mode == rhs.mode );
55055     }
55056 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55057     bool operator!=( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55058     {
55059       return !operator==( rhs );
55060     }
55061 #endif
55062 
55063 
55064 
55065   public:
55066     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR;
55067     const void* pNext = {};
55068     uint32_t swapchainCount = {};
55069     const uint32_t* pDeviceMasks = {};
55070     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal;
55071 
55072   };
55073   static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), "struct and wrapper have different size!" );
55074   static_assert( std::is_standard_layout<DeviceGroupPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
55075 
55076   template <>
55077   struct CppType<StructureType, StructureType::eDeviceGroupPresentInfoKHR>
55078   {
55079     using Type = DeviceGroupPresentInfoKHR;
55080   };
55081 
55082   struct DeviceGroupRenderPassBeginInfo
55083   {
55084     static const bool allowDuplicate = false;
55085     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupRenderPassBeginInfo;
55086 
55087 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55088     VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo(uint32_t deviceMask_ = {}, uint32_t deviceRenderAreaCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ = {}) VULKAN_HPP_NOEXCEPT
55089     : deviceMask( deviceMask_ ), deviceRenderAreaCount( deviceRenderAreaCount_ ), pDeviceRenderAreas( pDeviceRenderAreas_ )
55090     {}
55091 
55092     VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55093 
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55094     DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55095     {
55096       *this = rhs;
55097     }
55098 
55099 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55100     DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ )
55101     : deviceMask( deviceMask_ ), deviceRenderAreaCount( static_cast<uint32_t>( deviceRenderAreas_.size() ) ), pDeviceRenderAreas( deviceRenderAreas_.data() )
55102     {}
55103 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55104 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55105 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55106     DeviceGroupRenderPassBeginInfo & operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55107     {
55108       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo const *>( &rhs );
55109       return *this;
55110     }
55111 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55112     DeviceGroupRenderPassBeginInfo & operator=( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55113     {
55114       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupRenderPassBeginInfo ) );
55115       return *this;
55116     }
55117 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55118     DeviceGroupRenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55119     {
55120       pNext = pNext_;
55121       return *this;
55122     }
55123 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55124     DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
55125     {
55126       deviceMask = deviceMask_;
55127       return *this;
55128     }
55129 
setDeviceRenderAreaCountVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55130     DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT
55131     {
55132       deviceRenderAreaCount = deviceRenderAreaCount_;
55133       return *this;
55134     }
55135 
setPDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55136     DeviceGroupRenderPassBeginInfo & setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
55137     {
55138       pDeviceRenderAreas = pDeviceRenderAreas_;
55139       return *this;
55140     }
55141 
55142 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55143     DeviceGroupRenderPassBeginInfo & setDeviceRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
55144     {
55145       deviceRenderAreaCount = static_cast<uint32_t>( deviceRenderAreas_.size() );
55146       pDeviceRenderAreas = deviceRenderAreas_.data();
55147       return *this;
55148     }
55149 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55150 
55151 
operator VkDeviceGroupRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55152     operator VkDeviceGroupRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
55153     {
55154       return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>( this );
55155     }
55156 
operator VkDeviceGroupRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55157     operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
55158     {
55159       return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>( this );
55160     }
55161 
55162 
55163 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55164     auto operator<=>( DeviceGroupRenderPassBeginInfo const& ) const = default;
55165 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55166     bool operator==( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55167     {
55168       return ( sType == rhs.sType )
55169           && ( pNext == rhs.pNext )
55170           && ( deviceMask == rhs.deviceMask )
55171           && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount )
55172           && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas );
55173     }
55174 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55175     bool operator!=( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55176     {
55177       return !operator==( rhs );
55178     }
55179 #endif
55180 
55181 
55182 
55183   public:
55184     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo;
55185     const void* pNext = {};
55186     uint32_t deviceMask = {};
55187     uint32_t deviceRenderAreaCount = {};
55188     const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas = {};
55189 
55190   };
55191   static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), "struct and wrapper have different size!" );
55192   static_assert( std::is_standard_layout<DeviceGroupRenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
55193 
55194   template <>
55195   struct CppType<StructureType, StructureType::eDeviceGroupRenderPassBeginInfo>
55196   {
55197     using Type = DeviceGroupRenderPassBeginInfo;
55198   };
55199   using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
55200 
55201   struct DeviceGroupSubmitInfo
55202   {
55203     static const bool allowDuplicate = false;
55204     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSubmitInfo;
55205 
55206 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55207     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
55208     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ ), commandBufferCount( commandBufferCount_ ), pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ )
55209     {}
55210 
55211     VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55212 
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55213     DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55214     {
55215       *this = rhs;
55216     }
55217 
55218 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55219     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_ = {} )
55220     : 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() )
55221     {}
55222 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55223 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55224 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55225     DeviceGroupSubmitInfo & operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55226     {
55227       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo const *>( &rhs );
55228       return *this;
55229     }
55230 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55231     DeviceGroupSubmitInfo & operator=( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55232     {
55233       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupSubmitInfo ) );
55234       return *this;
55235     }
55236 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55237     DeviceGroupSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55238     {
55239       pNext = pNext_;
55240       return *this;
55241     }
55242 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55243     DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
55244     {
55245       waitSemaphoreCount = waitSemaphoreCount_;
55246       return *this;
55247     }
55248 
setPWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55249     DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t* pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
55250     {
55251       pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_;
55252       return *this;
55253     }
55254 
55255 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55256     DeviceGroupSubmitInfo & setWaitSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
55257     {
55258       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphoreDeviceIndices_.size() );
55259       pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices_.data();
55260       return *this;
55261     }
55262 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55263 
setCommandBufferCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55264     DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
55265     {
55266       commandBufferCount = commandBufferCount_;
55267       return *this;
55268     }
55269 
setPCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55270     DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t* pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
55271     {
55272       pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_;
55273       return *this;
55274     }
55275 
55276 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55277     DeviceGroupSubmitInfo & setCommandBufferDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
55278     {
55279       commandBufferCount = static_cast<uint32_t>( commandBufferDeviceMasks_.size() );
55280       pCommandBufferDeviceMasks = commandBufferDeviceMasks_.data();
55281       return *this;
55282     }
55283 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55284 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55285     DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
55286     {
55287       signalSemaphoreCount = signalSemaphoreCount_;
55288       return *this;
55289     }
55290 
setPSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55291     DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t* pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
55292     {
55293       pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_;
55294       return *this;
55295     }
55296 
55297 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55298     DeviceGroupSubmitInfo & setSignalSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
55299     {
55300       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphoreDeviceIndices_.size() );
55301       pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices_.data();
55302       return *this;
55303     }
55304 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55305 
55306 
operator VkDeviceGroupSubmitInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55307     operator VkDeviceGroupSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
55308     {
55309       return *reinterpret_cast<const VkDeviceGroupSubmitInfo*>( this );
55310     }
55311 
operator VkDeviceGroupSubmitInfo&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55312     operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT
55313     {
55314       return *reinterpret_cast<VkDeviceGroupSubmitInfo*>( this );
55315     }
55316 
55317 
55318 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55319     auto operator<=>( DeviceGroupSubmitInfo const& ) const = default;
55320 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55321     bool operator==( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55322     {
55323       return ( sType == rhs.sType )
55324           && ( pNext == rhs.pNext )
55325           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
55326           && ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices )
55327           && ( commandBufferCount == rhs.commandBufferCount )
55328           && ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks )
55329           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
55330           && ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices );
55331     }
55332 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55333     bool operator!=( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55334     {
55335       return !operator==( rhs );
55336     }
55337 #endif
55338 
55339 
55340 
55341   public:
55342     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo;
55343     const void* pNext = {};
55344     uint32_t waitSemaphoreCount = {};
55345     const uint32_t* pWaitSemaphoreDeviceIndices = {};
55346     uint32_t commandBufferCount = {};
55347     const uint32_t* pCommandBufferDeviceMasks = {};
55348     uint32_t signalSemaphoreCount = {};
55349     const uint32_t* pSignalSemaphoreDeviceIndices = {};
55350 
55351   };
55352   static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), "struct and wrapper have different size!" );
55353   static_assert( std::is_standard_layout<DeviceGroupSubmitInfo>::value, "struct wrapper is not a standard layout!" );
55354 
55355   template <>
55356   struct CppType<StructureType, StructureType::eDeviceGroupSubmitInfo>
55357   {
55358     using Type = DeviceGroupSubmitInfo;
55359   };
55360   using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
55361 
55362   struct DeviceGroupSwapchainCreateInfoKHR
55363   {
55364     static const bool allowDuplicate = false;
55365     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
55366 
55367 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55368     VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT
55369     : modes( modes_ )
55370     {}
55371 
55372     VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55373 
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55374     DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55375     {
55376       *this = rhs;
55377     }
55378 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55379 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55380     DeviceGroupSwapchainCreateInfoKHR & operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55381     {
55382       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR const *>( &rhs );
55383       return *this;
55384     }
55385 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55386     DeviceGroupSwapchainCreateInfoKHR & operator=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55387     {
55388       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupSwapchainCreateInfoKHR ) );
55389       return *this;
55390     }
55391 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55392     DeviceGroupSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55393     {
55394       pNext = pNext_;
55395       return *this;
55396     }
55397 
setModesVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55398     DeviceGroupSwapchainCreateInfoKHR & setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT
55399     {
55400       modes = modes_;
55401       return *this;
55402     }
55403 
55404 
operator VkDeviceGroupSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55405     operator VkDeviceGroupSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
55406     {
55407       return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>( this );
55408     }
55409 
operator VkDeviceGroupSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55410     operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
55411     {
55412       return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>( this );
55413     }
55414 
55415 
55416 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55417     auto operator<=>( DeviceGroupSwapchainCreateInfoKHR const& ) const = default;
55418 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55419     bool operator==( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55420     {
55421       return ( sType == rhs.sType )
55422           && ( pNext == rhs.pNext )
55423           && ( modes == rhs.modes );
55424     }
55425 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55426     bool operator!=( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55427     {
55428       return !operator==( rhs );
55429     }
55430 #endif
55431 
55432 
55433 
55434   public:
55435     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
55436     const void* pNext = {};
55437     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
55438 
55439   };
55440   static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
55441   static_assert( std::is_standard_layout<DeviceGroupSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
55442 
55443   template <>
55444   struct CppType<StructureType, StructureType::eDeviceGroupSwapchainCreateInfoKHR>
55445   {
55446     using Type = DeviceGroupSwapchainCreateInfoKHR;
55447   };
55448 
55449   struct DeviceMemoryOverallocationCreateInfoAMD
55450   {
55451     static const bool allowDuplicate = false;
55452     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
55453 
55454 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55455     VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD(VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault) VULKAN_HPP_NOEXCEPT
55456     : overallocationBehavior( overallocationBehavior_ )
55457     {}
55458 
55459     VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55460 
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55461     DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55462     {
55463       *this = rhs;
55464     }
55465 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55466 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55467     DeviceMemoryOverallocationCreateInfoAMD & operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55468     {
55469       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD const *>( &rhs );
55470       return *this;
55471     }
55472 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55473     DeviceMemoryOverallocationCreateInfoAMD & operator=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55474     {
55475       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceMemoryOverallocationCreateInfoAMD ) );
55476       return *this;
55477     }
55478 
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55479     DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55480     {
55481       pNext = pNext_;
55482       return *this;
55483     }
55484 
setOverallocationBehaviorVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55485     DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT
55486     {
55487       overallocationBehavior = overallocationBehavior_;
55488       return *this;
55489     }
55490 
55491 
operator VkDeviceMemoryOverallocationCreateInfoAMD const&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55492     operator VkDeviceMemoryOverallocationCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
55493     {
55494       return *reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
55495     }
55496 
operator VkDeviceMemoryOverallocationCreateInfoAMD&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55497     operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
55498     {
55499       return *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
55500     }
55501 
55502 
55503 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55504     auto operator<=>( DeviceMemoryOverallocationCreateInfoAMD const& ) const = default;
55505 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55506     bool operator==( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
55507     {
55508       return ( sType == rhs.sType )
55509           && ( pNext == rhs.pNext )
55510           && ( overallocationBehavior == rhs.overallocationBehavior );
55511     }
55512 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55513     bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
55514     {
55515       return !operator==( rhs );
55516     }
55517 #endif
55518 
55519 
55520 
55521   public:
55522     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
55523     const void* pNext = {};
55524     VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault;
55525 
55526   };
55527   static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), "struct and wrapper have different size!" );
55528   static_assert( std::is_standard_layout<DeviceMemoryOverallocationCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
55529 
55530   template <>
55531   struct CppType<StructureType, StructureType::eDeviceMemoryOverallocationCreateInfoAMD>
55532   {
55533     using Type = DeviceMemoryOverallocationCreateInfoAMD;
55534   };
55535 
55536   struct DeviceMemoryReportCallbackDataEXT
55537   {
55538     static const bool allowDuplicate = false;
55539     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryReportCallbackDataEXT;
55540 
55541 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryReportCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55542     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
55543     : flags( flags_ ), type( type_ ), memoryObjectId( memoryObjectId_ ), size( size_ ), objectType( objectType_ ), objectHandle( objectHandle_ ), heapIndex( heapIndex_ )
55544     {}
55545 
55546     VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55547 
DeviceMemoryReportCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55548     DeviceMemoryReportCallbackDataEXT( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55549     {
55550       *this = rhs;
55551     }
55552 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55553 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55554     DeviceMemoryReportCallbackDataEXT & operator=( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55555     {
55556       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT const *>( &rhs );
55557       return *this;
55558     }
55559 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55560     DeviceMemoryReportCallbackDataEXT & operator=( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55561     {
55562       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceMemoryReportCallbackDataEXT ) );
55563       return *this;
55564     }
55565 
55566 
operator VkDeviceMemoryReportCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55567     operator VkDeviceMemoryReportCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT
55568     {
55569       return *reinterpret_cast<const VkDeviceMemoryReportCallbackDataEXT*>( this );
55570     }
55571 
operator VkDeviceMemoryReportCallbackDataEXT&VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55572     operator VkDeviceMemoryReportCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
55573     {
55574       return *reinterpret_cast<VkDeviceMemoryReportCallbackDataEXT*>( this );
55575     }
55576 
55577 
55578 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55579     auto operator<=>( DeviceMemoryReportCallbackDataEXT const& ) const = default;
55580 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55581     bool operator==( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55582     {
55583       return ( sType == rhs.sType )
55584           && ( pNext == rhs.pNext )
55585           && ( flags == rhs.flags )
55586           && ( type == rhs.type )
55587           && ( memoryObjectId == rhs.memoryObjectId )
55588           && ( size == rhs.size )
55589           && ( objectType == rhs.objectType )
55590           && ( objectHandle == rhs.objectHandle )
55591           && ( heapIndex == rhs.heapIndex );
55592     }
55593 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55594     bool operator!=( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55595     {
55596       return !operator==( rhs );
55597     }
55598 #endif
55599 
55600 
55601 
55602   public:
55603     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryReportCallbackDataEXT;
55604     const void* pNext = {};
55605     VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
55606     VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate;
55607     uint64_t memoryObjectId = {};
55608     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
55609     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
55610     uint64_t objectHandle = {};
55611     uint32_t heapIndex = {};
55612 
55613   };
55614   static_assert( sizeof( DeviceMemoryReportCallbackDataEXT ) == sizeof( VkDeviceMemoryReportCallbackDataEXT ), "struct and wrapper have different size!" );
55615   static_assert( std::is_standard_layout<DeviceMemoryReportCallbackDataEXT>::value, "struct wrapper is not a standard layout!" );
55616 
55617   template <>
55618   struct CppType<StructureType, StructureType::eDeviceMemoryReportCallbackDataEXT>
55619   {
55620     using Type = DeviceMemoryReportCallbackDataEXT;
55621   };
55622 
55623   struct DevicePrivateDataCreateInfoEXT
55624   {
55625     static const bool allowDuplicate = true;
55626     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDevicePrivateDataCreateInfoEXT;
55627 
55628 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DevicePrivateDataCreateInfoEXTVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55629     VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT(uint32_t privateDataSlotRequestCount_ = {}) VULKAN_HPP_NOEXCEPT
55630     : privateDataSlotRequestCount( privateDataSlotRequestCount_ )
55631     {}
55632 
55633     VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55634 
DevicePrivateDataCreateInfoEXTVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55635     DevicePrivateDataCreateInfoEXT( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55636     {
55637       *this = rhs;
55638     }
55639 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55640 
operator =VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55641     DevicePrivateDataCreateInfoEXT & operator=( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55642     {
55643       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT const *>( &rhs );
55644       return *this;
55645     }
55646 
operator =VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55647     DevicePrivateDataCreateInfoEXT & operator=( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55648     {
55649       memcpy( static_cast<void *>( this ), &rhs, sizeof( DevicePrivateDataCreateInfoEXT ) );
55650       return *this;
55651     }
55652 
setPNextVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55653     DevicePrivateDataCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55654     {
55655       pNext = pNext_;
55656       return *this;
55657     }
55658 
setPrivateDataSlotRequestCountVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55659     DevicePrivateDataCreateInfoEXT & setPrivateDataSlotRequestCount( uint32_t privateDataSlotRequestCount_ ) VULKAN_HPP_NOEXCEPT
55660     {
55661       privateDataSlotRequestCount = privateDataSlotRequestCount_;
55662       return *this;
55663     }
55664 
55665 
operator VkDevicePrivateDataCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55666     operator VkDevicePrivateDataCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
55667     {
55668       return *reinterpret_cast<const VkDevicePrivateDataCreateInfoEXT*>( this );
55669     }
55670 
operator VkDevicePrivateDataCreateInfoEXT&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55671     operator VkDevicePrivateDataCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
55672     {
55673       return *reinterpret_cast<VkDevicePrivateDataCreateInfoEXT*>( this );
55674     }
55675 
55676 
55677 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55678     auto operator<=>( DevicePrivateDataCreateInfoEXT const& ) const = default;
55679 #else
operator ==VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55680     bool operator==( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55681     {
55682       return ( sType == rhs.sType )
55683           && ( pNext == rhs.pNext )
55684           && ( privateDataSlotRequestCount == rhs.privateDataSlotRequestCount );
55685     }
55686 
operator !=VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55687     bool operator!=( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55688     {
55689       return !operator==( rhs );
55690     }
55691 #endif
55692 
55693 
55694 
55695   public:
55696     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDevicePrivateDataCreateInfoEXT;
55697     const void* pNext = {};
55698     uint32_t privateDataSlotRequestCount = {};
55699 
55700   };
55701   static_assert( sizeof( DevicePrivateDataCreateInfoEXT ) == sizeof( VkDevicePrivateDataCreateInfoEXT ), "struct and wrapper have different size!" );
55702   static_assert( std::is_standard_layout<DevicePrivateDataCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
55703 
55704   template <>
55705   struct CppType<StructureType, StructureType::eDevicePrivateDataCreateInfoEXT>
55706   {
55707     using Type = DevicePrivateDataCreateInfoEXT;
55708   };
55709 
55710   struct DeviceQueueGlobalPriorityCreateInfoEXT
55711   {
55712     static const bool allowDuplicate = false;
55713     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
55714 
55715 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55716     VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT(VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow) VULKAN_HPP_NOEXCEPT
55717     : globalPriority( globalPriority_ )
55718     {}
55719 
55720     VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55721 
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55722     DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55723     {
55724       *this = rhs;
55725     }
55726 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55727 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55728     DeviceQueueGlobalPriorityCreateInfoEXT & operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55729     {
55730       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT const *>( &rhs );
55731       return *this;
55732     }
55733 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55734     DeviceQueueGlobalPriorityCreateInfoEXT & operator=( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55735     {
55736       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) );
55737       return *this;
55738     }
55739 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55740     DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55741     {
55742       pNext = pNext_;
55743       return *this;
55744     }
55745 
setGlobalPriorityVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55746     DeviceQueueGlobalPriorityCreateInfoEXT & setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ ) VULKAN_HPP_NOEXCEPT
55747     {
55748       globalPriority = globalPriority_;
55749       return *this;
55750     }
55751 
55752 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55753     operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
55754     {
55755       return *reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
55756     }
55757 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55758     operator VkDeviceQueueGlobalPriorityCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
55759     {
55760       return *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
55761     }
55762 
55763 
55764 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55765     auto operator<=>( DeviceQueueGlobalPriorityCreateInfoEXT const& ) const = default;
55766 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55767     bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55768     {
55769       return ( sType == rhs.sType )
55770           && ( pNext == rhs.pNext )
55771           && ( globalPriority == rhs.globalPriority );
55772     }
55773 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55774     bool operator!=( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55775     {
55776       return !operator==( rhs );
55777     }
55778 #endif
55779 
55780 
55781 
55782   public:
55783     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
55784     const void* pNext = {};
55785     VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow;
55786 
55787   };
55788   static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), "struct and wrapper have different size!" );
55789   static_assert( std::is_standard_layout<DeviceQueueGlobalPriorityCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
55790 
55791   template <>
55792   struct CppType<StructureType, StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT>
55793   {
55794     using Type = DeviceQueueGlobalPriorityCreateInfoEXT;
55795   };
55796 
55797 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
55798   struct DirectFBSurfaceCreateInfoEXT
55799   {
55800     static const bool allowDuplicate = false;
55801     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectfbSurfaceCreateInfoEXT;
55802 
55803 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DirectFBSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55804     VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ = {}, IDirectFB* dfb_ = {}, IDirectFBSurface* surface_ = {}) VULKAN_HPP_NOEXCEPT
55805     : flags( flags_ ), dfb( dfb_ ), surface( surface_ )
55806     {}
55807 
55808     VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55809 
DirectFBSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55810     DirectFBSurfaceCreateInfoEXT( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55811     {
55812       *this = rhs;
55813     }
55814 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55815 
operator =VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55816     DirectFBSurfaceCreateInfoEXT & operator=( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55817     {
55818       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const *>( &rhs );
55819       return *this;
55820     }
55821 
operator =VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55822     DirectFBSurfaceCreateInfoEXT & operator=( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55823     {
55824       memcpy( static_cast<void *>( this ), &rhs, sizeof( DirectFBSurfaceCreateInfoEXT ) );
55825       return *this;
55826     }
55827 
setPNextVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55828     DirectFBSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55829     {
55830       pNext = pNext_;
55831       return *this;
55832     }
55833 
setFlagsVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55834     DirectFBSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
55835     {
55836       flags = flags_;
55837       return *this;
55838     }
55839 
setDfbVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55840     DirectFBSurfaceCreateInfoEXT & setDfb( IDirectFB* dfb_ ) VULKAN_HPP_NOEXCEPT
55841     {
55842       dfb = dfb_;
55843       return *this;
55844     }
55845 
setSurfaceVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55846     DirectFBSurfaceCreateInfoEXT & setSurface( IDirectFBSurface* surface_ ) VULKAN_HPP_NOEXCEPT
55847     {
55848       surface = surface_;
55849       return *this;
55850     }
55851 
55852 
operator VkDirectFBSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55853     operator VkDirectFBSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
55854     {
55855       return *reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT*>( this );
55856     }
55857 
operator VkDirectFBSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55858     operator VkDirectFBSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
55859     {
55860       return *reinterpret_cast<VkDirectFBSurfaceCreateInfoEXT*>( this );
55861     }
55862 
55863 
55864 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55865     auto operator<=>( DirectFBSurfaceCreateInfoEXT const& ) const = default;
55866 #else
operator ==VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55867     bool operator==( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55868     {
55869       return ( sType == rhs.sType )
55870           && ( pNext == rhs.pNext )
55871           && ( flags == rhs.flags )
55872           && ( dfb == rhs.dfb )
55873           && ( surface == rhs.surface );
55874     }
55875 
operator !=VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55876     bool operator!=( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55877     {
55878       return !operator==( rhs );
55879     }
55880 #endif
55881 
55882 
55883 
55884   public:
55885     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectfbSurfaceCreateInfoEXT;
55886     const void* pNext = {};
55887     VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags = {};
55888     IDirectFB* dfb = {};
55889     IDirectFBSurface* surface = {};
55890 
55891   };
55892   static_assert( sizeof( DirectFBSurfaceCreateInfoEXT ) == sizeof( VkDirectFBSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
55893   static_assert( std::is_standard_layout<DirectFBSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
55894 
55895   template <>
55896   struct CppType<StructureType, StructureType::eDirectfbSurfaceCreateInfoEXT>
55897   {
55898     using Type = DirectFBSurfaceCreateInfoEXT;
55899   };
55900 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
55901 
55902   struct DispatchIndirectCommand
55903   {
55904 
55905 
55906 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand55907     VULKAN_HPP_CONSTEXPR DispatchIndirectCommand(uint32_t x_ = {}, uint32_t y_ = {}, uint32_t z_ = {}) VULKAN_HPP_NOEXCEPT
55908     : x( x_ ), y( y_ ), z( z_ )
55909     {}
55910 
55911     VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55912 
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand55913     DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
55914     {
55915       *this = rhs;
55916     }
55917 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55918 
operator =VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55919     DispatchIndirectCommand & operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
55920     {
55921       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchIndirectCommand const *>( &rhs );
55922       return *this;
55923     }
55924 
operator =VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55925     DispatchIndirectCommand & operator=( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
55926     {
55927       memcpy( static_cast<void *>( this ), &rhs, sizeof( DispatchIndirectCommand ) );
55928       return *this;
55929     }
55930 
setXVULKAN_HPP_NAMESPACE::DispatchIndirectCommand55931     DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT
55932     {
55933       x = x_;
55934       return *this;
55935     }
55936 
setYVULKAN_HPP_NAMESPACE::DispatchIndirectCommand55937     DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT
55938     {
55939       y = y_;
55940       return *this;
55941     }
55942 
setZVULKAN_HPP_NAMESPACE::DispatchIndirectCommand55943     DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT
55944     {
55945       z = z_;
55946       return *this;
55947     }
55948 
55949 
operator VkDispatchIndirectCommand const&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55950     operator VkDispatchIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
55951     {
55952       return *reinterpret_cast<const VkDispatchIndirectCommand*>( this );
55953     }
55954 
operator VkDispatchIndirectCommand&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55955     operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT
55956     {
55957       return *reinterpret_cast<VkDispatchIndirectCommand*>( this );
55958     }
55959 
55960 
55961 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55962     auto operator<=>( DispatchIndirectCommand const& ) const = default;
55963 #else
operator ==VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55964     bool operator==( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
55965     {
55966       return ( x == rhs.x )
55967           && ( y == rhs.y )
55968           && ( z == rhs.z );
55969     }
55970 
operator !=VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55971     bool operator!=( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
55972     {
55973       return !operator==( rhs );
55974     }
55975 #endif
55976 
55977 
55978 
55979   public:
55980     uint32_t x = {};
55981     uint32_t y = {};
55982     uint32_t z = {};
55983 
55984   };
55985   static_assert( sizeof( DispatchIndirectCommand ) == sizeof( VkDispatchIndirectCommand ), "struct and wrapper have different size!" );
55986   static_assert( std::is_standard_layout<DispatchIndirectCommand>::value, "struct wrapper is not a standard layout!" );
55987 
55988   struct DisplayNativeHdrSurfaceCapabilitiesAMD
55989   {
55990     static const bool allowDuplicate = false;
55991     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
55992 
55993 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD55994     VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {}) VULKAN_HPP_NOEXCEPT
55995     : localDimmingSupport( localDimmingSupport_ )
55996     {}
55997 
55998     VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55999 
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56000     DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
56001     {
56002       *this = rhs;
56003     }
56004 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56005 
operator =VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56006     DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
56007     {
56008       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD const *>( &rhs );
56009       return *this;
56010     }
56011 
operator =VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56012     DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
56013     {
56014       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) );
56015       return *this;
56016     }
56017 
56018 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56019     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&() const VULKAN_HPP_NOEXCEPT
56020     {
56021       return *reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
56022     }
56023 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56024     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT
56025     {
56026       return *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
56027     }
56028 
56029 
56030 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56031     auto operator<=>( DisplayNativeHdrSurfaceCapabilitiesAMD const& ) const = default;
56032 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56033     bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
56034     {
56035       return ( sType == rhs.sType )
56036           && ( pNext == rhs.pNext )
56037           && ( localDimmingSupport == rhs.localDimmingSupport );
56038     }
56039 
operator !=VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56040     bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
56041     {
56042       return !operator==( rhs );
56043     }
56044 #endif
56045 
56046 
56047 
56048   public:
56049     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
56050     void* pNext = {};
56051     VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {};
56052 
56053   };
56054   static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), "struct and wrapper have different size!" );
56055   static_assert( std::is_standard_layout<DisplayNativeHdrSurfaceCapabilitiesAMD>::value, "struct wrapper is not a standard layout!" );
56056 
56057   template <>
56058   struct CppType<StructureType, StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD>
56059   {
56060     using Type = DisplayNativeHdrSurfaceCapabilitiesAMD;
56061   };
56062 
56063   struct DisplayPresentInfoKHR
56064   {
56065     static const bool allowDuplicate = false;
56066     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPresentInfoKHR;
56067 
56068 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56069     VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR(VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {}, VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {}) VULKAN_HPP_NOEXCEPT
56070     : srcRect( srcRect_ ), dstRect( dstRect_ ), persistent( persistent_ )
56071     {}
56072 
56073     VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56074 
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56075     DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56076     {
56077       *this = rhs;
56078     }
56079 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56080 
operator =VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56081     DisplayPresentInfoKHR & operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56082     {
56083       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR const *>( &rhs );
56084       return *this;
56085     }
56086 
operator =VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56087     DisplayPresentInfoKHR & operator=( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56088     {
56089       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPresentInfoKHR ) );
56090       return *this;
56091     }
56092 
setPNextVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56093     DisplayPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56094     {
56095       pNext = pNext_;
56096       return *this;
56097     }
56098 
setSrcRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56099     DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D const & srcRect_ ) VULKAN_HPP_NOEXCEPT
56100     {
56101       srcRect = srcRect_;
56102       return *this;
56103     }
56104 
setDstRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56105     DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D const & dstRect_ ) VULKAN_HPP_NOEXCEPT
56106     {
56107       dstRect = dstRect_;
56108       return *this;
56109     }
56110 
setPersistentVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56111     DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT
56112     {
56113       persistent = persistent_;
56114       return *this;
56115     }
56116 
56117 
operator VkDisplayPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56118     operator VkDisplayPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
56119     {
56120       return *reinterpret_cast<const VkDisplayPresentInfoKHR*>( this );
56121     }
56122 
operator VkDisplayPresentInfoKHR&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56123     operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
56124     {
56125       return *reinterpret_cast<VkDisplayPresentInfoKHR*>( this );
56126     }
56127 
56128 
56129 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56130     auto operator<=>( DisplayPresentInfoKHR const& ) const = default;
56131 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56132     bool operator==( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56133     {
56134       return ( sType == rhs.sType )
56135           && ( pNext == rhs.pNext )
56136           && ( srcRect == rhs.srcRect )
56137           && ( dstRect == rhs.dstRect )
56138           && ( persistent == rhs.persistent );
56139     }
56140 
operator !=VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56141     bool operator!=( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56142     {
56143       return !operator==( rhs );
56144     }
56145 #endif
56146 
56147 
56148 
56149   public:
56150     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR;
56151     const void* pNext = {};
56152     VULKAN_HPP_NAMESPACE::Rect2D srcRect = {};
56153     VULKAN_HPP_NAMESPACE::Rect2D dstRect = {};
56154     VULKAN_HPP_NAMESPACE::Bool32 persistent = {};
56155 
56156   };
56157   static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), "struct and wrapper have different size!" );
56158   static_assert( std::is_standard_layout<DisplayPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
56159 
56160   template <>
56161   struct CppType<StructureType, StructureType::eDisplayPresentInfoKHR>
56162   {
56163     using Type = DisplayPresentInfoKHR;
56164   };
56165 
56166   struct DisplaySurfaceCreateInfoKHR
56167   {
56168     static const bool allowDuplicate = false;
56169     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplaySurfaceCreateInfoKHR;
56170 
56171 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56172     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
56173     : flags( flags_ ), displayMode( displayMode_ ), planeIndex( planeIndex_ ), planeStackIndex( planeStackIndex_ ), transform( transform_ ), globalAlpha( globalAlpha_ ), alphaMode( alphaMode_ ), imageExtent( imageExtent_ )
56174     {}
56175 
56176     VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56177 
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56178     DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56179     {
56180       *this = rhs;
56181     }
56182 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56183 
operator =VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56184     DisplaySurfaceCreateInfoKHR & operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56185     {
56186       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const *>( &rhs );
56187       return *this;
56188     }
56189 
operator =VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56190     DisplaySurfaceCreateInfoKHR & operator=( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56191     {
56192       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplaySurfaceCreateInfoKHR ) );
56193       return *this;
56194     }
56195 
setPNextVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56196     DisplaySurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56197     {
56198       pNext = pNext_;
56199       return *this;
56200     }
56201 
setFlagsVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56202     DisplaySurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
56203     {
56204       flags = flags_;
56205       return *this;
56206     }
56207 
setDisplayModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56208     DisplaySurfaceCreateInfoKHR & setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT
56209     {
56210       displayMode = displayMode_;
56211       return *this;
56212     }
56213 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56214     DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
56215     {
56216       planeIndex = planeIndex_;
56217       return *this;
56218     }
56219 
setPlaneStackIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56220     DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT
56221     {
56222       planeStackIndex = planeStackIndex_;
56223       return *this;
56224     }
56225 
setTransformVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56226     DisplaySurfaceCreateInfoKHR & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
56227     {
56228       transform = transform_;
56229       return *this;
56230     }
56231 
setGlobalAlphaVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56232     DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT
56233     {
56234       globalAlpha = globalAlpha_;
56235       return *this;
56236     }
56237 
setAlphaModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56238     DisplaySurfaceCreateInfoKHR & setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT
56239     {
56240       alphaMode = alphaMode_;
56241       return *this;
56242     }
56243 
setImageExtentVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56244     DisplaySurfaceCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
56245     {
56246       imageExtent = imageExtent_;
56247       return *this;
56248     }
56249 
56250 
operator VkDisplaySurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56251     operator VkDisplaySurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
56252     {
56253       return *reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( this );
56254     }
56255 
operator VkDisplaySurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56256     operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
56257     {
56258       return *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>( this );
56259     }
56260 
56261 
56262 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56263     auto operator<=>( DisplaySurfaceCreateInfoKHR const& ) const = default;
56264 #else
operator ==VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56265     bool operator==( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56266     {
56267       return ( sType == rhs.sType )
56268           && ( pNext == rhs.pNext )
56269           && ( flags == rhs.flags )
56270           && ( displayMode == rhs.displayMode )
56271           && ( planeIndex == rhs.planeIndex )
56272           && ( planeStackIndex == rhs.planeStackIndex )
56273           && ( transform == rhs.transform )
56274           && ( globalAlpha == rhs.globalAlpha )
56275           && ( alphaMode == rhs.alphaMode )
56276           && ( imageExtent == rhs.imageExtent );
56277     }
56278 
operator !=VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56279     bool operator!=( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56280     {
56281       return !operator==( rhs );
56282     }
56283 #endif
56284 
56285 
56286 
56287   public:
56288     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR;
56289     const void* pNext = {};
56290     VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {};
56291     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
56292     uint32_t planeIndex = {};
56293     uint32_t planeStackIndex = {};
56294     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
56295     float globalAlpha = {};
56296     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque;
56297     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
56298 
56299   };
56300   static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
56301   static_assert( std::is_standard_layout<DisplaySurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
56302 
56303   template <>
56304   struct CppType<StructureType, StructureType::eDisplaySurfaceCreateInfoKHR>
56305   {
56306     using Type = DisplaySurfaceCreateInfoKHR;
56307   };
56308 
56309   struct DrawIndexedIndirectCommand
56310   {
56311 
56312 
56313 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56314     VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand(uint32_t indexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstIndex_ = {}, int32_t vertexOffset_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT
56315     : indexCount( indexCount_ ), instanceCount( instanceCount_ ), firstIndex( firstIndex_ ), vertexOffset( vertexOffset_ ), firstInstance( firstInstance_ )
56316     {}
56317 
56318     VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56319 
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56320     DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56321     {
56322       *this = rhs;
56323     }
56324 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56325 
operator =VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56326     DrawIndexedIndirectCommand & operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56327     {
56328       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand const *>( &rhs );
56329       return *this;
56330     }
56331 
operator =VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56332     DrawIndexedIndirectCommand & operator=( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56333     {
56334       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrawIndexedIndirectCommand ) );
56335       return *this;
56336     }
56337 
setIndexCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56338     DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
56339     {
56340       indexCount = indexCount_;
56341       return *this;
56342     }
56343 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56344     DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
56345     {
56346       instanceCount = instanceCount_;
56347       return *this;
56348     }
56349 
setFirstIndexVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56350     DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
56351     {
56352       firstIndex = firstIndex_;
56353       return *this;
56354     }
56355 
setVertexOffsetVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56356     DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT
56357     {
56358       vertexOffset = vertexOffset_;
56359       return *this;
56360     }
56361 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56362     DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
56363     {
56364       firstInstance = firstInstance_;
56365       return *this;
56366     }
56367 
56368 
operator VkDrawIndexedIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56369     operator VkDrawIndexedIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
56370     {
56371       return *reinterpret_cast<const VkDrawIndexedIndirectCommand*>( this );
56372     }
56373 
operator VkDrawIndexedIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56374     operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT
56375     {
56376       return *reinterpret_cast<VkDrawIndexedIndirectCommand*>( this );
56377     }
56378 
56379 
56380 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56381     auto operator<=>( DrawIndexedIndirectCommand const& ) const = default;
56382 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56383     bool operator==( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56384     {
56385       return ( indexCount == rhs.indexCount )
56386           && ( instanceCount == rhs.instanceCount )
56387           && ( firstIndex == rhs.firstIndex )
56388           && ( vertexOffset == rhs.vertexOffset )
56389           && ( firstInstance == rhs.firstInstance );
56390     }
56391 
operator !=VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56392     bool operator!=( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56393     {
56394       return !operator==( rhs );
56395     }
56396 #endif
56397 
56398 
56399 
56400   public:
56401     uint32_t indexCount = {};
56402     uint32_t instanceCount = {};
56403     uint32_t firstIndex = {};
56404     int32_t vertexOffset = {};
56405     uint32_t firstInstance = {};
56406 
56407   };
56408   static_assert( sizeof( DrawIndexedIndirectCommand ) == sizeof( VkDrawIndexedIndirectCommand ), "struct and wrapper have different size!" );
56409   static_assert( std::is_standard_layout<DrawIndexedIndirectCommand>::value, "struct wrapper is not a standard layout!" );
56410 
56411   struct DrawIndirectCommand
56412   {
56413 
56414 
56415 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand56416     VULKAN_HPP_CONSTEXPR DrawIndirectCommand(uint32_t vertexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstVertex_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT
56417     : vertexCount( vertexCount_ ), instanceCount( instanceCount_ ), firstVertex( firstVertex_ ), firstInstance( firstInstance_ )
56418     {}
56419 
56420     VULKAN_HPP_CONSTEXPR DrawIndirectCommand( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56421 
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand56422     DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56423     {
56424       *this = rhs;
56425     }
56426 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56427 
operator =VULKAN_HPP_NAMESPACE::DrawIndirectCommand56428     DrawIndirectCommand & operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56429     {
56430       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndirectCommand const *>( &rhs );
56431       return *this;
56432     }
56433 
operator =VULKAN_HPP_NAMESPACE::DrawIndirectCommand56434     DrawIndirectCommand & operator=( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56435     {
56436       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrawIndirectCommand ) );
56437       return *this;
56438     }
56439 
setVertexCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand56440     DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
56441     {
56442       vertexCount = vertexCount_;
56443       return *this;
56444     }
56445 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand56446     DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
56447     {
56448       instanceCount = instanceCount_;
56449       return *this;
56450     }
56451 
setFirstVertexVULKAN_HPP_NAMESPACE::DrawIndirectCommand56452     DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
56453     {
56454       firstVertex = firstVertex_;
56455       return *this;
56456     }
56457 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndirectCommand56458     DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
56459     {
56460       firstInstance = firstInstance_;
56461       return *this;
56462     }
56463 
56464 
operator VkDrawIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndirectCommand56465     operator VkDrawIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
56466     {
56467       return *reinterpret_cast<const VkDrawIndirectCommand*>( this );
56468     }
56469 
operator VkDrawIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndirectCommand56470     operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT
56471     {
56472       return *reinterpret_cast<VkDrawIndirectCommand*>( this );
56473     }
56474 
56475 
56476 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56477     auto operator<=>( DrawIndirectCommand const& ) const = default;
56478 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndirectCommand56479     bool operator==( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56480     {
56481       return ( vertexCount == rhs.vertexCount )
56482           && ( instanceCount == rhs.instanceCount )
56483           && ( firstVertex == rhs.firstVertex )
56484           && ( firstInstance == rhs.firstInstance );
56485     }
56486 
operator !=VULKAN_HPP_NAMESPACE::DrawIndirectCommand56487     bool operator!=( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56488     {
56489       return !operator==( rhs );
56490     }
56491 #endif
56492 
56493 
56494 
56495   public:
56496     uint32_t vertexCount = {};
56497     uint32_t instanceCount = {};
56498     uint32_t firstVertex = {};
56499     uint32_t firstInstance = {};
56500 
56501   };
56502   static_assert( sizeof( DrawIndirectCommand ) == sizeof( VkDrawIndirectCommand ), "struct and wrapper have different size!" );
56503   static_assert( std::is_standard_layout<DrawIndirectCommand>::value, "struct wrapper is not a standard layout!" );
56504 
56505   struct DrawMeshTasksIndirectCommandNV
56506   {
56507 
56508 
56509 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56510     VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV(uint32_t taskCount_ = {}, uint32_t firstTask_ = {}) VULKAN_HPP_NOEXCEPT
56511     : taskCount( taskCount_ ), firstTask( firstTask_ )
56512     {}
56513 
56514     VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56515 
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56516     DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
56517     {
56518       *this = rhs;
56519     }
56520 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56521 
operator =VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56522     DrawMeshTasksIndirectCommandNV & operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
56523     {
56524       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV const *>( &rhs );
56525       return *this;
56526     }
56527 
operator =VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56528     DrawMeshTasksIndirectCommandNV & operator=( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
56529     {
56530       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrawMeshTasksIndirectCommandNV ) );
56531       return *this;
56532     }
56533 
setTaskCountVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56534     DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT
56535     {
56536       taskCount = taskCount_;
56537       return *this;
56538     }
56539 
setFirstTaskVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56540     DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT
56541     {
56542       firstTask = firstTask_;
56543       return *this;
56544     }
56545 
56546 
operator VkDrawMeshTasksIndirectCommandNV const&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56547     operator VkDrawMeshTasksIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
56548     {
56549       return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandNV*>( this );
56550     }
56551 
operator VkDrawMeshTasksIndirectCommandNV&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56552     operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
56553     {
56554       return *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>( this );
56555     }
56556 
56557 
56558 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56559     auto operator<=>( DrawMeshTasksIndirectCommandNV const& ) const = default;
56560 #else
operator ==VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56561     bool operator==( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
56562     {
56563       return ( taskCount == rhs.taskCount )
56564           && ( firstTask == rhs.firstTask );
56565     }
56566 
operator !=VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56567     bool operator!=( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
56568     {
56569       return !operator==( rhs );
56570     }
56571 #endif
56572 
56573 
56574 
56575   public:
56576     uint32_t taskCount = {};
56577     uint32_t firstTask = {};
56578 
56579   };
56580   static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), "struct and wrapper have different size!" );
56581   static_assert( std::is_standard_layout<DrawMeshTasksIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
56582 
56583   struct DrmFormatModifierPropertiesEXT
56584   {
56585 
56586 
56587 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56588     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {}) VULKAN_HPP_NOEXCEPT
56589     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
56590     {}
56591 
56592     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56593 
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56594     DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56595     {
56596       *this = rhs;
56597     }
56598 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56599 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56600     DrmFormatModifierPropertiesEXT & operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56601     {
56602       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT const *>( &rhs );
56603       return *this;
56604     }
56605 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56606     DrmFormatModifierPropertiesEXT & operator=( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56607     {
56608       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrmFormatModifierPropertiesEXT ) );
56609       return *this;
56610     }
56611 
56612 
operator VkDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56613     operator VkDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
56614     {
56615       return *reinterpret_cast<const VkDrmFormatModifierPropertiesEXT*>( this );
56616     }
56617 
operator VkDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56618     operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
56619     {
56620       return *reinterpret_cast<VkDrmFormatModifierPropertiesEXT*>( this );
56621     }
56622 
56623 
56624 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56625     auto operator<=>( DrmFormatModifierPropertiesEXT const& ) const = default;
56626 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56627     bool operator==( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56628     {
56629       return ( drmFormatModifier == rhs.drmFormatModifier )
56630           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
56631           && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
56632     }
56633 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56634     bool operator!=( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56635     {
56636       return !operator==( rhs );
56637     }
56638 #endif
56639 
56640 
56641 
56642   public:
56643     uint64_t drmFormatModifier = {};
56644     uint32_t drmFormatModifierPlaneCount = {};
56645     VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {};
56646 
56647   };
56648   static_assert( sizeof( DrmFormatModifierPropertiesEXT ) == sizeof( VkDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
56649   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
56650 
56651   struct DrmFormatModifierPropertiesListEXT
56652   {
56653     static const bool allowDuplicate = false;
56654     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesListEXT;
56655 
56656 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56657     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT(uint32_t drmFormatModifierCount_ = {}, VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties_ = {}) VULKAN_HPP_NOEXCEPT
56658     : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
56659     {}
56660 
56661     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56662 
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56663     DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56664     {
56665       *this = rhs;
56666     }
56667 
56668 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56669     DrmFormatModifierPropertiesListEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT> const & drmFormatModifierProperties_ )
56670     : drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifierProperties_.size() ) ), pDrmFormatModifierProperties( drmFormatModifierProperties_.data() )
56671     {}
56672 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
56673 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56674 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56675     DrmFormatModifierPropertiesListEXT & operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56676     {
56677       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT const *>( &rhs );
56678       return *this;
56679     }
56680 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56681     DrmFormatModifierPropertiesListEXT & operator=( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56682     {
56683       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrmFormatModifierPropertiesListEXT ) );
56684       return *this;
56685     }
56686 
56687 
operator VkDrmFormatModifierPropertiesListEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56688     operator VkDrmFormatModifierPropertiesListEXT const&() const VULKAN_HPP_NOEXCEPT
56689     {
56690       return *reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>( this );
56691     }
56692 
operator VkDrmFormatModifierPropertiesListEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56693     operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT
56694     {
56695       return *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>( this );
56696     }
56697 
56698 
56699 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56700     auto operator<=>( DrmFormatModifierPropertiesListEXT const& ) const = default;
56701 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56702     bool operator==( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56703     {
56704       return ( sType == rhs.sType )
56705           && ( pNext == rhs.pNext )
56706           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
56707           && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
56708     }
56709 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56710     bool operator!=( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56711     {
56712       return !operator==( rhs );
56713     }
56714 #endif
56715 
56716 
56717 
56718   public:
56719     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT;
56720     void* pNext = {};
56721     uint32_t drmFormatModifierCount = {};
56722     VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties = {};
56723 
56724   };
56725   static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), "struct and wrapper have different size!" );
56726   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesListEXT>::value, "struct wrapper is not a standard layout!" );
56727 
56728   template <>
56729   struct CppType<StructureType, StructureType::eDrmFormatModifierPropertiesListEXT>
56730   {
56731     using Type = DrmFormatModifierPropertiesListEXT;
56732   };
56733 
56734   struct ExportFenceCreateInfo
56735   {
56736     static const bool allowDuplicate = false;
56737     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceCreateInfo;
56738 
56739 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56740     VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
56741     : handleTypes( handleTypes_ )
56742     {}
56743 
56744     VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56745 
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56746     ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56747     {
56748       *this = rhs;
56749     }
56750 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56751 
operator =VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56752     ExportFenceCreateInfo & operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56753     {
56754       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const *>( &rhs );
56755       return *this;
56756     }
56757 
operator =VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56758     ExportFenceCreateInfo & operator=( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56759     {
56760       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportFenceCreateInfo ) );
56761       return *this;
56762     }
56763 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56764     ExportFenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56765     {
56766       pNext = pNext_;
56767       return *this;
56768     }
56769 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56770     ExportFenceCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
56771     {
56772       handleTypes = handleTypes_;
56773       return *this;
56774     }
56775 
56776 
operator VkExportFenceCreateInfo const&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56777     operator VkExportFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
56778     {
56779       return *reinterpret_cast<const VkExportFenceCreateInfo*>( this );
56780     }
56781 
operator VkExportFenceCreateInfo&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56782     operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
56783     {
56784       return *reinterpret_cast<VkExportFenceCreateInfo*>( this );
56785     }
56786 
56787 
56788 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56789     auto operator<=>( ExportFenceCreateInfo const& ) const = default;
56790 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56791     bool operator==( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56792     {
56793       return ( sType == rhs.sType )
56794           && ( pNext == rhs.pNext )
56795           && ( handleTypes == rhs.handleTypes );
56796     }
56797 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56798     bool operator!=( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56799     {
56800       return !operator==( rhs );
56801     }
56802 #endif
56803 
56804 
56805 
56806   public:
56807     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo;
56808     const void* pNext = {};
56809     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {};
56810 
56811   };
56812   static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), "struct and wrapper have different size!" );
56813   static_assert( std::is_standard_layout<ExportFenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
56814 
56815   template <>
56816   struct CppType<StructureType, StructureType::eExportFenceCreateInfo>
56817   {
56818     using Type = ExportFenceCreateInfo;
56819   };
56820   using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
56821 
56822 #ifdef VK_USE_PLATFORM_WIN32_KHR
56823   struct ExportFenceWin32HandleInfoKHR
56824   {
56825     static const bool allowDuplicate = false;
56826     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceWin32HandleInfoKHR;
56827 
56828 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56829     VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
56830     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
56831     {}
56832 
56833     VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56834 
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56835     ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56836     {
56837       *this = rhs;
56838     }
56839 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56840 
operator =VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56841     ExportFenceWin32HandleInfoKHR & operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56842     {
56843       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR const *>( &rhs );
56844       return *this;
56845     }
56846 
operator =VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56847     ExportFenceWin32HandleInfoKHR & operator=( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56848     {
56849       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportFenceWin32HandleInfoKHR ) );
56850       return *this;
56851     }
56852 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56853     ExportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56854     {
56855       pNext = pNext_;
56856       return *this;
56857     }
56858 
setPAttributesVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56859     ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
56860     {
56861       pAttributes = pAttributes_;
56862       return *this;
56863     }
56864 
setDwAccessVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56865     ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
56866     {
56867       dwAccess = dwAccess_;
56868       return *this;
56869     }
56870 
setNameVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56871     ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
56872     {
56873       name = name_;
56874       return *this;
56875     }
56876 
56877 
operator VkExportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56878     operator VkExportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
56879     {
56880       return *reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>( this );
56881     }
56882 
operator VkExportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56883     operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
56884     {
56885       return *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>( this );
56886     }
56887 
56888 
56889 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56890     auto operator<=>( ExportFenceWin32HandleInfoKHR const& ) const = default;
56891 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56892     bool operator==( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56893     {
56894       return ( sType == rhs.sType )
56895           && ( pNext == rhs.pNext )
56896           && ( pAttributes == rhs.pAttributes )
56897           && ( dwAccess == rhs.dwAccess )
56898           && ( name == rhs.name );
56899     }
56900 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56901     bool operator!=( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56902     {
56903       return !operator==( rhs );
56904     }
56905 #endif
56906 
56907 
56908 
56909   public:
56910     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR;
56911     const void* pNext = {};
56912     const SECURITY_ATTRIBUTES* pAttributes = {};
56913     DWORD dwAccess = {};
56914     LPCWSTR name = {};
56915 
56916   };
56917   static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
56918   static_assert( std::is_standard_layout<ExportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
56919 
56920   template <>
56921   struct CppType<StructureType, StructureType::eExportFenceWin32HandleInfoKHR>
56922   {
56923     using Type = ExportFenceWin32HandleInfoKHR;
56924   };
56925 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
56926 
56927   struct ExportMemoryAllocateInfo
56928   {
56929     static const bool allowDuplicate = false;
56930     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfo;
56931 
56932 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56933     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
56934     : handleTypes( handleTypes_ )
56935     {}
56936 
56937     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56938 
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56939     ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56940     {
56941       *this = rhs;
56942     }
56943 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56944 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56945     ExportMemoryAllocateInfo & operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56946     {
56947       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo const *>( &rhs );
56948       return *this;
56949     }
56950 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56951     ExportMemoryAllocateInfo & operator=( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56952     {
56953       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryAllocateInfo ) );
56954       return *this;
56955     }
56956 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56957     ExportMemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56958     {
56959       pNext = pNext_;
56960       return *this;
56961     }
56962 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56963     ExportMemoryAllocateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
56964     {
56965       handleTypes = handleTypes_;
56966       return *this;
56967     }
56968 
56969 
operator VkExportMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56970     operator VkExportMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
56971     {
56972       return *reinterpret_cast<const VkExportMemoryAllocateInfo*>( this );
56973     }
56974 
operator VkExportMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56975     operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
56976     {
56977       return *reinterpret_cast<VkExportMemoryAllocateInfo*>( this );
56978     }
56979 
56980 
56981 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56982     auto operator<=>( ExportMemoryAllocateInfo const& ) const = default;
56983 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56984     bool operator==( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56985     {
56986       return ( sType == rhs.sType )
56987           && ( pNext == rhs.pNext )
56988           && ( handleTypes == rhs.handleTypes );
56989     }
56990 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56991     bool operator!=( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56992     {
56993       return !operator==( rhs );
56994     }
56995 #endif
56996 
56997 
56998 
56999   public:
57000     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo;
57001     const void* pNext = {};
57002     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
57003 
57004   };
57005   static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), "struct and wrapper have different size!" );
57006   static_assert( std::is_standard_layout<ExportMemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
57007 
57008   template <>
57009   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfo>
57010   {
57011     using Type = ExportMemoryAllocateInfo;
57012   };
57013   using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
57014 
57015   struct ExportMemoryAllocateInfoNV
57016   {
57017     static const bool allowDuplicate = false;
57018     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfoNV;
57019 
57020 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57021     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57022     : handleTypes( handleTypes_ )
57023     {}
57024 
57025     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57026 
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57027     ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57028     {
57029       *this = rhs;
57030     }
57031 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57032 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57033     ExportMemoryAllocateInfoNV & operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57034     {
57035       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV const *>( &rhs );
57036       return *this;
57037     }
57038 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57039     ExportMemoryAllocateInfoNV & operator=( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57040     {
57041       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryAllocateInfoNV ) );
57042       return *this;
57043     }
57044 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57045     ExportMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57046     {
57047       pNext = pNext_;
57048       return *this;
57049     }
57050 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57051     ExportMemoryAllocateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
57052     {
57053       handleTypes = handleTypes_;
57054       return *this;
57055     }
57056 
57057 
operator VkExportMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57058     operator VkExportMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT
57059     {
57060       return *reinterpret_cast<const VkExportMemoryAllocateInfoNV*>( this );
57061     }
57062 
operator VkExportMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57063     operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
57064     {
57065       return *reinterpret_cast<VkExportMemoryAllocateInfoNV*>( this );
57066     }
57067 
57068 
57069 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57070     auto operator<=>( ExportMemoryAllocateInfoNV const& ) const = default;
57071 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57072     bool operator==( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57073     {
57074       return ( sType == rhs.sType )
57075           && ( pNext == rhs.pNext )
57076           && ( handleTypes == rhs.handleTypes );
57077     }
57078 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57079     bool operator!=( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57080     {
57081       return !operator==( rhs );
57082     }
57083 #endif
57084 
57085 
57086 
57087   public:
57088     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV;
57089     const void* pNext = {};
57090     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
57091 
57092   };
57093   static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
57094   static_assert( std::is_standard_layout<ExportMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
57095 
57096   template <>
57097   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfoNV>
57098   {
57099     using Type = ExportMemoryAllocateInfoNV;
57100   };
57101 
57102 #ifdef VK_USE_PLATFORM_WIN32_KHR
57103   struct ExportMemoryWin32HandleInfoKHR
57104   {
57105     static const bool allowDuplicate = false;
57106     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoKHR;
57107 
57108 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57109     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
57110     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
57111     {}
57112 
57113     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57114 
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57115     ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57116     {
57117       *this = rhs;
57118     }
57119 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57120 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57121     ExportMemoryWin32HandleInfoKHR & operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57122     {
57123       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR const *>( &rhs );
57124       return *this;
57125     }
57126 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57127     ExportMemoryWin32HandleInfoKHR & operator=( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57128     {
57129       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryWin32HandleInfoKHR ) );
57130       return *this;
57131     }
57132 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57133     ExportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57134     {
57135       pNext = pNext_;
57136       return *this;
57137     }
57138 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57139     ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
57140     {
57141       pAttributes = pAttributes_;
57142       return *this;
57143     }
57144 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57145     ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
57146     {
57147       dwAccess = dwAccess_;
57148       return *this;
57149     }
57150 
setNameVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57151     ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
57152     {
57153       name = name_;
57154       return *this;
57155     }
57156 
57157 
operator VkExportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57158     operator VkExportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
57159     {
57160       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>( this );
57161     }
57162 
operator VkExportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57163     operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
57164     {
57165       return *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>( this );
57166     }
57167 
57168 
57169 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57170     auto operator<=>( ExportMemoryWin32HandleInfoKHR const& ) const = default;
57171 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57172     bool operator==( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57173     {
57174       return ( sType == rhs.sType )
57175           && ( pNext == rhs.pNext )
57176           && ( pAttributes == rhs.pAttributes )
57177           && ( dwAccess == rhs.dwAccess )
57178           && ( name == rhs.name );
57179     }
57180 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57181     bool operator!=( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57182     {
57183       return !operator==( rhs );
57184     }
57185 #endif
57186 
57187 
57188 
57189   public:
57190     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR;
57191     const void* pNext = {};
57192     const SECURITY_ATTRIBUTES* pAttributes = {};
57193     DWORD dwAccess = {};
57194     LPCWSTR name = {};
57195 
57196   };
57197   static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
57198   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
57199 
57200   template <>
57201   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoKHR>
57202   {
57203     using Type = ExportMemoryWin32HandleInfoKHR;
57204   };
57205 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
57206 
57207 #ifdef VK_USE_PLATFORM_WIN32_KHR
57208   struct ExportMemoryWin32HandleInfoNV
57209   {
57210     static const bool allowDuplicate = false;
57211     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoNV;
57212 
57213 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57214     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}) VULKAN_HPP_NOEXCEPT
57215     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ )
57216     {}
57217 
57218     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57219 
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57220     ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57221     {
57222       *this = rhs;
57223     }
57224 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57225 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57226     ExportMemoryWin32HandleInfoNV & operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57227     {
57228       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV const *>( &rhs );
57229       return *this;
57230     }
57231 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57232     ExportMemoryWin32HandleInfoNV & operator=( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57233     {
57234       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryWin32HandleInfoNV ) );
57235       return *this;
57236     }
57237 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57238     ExportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57239     {
57240       pNext = pNext_;
57241       return *this;
57242     }
57243 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57244     ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
57245     {
57246       pAttributes = pAttributes_;
57247       return *this;
57248     }
57249 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57250     ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
57251     {
57252       dwAccess = dwAccess_;
57253       return *this;
57254     }
57255 
57256 
operator VkExportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57257     operator VkExportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT
57258     {
57259       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>( this );
57260     }
57261 
operator VkExportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57262     operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
57263     {
57264       return *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>( this );
57265     }
57266 
57267 
57268 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57269     auto operator<=>( ExportMemoryWin32HandleInfoNV const& ) const = default;
57270 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57271     bool operator==( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57272     {
57273       return ( sType == rhs.sType )
57274           && ( pNext == rhs.pNext )
57275           && ( pAttributes == rhs.pAttributes )
57276           && ( dwAccess == rhs.dwAccess );
57277     }
57278 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57279     bool operator!=( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57280     {
57281       return !operator==( rhs );
57282     }
57283 #endif
57284 
57285 
57286 
57287   public:
57288     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV;
57289     const void* pNext = {};
57290     const SECURITY_ATTRIBUTES* pAttributes = {};
57291     DWORD dwAccess = {};
57292 
57293   };
57294   static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
57295   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
57296 
57297   template <>
57298   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoNV>
57299   {
57300     using Type = ExportMemoryWin32HandleInfoNV;
57301   };
57302 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
57303 
57304   struct ExportSemaphoreCreateInfo
57305   {
57306     static const bool allowDuplicate = false;
57307     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreCreateInfo;
57308 
57309 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57310     VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57311     : handleTypes( handleTypes_ )
57312     {}
57313 
57314     VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57315 
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57316     ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57317     {
57318       *this = rhs;
57319     }
57320 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57321 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57322     ExportSemaphoreCreateInfo & operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57323     {
57324       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo const *>( &rhs );
57325       return *this;
57326     }
57327 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57328     ExportSemaphoreCreateInfo & operator=( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57329     {
57330       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportSemaphoreCreateInfo ) );
57331       return *this;
57332     }
57333 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57334     ExportSemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57335     {
57336       pNext = pNext_;
57337       return *this;
57338     }
57339 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57340     ExportSemaphoreCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57341     {
57342       handleTypes = handleTypes_;
57343       return *this;
57344     }
57345 
57346 
operator VkExportSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57347     operator VkExportSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT
57348     {
57349       return *reinterpret_cast<const VkExportSemaphoreCreateInfo*>( this );
57350     }
57351 
operator VkExportSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57352     operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
57353     {
57354       return *reinterpret_cast<VkExportSemaphoreCreateInfo*>( this );
57355     }
57356 
57357 
57358 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57359     auto operator<=>( ExportSemaphoreCreateInfo const& ) const = default;
57360 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57361     bool operator==( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57362     {
57363       return ( sType == rhs.sType )
57364           && ( pNext == rhs.pNext )
57365           && ( handleTypes == rhs.handleTypes );
57366     }
57367 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57368     bool operator!=( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57369     {
57370       return !operator==( rhs );
57371     }
57372 #endif
57373 
57374 
57375 
57376   public:
57377     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo;
57378     const void* pNext = {};
57379     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {};
57380 
57381   };
57382   static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), "struct and wrapper have different size!" );
57383   static_assert( std::is_standard_layout<ExportSemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
57384 
57385   template <>
57386   struct CppType<StructureType, StructureType::eExportSemaphoreCreateInfo>
57387   {
57388     using Type = ExportSemaphoreCreateInfo;
57389   };
57390   using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
57391 
57392 #ifdef VK_USE_PLATFORM_WIN32_KHR
57393   struct ExportSemaphoreWin32HandleInfoKHR
57394   {
57395     static const bool allowDuplicate = false;
57396     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
57397 
57398 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57399     VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
57400     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
57401     {}
57402 
57403     VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57404 
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57405     ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57406     {
57407       *this = rhs;
57408     }
57409 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57410 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57411     ExportSemaphoreWin32HandleInfoKHR & operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57412     {
57413       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR const *>( &rhs );
57414       return *this;
57415     }
57416 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57417     ExportSemaphoreWin32HandleInfoKHR & operator=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57418     {
57419       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportSemaphoreWin32HandleInfoKHR ) );
57420       return *this;
57421     }
57422 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57423     ExportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57424     {
57425       pNext = pNext_;
57426       return *this;
57427     }
57428 
setPAttributesVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57429     ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
57430     {
57431       pAttributes = pAttributes_;
57432       return *this;
57433     }
57434 
setDwAccessVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57435     ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
57436     {
57437       dwAccess = dwAccess_;
57438       return *this;
57439     }
57440 
setNameVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57441     ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
57442     {
57443       name = name_;
57444       return *this;
57445     }
57446 
57447 
operator VkExportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57448     operator VkExportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
57449     {
57450       return *reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>( this );
57451     }
57452 
operator VkExportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57453     operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
57454     {
57455       return *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>( this );
57456     }
57457 
57458 
57459 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57460     auto operator<=>( ExportSemaphoreWin32HandleInfoKHR const& ) const = default;
57461 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57462     bool operator==( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57463     {
57464       return ( sType == rhs.sType )
57465           && ( pNext == rhs.pNext )
57466           && ( pAttributes == rhs.pAttributes )
57467           && ( dwAccess == rhs.dwAccess )
57468           && ( name == rhs.name );
57469     }
57470 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57471     bool operator!=( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57472     {
57473       return !operator==( rhs );
57474     }
57475 #endif
57476 
57477 
57478 
57479   public:
57480     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
57481     const void* pNext = {};
57482     const SECURITY_ATTRIBUTES* pAttributes = {};
57483     DWORD dwAccess = {};
57484     LPCWSTR name = {};
57485 
57486   };
57487   static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
57488   static_assert( std::is_standard_layout<ExportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
57489 
57490   template <>
57491   struct CppType<StructureType, StructureType::eExportSemaphoreWin32HandleInfoKHR>
57492   {
57493     using Type = ExportSemaphoreWin32HandleInfoKHR;
57494   };
57495 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
57496 
57497 #ifdef VK_USE_PLATFORM_ANDROID_KHR
57498   struct ExternalFormatANDROID
57499   {
57500     static const bool allowDuplicate = false;
57501     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatANDROID;
57502 
57503 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57504     VULKAN_HPP_CONSTEXPR ExternalFormatANDROID(uint64_t externalFormat_ = {}) VULKAN_HPP_NOEXCEPT
57505     : externalFormat( externalFormat_ )
57506     {}
57507 
57508     VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57509 
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57510     ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
57511     {
57512       *this = rhs;
57513     }
57514 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57515 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57516     ExternalFormatANDROID & operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
57517     {
57518       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFormatANDROID const *>( &rhs );
57519       return *this;
57520     }
57521 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57522     ExternalFormatANDROID & operator=( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
57523     {
57524       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalFormatANDROID ) );
57525       return *this;
57526     }
57527 
setPNextVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57528     ExternalFormatANDROID & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
57529     {
57530       pNext = pNext_;
57531       return *this;
57532     }
57533 
setExternalFormatVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57534     ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT
57535     {
57536       externalFormat = externalFormat_;
57537       return *this;
57538     }
57539 
57540 
operator VkExternalFormatANDROID const&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57541     operator VkExternalFormatANDROID const&() const VULKAN_HPP_NOEXCEPT
57542     {
57543       return *reinterpret_cast<const VkExternalFormatANDROID*>( this );
57544     }
57545 
operator VkExternalFormatANDROID&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57546     operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT
57547     {
57548       return *reinterpret_cast<VkExternalFormatANDROID*>( this );
57549     }
57550 
57551 
57552 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57553     auto operator<=>( ExternalFormatANDROID const& ) const = default;
57554 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57555     bool operator==( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
57556     {
57557       return ( sType == rhs.sType )
57558           && ( pNext == rhs.pNext )
57559           && ( externalFormat == rhs.externalFormat );
57560     }
57561 
operator !=VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57562     bool operator!=( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
57563     {
57564       return !operator==( rhs );
57565     }
57566 #endif
57567 
57568 
57569 
57570   public:
57571     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID;
57572     void* pNext = {};
57573     uint64_t externalFormat = {};
57574 
57575   };
57576   static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" );
57577   static_assert( std::is_standard_layout<ExternalFormatANDROID>::value, "struct wrapper is not a standard layout!" );
57578 
57579   template <>
57580   struct CppType<StructureType, StructureType::eExternalFormatANDROID>
57581   {
57582     using Type = ExternalFormatANDROID;
57583   };
57584 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
57585 
57586   struct ExternalImageFormatProperties
57587   {
57588     static const bool allowDuplicate = false;
57589     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalImageFormatProperties;
57590 
57591 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57592     VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
57593     : externalMemoryProperties( externalMemoryProperties_ )
57594     {}
57595 
57596     VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57597 
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57598     ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57599     {
57600       *this = rhs;
57601     }
57602 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57603 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57604     ExternalImageFormatProperties & operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57605     {
57606       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties const *>( &rhs );
57607       return *this;
57608     }
57609 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57610     ExternalImageFormatProperties & operator=( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57611     {
57612       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalImageFormatProperties ) );
57613       return *this;
57614     }
57615 
57616 
operator VkExternalImageFormatProperties const&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57617     operator VkExternalImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
57618     {
57619       return *reinterpret_cast<const VkExternalImageFormatProperties*>( this );
57620     }
57621 
operator VkExternalImageFormatProperties&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57622     operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT
57623     {
57624       return *reinterpret_cast<VkExternalImageFormatProperties*>( this );
57625     }
57626 
57627 
57628 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57629     auto operator<=>( ExternalImageFormatProperties const& ) const = default;
57630 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57631     bool operator==( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
57632     {
57633       return ( sType == rhs.sType )
57634           && ( pNext == rhs.pNext )
57635           && ( externalMemoryProperties == rhs.externalMemoryProperties );
57636     }
57637 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57638     bool operator!=( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
57639     {
57640       return !operator==( rhs );
57641     }
57642 #endif
57643 
57644 
57645 
57646   public:
57647     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties;
57648     void* pNext = {};
57649     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
57650 
57651   };
57652   static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), "struct and wrapper have different size!" );
57653   static_assert( std::is_standard_layout<ExternalImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
57654 
57655   template <>
57656   struct CppType<StructureType, StructureType::eExternalImageFormatProperties>
57657   {
57658     using Type = ExternalImageFormatProperties;
57659   };
57660   using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
57661 
57662   struct ExternalMemoryBufferCreateInfo
57663   {
57664     static const bool allowDuplicate = false;
57665     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryBufferCreateInfo;
57666 
57667 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57668     VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57669     : handleTypes( handleTypes_ )
57670     {}
57671 
57672     VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57673 
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57674     ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57675     {
57676       *this = rhs;
57677     }
57678 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57679 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57680     ExternalMemoryBufferCreateInfo & operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57681     {
57682       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const *>( &rhs );
57683       return *this;
57684     }
57685 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57686     ExternalMemoryBufferCreateInfo & operator=( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57687     {
57688       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryBufferCreateInfo ) );
57689       return *this;
57690     }
57691 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57692     ExternalMemoryBufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57693     {
57694       pNext = pNext_;
57695       return *this;
57696     }
57697 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57698     ExternalMemoryBufferCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57699     {
57700       handleTypes = handleTypes_;
57701       return *this;
57702     }
57703 
57704 
operator VkExternalMemoryBufferCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57705     operator VkExternalMemoryBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
57706     {
57707       return *reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>( this );
57708     }
57709 
operator VkExternalMemoryBufferCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57710     operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
57711     {
57712       return *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>( this );
57713     }
57714 
57715 
57716 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57717     auto operator<=>( ExternalMemoryBufferCreateInfo const& ) const = default;
57718 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57719     bool operator==( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57720     {
57721       return ( sType == rhs.sType )
57722           && ( pNext == rhs.pNext )
57723           && ( handleTypes == rhs.handleTypes );
57724     }
57725 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57726     bool operator!=( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57727     {
57728       return !operator==( rhs );
57729     }
57730 #endif
57731 
57732 
57733 
57734   public:
57735     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo;
57736     const void* pNext = {};
57737     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
57738 
57739   };
57740   static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), "struct and wrapper have different size!" );
57741   static_assert( std::is_standard_layout<ExternalMemoryBufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
57742 
57743   template <>
57744   struct CppType<StructureType, StructureType::eExternalMemoryBufferCreateInfo>
57745   {
57746     using Type = ExternalMemoryBufferCreateInfo;
57747   };
57748   using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
57749 
57750   struct ExternalMemoryImageCreateInfo
57751   {
57752     static const bool allowDuplicate = false;
57753     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfo;
57754 
57755 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57756     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57757     : handleTypes( handleTypes_ )
57758     {}
57759 
57760     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57761 
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57762     ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57763     {
57764       *this = rhs;
57765     }
57766 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57767 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57768     ExternalMemoryImageCreateInfo & operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57769     {
57770       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo const *>( &rhs );
57771       return *this;
57772     }
57773 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57774     ExternalMemoryImageCreateInfo & operator=( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57775     {
57776       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryImageCreateInfo ) );
57777       return *this;
57778     }
57779 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57780     ExternalMemoryImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57781     {
57782       pNext = pNext_;
57783       return *this;
57784     }
57785 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57786     ExternalMemoryImageCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57787     {
57788       handleTypes = handleTypes_;
57789       return *this;
57790     }
57791 
57792 
operator VkExternalMemoryImageCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57793     operator VkExternalMemoryImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
57794     {
57795       return *reinterpret_cast<const VkExternalMemoryImageCreateInfo*>( this );
57796     }
57797 
operator VkExternalMemoryImageCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57798     operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT
57799     {
57800       return *reinterpret_cast<VkExternalMemoryImageCreateInfo*>( this );
57801     }
57802 
57803 
57804 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57805     auto operator<=>( ExternalMemoryImageCreateInfo const& ) const = default;
57806 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57807     bool operator==( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57808     {
57809       return ( sType == rhs.sType )
57810           && ( pNext == rhs.pNext )
57811           && ( handleTypes == rhs.handleTypes );
57812     }
57813 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57814     bool operator!=( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57815     {
57816       return !operator==( rhs );
57817     }
57818 #endif
57819 
57820 
57821 
57822   public:
57823     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo;
57824     const void* pNext = {};
57825     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
57826 
57827   };
57828   static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), "struct and wrapper have different size!" );
57829   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
57830 
57831   template <>
57832   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfo>
57833   {
57834     using Type = ExternalMemoryImageCreateInfo;
57835   };
57836   using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
57837 
57838   struct ExternalMemoryImageCreateInfoNV
57839   {
57840     static const bool allowDuplicate = false;
57841     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfoNV;
57842 
57843 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57844     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57845     : handleTypes( handleTypes_ )
57846     {}
57847 
57848     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57849 
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57850     ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57851     {
57852       *this = rhs;
57853     }
57854 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57855 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57856     ExternalMemoryImageCreateInfoNV & operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57857     {
57858       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV const *>( &rhs );
57859       return *this;
57860     }
57861 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57862     ExternalMemoryImageCreateInfoNV & operator=( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57863     {
57864       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryImageCreateInfoNV ) );
57865       return *this;
57866     }
57867 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57868     ExternalMemoryImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57869     {
57870       pNext = pNext_;
57871       return *this;
57872     }
57873 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57874     ExternalMemoryImageCreateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
57875     {
57876       handleTypes = handleTypes_;
57877       return *this;
57878     }
57879 
57880 
operator VkExternalMemoryImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57881     operator VkExternalMemoryImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
57882     {
57883       return *reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>( this );
57884     }
57885 
operator VkExternalMemoryImageCreateInfoNV&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57886     operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
57887     {
57888       return *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>( this );
57889     }
57890 
57891 
57892 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57893     auto operator<=>( ExternalMemoryImageCreateInfoNV const& ) const = default;
57894 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57895     bool operator==( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57896     {
57897       return ( sType == rhs.sType )
57898           && ( pNext == rhs.pNext )
57899           && ( handleTypes == rhs.handleTypes );
57900     }
57901 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57902     bool operator!=( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57903     {
57904       return !operator==( rhs );
57905     }
57906 #endif
57907 
57908 
57909 
57910   public:
57911     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV;
57912     const void* pNext = {};
57913     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
57914 
57915   };
57916   static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), "struct and wrapper have different size!" );
57917   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
57918 
57919   template <>
57920   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfoNV>
57921   {
57922     using Type = ExternalMemoryImageCreateInfoNV;
57923   };
57924 
57925   struct FilterCubicImageViewImageFormatPropertiesEXT
57926   {
57927     static const bool allowDuplicate = false;
57928     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
57929 
57930 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57931     VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {}) VULKAN_HPP_NOEXCEPT
57932     : filterCubic( filterCubic_ ), filterCubicMinmax( filterCubicMinmax_ )
57933     {}
57934 
57935     VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57936 
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57937     FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57938     {
57939       *this = rhs;
57940     }
57941 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57942 
operator =VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57943     FilterCubicImageViewImageFormatPropertiesEXT & operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57944     {
57945       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT const *>( &rhs );
57946       return *this;
57947     }
57948 
operator =VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57949     FilterCubicImageViewImageFormatPropertiesEXT & operator=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57950     {
57951       memcpy( static_cast<void *>( this ), &rhs, sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) );
57952       return *this;
57953     }
57954 
57955 
operator VkFilterCubicImageViewImageFormatPropertiesEXT const&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57956     operator VkFilterCubicImageViewImageFormatPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
57957     {
57958       return *reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
57959     }
57960 
operator VkFilterCubicImageViewImageFormatPropertiesEXT&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57961     operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT
57962     {
57963       return *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
57964     }
57965 
57966 
57967 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57968     auto operator<=>( FilterCubicImageViewImageFormatPropertiesEXT const& ) const = default;
57969 #else
operator ==VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57970     bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57971     {
57972       return ( sType == rhs.sType )
57973           && ( pNext == rhs.pNext )
57974           && ( filterCubic == rhs.filterCubic )
57975           && ( filterCubicMinmax == rhs.filterCubicMinmax );
57976     }
57977 
operator !=VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57978     bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57979     {
57980       return !operator==( rhs );
57981     }
57982 #endif
57983 
57984 
57985 
57986   public:
57987     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
57988     void* pNext = {};
57989     VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {};
57990     VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {};
57991 
57992   };
57993   static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), "struct and wrapper have different size!" );
57994   static_assert( std::is_standard_layout<FilterCubicImageViewImageFormatPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
57995 
57996   template <>
57997   struct CppType<StructureType, StructureType::eFilterCubicImageViewImageFormatPropertiesEXT>
57998   {
57999     using Type = FilterCubicImageViewImageFormatPropertiesEXT;
58000   };
58001 
58002   struct FragmentShadingRateAttachmentInfoKHR
58003   {
58004     static const bool allowDuplicate = false;
58005     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
58006 
58007 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FragmentShadingRateAttachmentInfoKHRVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58008     VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR(const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment_ = {}, VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {}) VULKAN_HPP_NOEXCEPT
58009     : pFragmentShadingRateAttachment( pFragmentShadingRateAttachment_ ), shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ )
58010     {}
58011 
58012     VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58013 
FragmentShadingRateAttachmentInfoKHRVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58014     FragmentShadingRateAttachmentInfoKHR( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
58015     {
58016       *this = rhs;
58017     }
58018 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58019 
operator =VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58020     FragmentShadingRateAttachmentInfoKHR & operator=( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
58021     {
58022       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR const *>( &rhs );
58023       return *this;
58024     }
58025 
operator =VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58026     FragmentShadingRateAttachmentInfoKHR & operator=( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
58027     {
58028       memcpy( static_cast<void *>( this ), &rhs, sizeof( FragmentShadingRateAttachmentInfoKHR ) );
58029       return *this;
58030     }
58031 
setPNextVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58032     FragmentShadingRateAttachmentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58033     {
58034       pNext = pNext_;
58035       return *this;
58036     }
58037 
setPFragmentShadingRateAttachmentVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58038     FragmentShadingRateAttachmentInfoKHR & setPFragmentShadingRateAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment_ ) VULKAN_HPP_NOEXCEPT
58039     {
58040       pFragmentShadingRateAttachment = pFragmentShadingRateAttachment_;
58041       return *this;
58042     }
58043 
setShadingRateAttachmentTexelSizeVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58044     FragmentShadingRateAttachmentInfoKHR & setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
58045     {
58046       shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
58047       return *this;
58048     }
58049 
58050 
operator VkFragmentShadingRateAttachmentInfoKHR const&VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58051     operator VkFragmentShadingRateAttachmentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
58052     {
58053       return *reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR*>( this );
58054     }
58055 
operator VkFragmentShadingRateAttachmentInfoKHR&VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58056     operator VkFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT
58057     {
58058       return *reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR*>( this );
58059     }
58060 
58061 
58062 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58063     auto operator<=>( FragmentShadingRateAttachmentInfoKHR const& ) const = default;
58064 #else
operator ==VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58065     bool operator==( FragmentShadingRateAttachmentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
58066     {
58067       return ( sType == rhs.sType )
58068           && ( pNext == rhs.pNext )
58069           && ( pFragmentShadingRateAttachment == rhs.pFragmentShadingRateAttachment )
58070           && ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize );
58071     }
58072 
operator !=VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58073     bool operator!=( FragmentShadingRateAttachmentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
58074     {
58075       return !operator==( rhs );
58076     }
58077 #endif
58078 
58079 
58080 
58081   public:
58082     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
58083     const void* pNext = {};
58084     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment = {};
58085     VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {};
58086 
58087   };
58088   static_assert( sizeof( FragmentShadingRateAttachmentInfoKHR ) == sizeof( VkFragmentShadingRateAttachmentInfoKHR ), "struct and wrapper have different size!" );
58089   static_assert( std::is_standard_layout<FragmentShadingRateAttachmentInfoKHR>::value, "struct wrapper is not a standard layout!" );
58090 
58091   template <>
58092   struct CppType<StructureType, StructureType::eFragmentShadingRateAttachmentInfoKHR>
58093   {
58094     using Type = FragmentShadingRateAttachmentInfoKHR;
58095   };
58096 
58097   struct FramebufferAttachmentImageInfo
58098   {
58099     static const bool allowDuplicate = false;
58100     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentImageInfo;
58101 
58102 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58103     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
58104     : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ )
58105     {}
58106 
58107     VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58108 
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58109     FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58110     {
58111       *this = rhs;
58112     }
58113 
58114 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58115     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_ )
58116     : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
58117     {}
58118 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58119 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58120 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58121     FramebufferAttachmentImageInfo & operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58122     {
58123       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const *>( &rhs );
58124       return *this;
58125     }
58126 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58127     FramebufferAttachmentImageInfo & operator=( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58128     {
58129       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferAttachmentImageInfo ) );
58130       return *this;
58131     }
58132 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58133     FramebufferAttachmentImageInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58134     {
58135       pNext = pNext_;
58136       return *this;
58137     }
58138 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58139     FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
58140     {
58141       flags = flags_;
58142       return *this;
58143     }
58144 
setUsageVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58145     FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
58146     {
58147       usage = usage_;
58148       return *this;
58149     }
58150 
setWidthVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58151     FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
58152     {
58153       width = width_;
58154       return *this;
58155     }
58156 
setHeightVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58157     FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
58158     {
58159       height = height_;
58160       return *this;
58161     }
58162 
setLayerCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58163     FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
58164     {
58165       layerCount = layerCount_;
58166       return *this;
58167     }
58168 
setViewFormatCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58169     FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
58170     {
58171       viewFormatCount = viewFormatCount_;
58172       return *this;
58173     }
58174 
setPViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58175     FramebufferAttachmentImageInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT
58176     {
58177       pViewFormats = pViewFormats_;
58178       return *this;
58179     }
58180 
58181 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58182     FramebufferAttachmentImageInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
58183     {
58184       viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
58185       pViewFormats = viewFormats_.data();
58186       return *this;
58187     }
58188 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58189 
58190 
operator VkFramebufferAttachmentImageInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58191     operator VkFramebufferAttachmentImageInfo const&() const VULKAN_HPP_NOEXCEPT
58192     {
58193       return *reinterpret_cast<const VkFramebufferAttachmentImageInfo*>( this );
58194     }
58195 
operator VkFramebufferAttachmentImageInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58196     operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT
58197     {
58198       return *reinterpret_cast<VkFramebufferAttachmentImageInfo*>( this );
58199     }
58200 
58201 
58202 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58203     auto operator<=>( FramebufferAttachmentImageInfo const& ) const = default;
58204 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58205     bool operator==( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58206     {
58207       return ( sType == rhs.sType )
58208           && ( pNext == rhs.pNext )
58209           && ( flags == rhs.flags )
58210           && ( usage == rhs.usage )
58211           && ( width == rhs.width )
58212           && ( height == rhs.height )
58213           && ( layerCount == rhs.layerCount )
58214           && ( viewFormatCount == rhs.viewFormatCount )
58215           && ( pViewFormats == rhs.pViewFormats );
58216     }
58217 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58218     bool operator!=( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58219     {
58220       return !operator==( rhs );
58221     }
58222 #endif
58223 
58224 
58225 
58226   public:
58227     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo;
58228     const void* pNext = {};
58229     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
58230     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
58231     uint32_t width = {};
58232     uint32_t height = {};
58233     uint32_t layerCount = {};
58234     uint32_t viewFormatCount = {};
58235     const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {};
58236 
58237   };
58238   static_assert( sizeof( FramebufferAttachmentImageInfo ) == sizeof( VkFramebufferAttachmentImageInfo ), "struct and wrapper have different size!" );
58239   static_assert( std::is_standard_layout<FramebufferAttachmentImageInfo>::value, "struct wrapper is not a standard layout!" );
58240 
58241   template <>
58242   struct CppType<StructureType, StructureType::eFramebufferAttachmentImageInfo>
58243   {
58244     using Type = FramebufferAttachmentImageInfo;
58245   };
58246   using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
58247 
58248   struct FramebufferAttachmentsCreateInfo
58249   {
58250     static const bool allowDuplicate = false;
58251     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentsCreateInfo;
58252 
58253 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58254     VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo(uint32_t attachmentImageInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ = {}) VULKAN_HPP_NOEXCEPT
58255     : attachmentImageInfoCount( attachmentImageInfoCount_ ), pAttachmentImageInfos( pAttachmentImageInfos_ )
58256     {}
58257 
58258     VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58259 
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58260     FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58261     {
58262       *this = rhs;
58263     }
58264 
58265 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58266     FramebufferAttachmentsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_ )
58267     : attachmentImageInfoCount( static_cast<uint32_t>( attachmentImageInfos_.size() ) ), pAttachmentImageInfos( attachmentImageInfos_.data() )
58268     {}
58269 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58270 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58271 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58272     FramebufferAttachmentsCreateInfo & operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58273     {
58274       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo const *>( &rhs );
58275       return *this;
58276     }
58277 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58278     FramebufferAttachmentsCreateInfo & operator=( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58279     {
58280       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferAttachmentsCreateInfo ) );
58281       return *this;
58282     }
58283 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58284     FramebufferAttachmentsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58285     {
58286       pNext = pNext_;
58287       return *this;
58288     }
58289 
setAttachmentImageInfoCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58290     FramebufferAttachmentsCreateInfo & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT
58291     {
58292       attachmentImageInfoCount = attachmentImageInfoCount_;
58293       return *this;
58294     }
58295 
setPAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58296     FramebufferAttachmentsCreateInfo & setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
58297     {
58298       pAttachmentImageInfos = pAttachmentImageInfos_;
58299       return *this;
58300     }
58301 
58302 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58303     FramebufferAttachmentsCreateInfo & setAttachmentImageInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
58304     {
58305       attachmentImageInfoCount = static_cast<uint32_t>( attachmentImageInfos_.size() );
58306       pAttachmentImageInfos = attachmentImageInfos_.data();
58307       return *this;
58308     }
58309 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58310 
58311 
operator VkFramebufferAttachmentsCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58312     operator VkFramebufferAttachmentsCreateInfo const&() const VULKAN_HPP_NOEXCEPT
58313     {
58314       return *reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>( this );
58315     }
58316 
operator VkFramebufferAttachmentsCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58317     operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT
58318     {
58319       return *reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>( this );
58320     }
58321 
58322 
58323 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58324     auto operator<=>( FramebufferAttachmentsCreateInfo const& ) const = default;
58325 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58326     bool operator==( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58327     {
58328       return ( sType == rhs.sType )
58329           && ( pNext == rhs.pNext )
58330           && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount )
58331           && ( pAttachmentImageInfos == rhs.pAttachmentImageInfos );
58332     }
58333 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58334     bool operator!=( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58335     {
58336       return !operator==( rhs );
58337     }
58338 #endif
58339 
58340 
58341 
58342   public:
58343     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo;
58344     const void* pNext = {};
58345     uint32_t attachmentImageInfoCount = {};
58346     const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos = {};
58347 
58348   };
58349   static_assert( sizeof( FramebufferAttachmentsCreateInfo ) == sizeof( VkFramebufferAttachmentsCreateInfo ), "struct and wrapper have different size!" );
58350   static_assert( std::is_standard_layout<FramebufferAttachmentsCreateInfo>::value, "struct wrapper is not a standard layout!" );
58351 
58352   template <>
58353   struct CppType<StructureType, StructureType::eFramebufferAttachmentsCreateInfo>
58354   {
58355     using Type = FramebufferAttachmentsCreateInfo;
58356   };
58357   using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
58358 
58359   struct GraphicsShaderGroupCreateInfoNV
58360   {
58361     static const bool allowDuplicate = false;
58362     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsShaderGroupCreateInfoNV;
58363 
58364 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58365     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
58366     : stageCount( stageCount_ ), pStages( pStages_ ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ )
58367     {}
58368 
58369     VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58370 
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58371     GraphicsShaderGroupCreateInfoNV( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58372     {
58373       *this = rhs;
58374     }
58375 
58376 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58377     GraphicsShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {} )
58378     : stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ )
58379     {}
58380 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58381 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58382 
operator =VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58383     GraphicsShaderGroupCreateInfoNV & operator=( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58384     {
58385       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV const *>( &rhs );
58386       return *this;
58387     }
58388 
operator =VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58389     GraphicsShaderGroupCreateInfoNV & operator=( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58390     {
58391       memcpy( static_cast<void *>( this ), &rhs, sizeof( GraphicsShaderGroupCreateInfoNV ) );
58392       return *this;
58393     }
58394 
setPNextVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58395     GraphicsShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58396     {
58397       pNext = pNext_;
58398       return *this;
58399     }
58400 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58401     GraphicsShaderGroupCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
58402     {
58403       stageCount = stageCount_;
58404       return *this;
58405     }
58406 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58407     GraphicsShaderGroupCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
58408     {
58409       pStages = pStages_;
58410       return *this;
58411     }
58412 
58413 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58414     GraphicsShaderGroupCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
58415     {
58416       stageCount = static_cast<uint32_t>( stages_.size() );
58417       pStages = stages_.data();
58418       return *this;
58419     }
58420 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58421 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58422     GraphicsShaderGroupCreateInfoNV & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
58423     {
58424       pVertexInputState = pVertexInputState_;
58425       return *this;
58426     }
58427 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58428     GraphicsShaderGroupCreateInfoNV & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT
58429     {
58430       pTessellationState = pTessellationState_;
58431       return *this;
58432     }
58433 
58434 
operator VkGraphicsShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58435     operator VkGraphicsShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
58436     {
58437       return *reinterpret_cast<const VkGraphicsShaderGroupCreateInfoNV*>( this );
58438     }
58439 
operator VkGraphicsShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58440     operator VkGraphicsShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
58441     {
58442       return *reinterpret_cast<VkGraphicsShaderGroupCreateInfoNV*>( this );
58443     }
58444 
58445 
58446 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58447     auto operator<=>( GraphicsShaderGroupCreateInfoNV const& ) const = default;
58448 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58449     bool operator==( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58450     {
58451       return ( sType == rhs.sType )
58452           && ( pNext == rhs.pNext )
58453           && ( stageCount == rhs.stageCount )
58454           && ( pStages == rhs.pStages )
58455           && ( pVertexInputState == rhs.pVertexInputState )
58456           && ( pTessellationState == rhs.pTessellationState );
58457     }
58458 
operator !=VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58459     bool operator!=( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58460     {
58461       return !operator==( rhs );
58462     }
58463 #endif
58464 
58465 
58466 
58467   public:
58468     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsShaderGroupCreateInfoNV;
58469     const void* pNext = {};
58470     uint32_t stageCount = {};
58471     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
58472     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {};
58473     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {};
58474 
58475   };
58476   static_assert( sizeof( GraphicsShaderGroupCreateInfoNV ) == sizeof( VkGraphicsShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
58477   static_assert( std::is_standard_layout<GraphicsShaderGroupCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
58478 
58479   template <>
58480   struct CppType<StructureType, StructureType::eGraphicsShaderGroupCreateInfoNV>
58481   {
58482     using Type = GraphicsShaderGroupCreateInfoNV;
58483   };
58484 
58485   struct GraphicsPipelineShaderGroupsCreateInfoNV
58486   {
58487     static const bool allowDuplicate = false;
58488     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
58489 
58490 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58491     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
58492     : groupCount( groupCount_ ), pGroups( pGroups_ ), pipelineCount( pipelineCount_ ), pPipelines( pPipelines_ )
58493     {}
58494 
58495     VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58496 
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58497     GraphicsPipelineShaderGroupsCreateInfoNV( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58498     {
58499       *this = rhs;
58500     }
58501 
58502 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58503     GraphicsPipelineShaderGroupsCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ = {} )
58504     : groupCount( static_cast<uint32_t>( groups_.size() ) ), pGroups( groups_.data() ), pipelineCount( static_cast<uint32_t>( pipelines_.size() ) ), pPipelines( pipelines_.data() )
58505     {}
58506 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58507 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58508 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58509     GraphicsPipelineShaderGroupsCreateInfoNV & operator=( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58510     {
58511       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV const *>( &rhs );
58512       return *this;
58513     }
58514 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58515     GraphicsPipelineShaderGroupsCreateInfoNV & operator=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58516     {
58517       memcpy( static_cast<void *>( this ), &rhs, sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) );
58518       return *this;
58519     }
58520 
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58521     GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58522     {
58523       pNext = pNext_;
58524       return *this;
58525     }
58526 
setGroupCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58527     GraphicsPipelineShaderGroupsCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
58528     {
58529       groupCount = groupCount_;
58530       return *this;
58531     }
58532 
setPGroupsVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58533     GraphicsPipelineShaderGroupsCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT
58534     {
58535       pGroups = pGroups_;
58536       return *this;
58537     }
58538 
58539 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58540     GraphicsPipelineShaderGroupsCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
58541     {
58542       groupCount = static_cast<uint32_t>( groups_.size() );
58543       pGroups = groups_.data();
58544       return *this;
58545     }
58546 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58547 
setPipelineCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58548     GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT
58549     {
58550       pipelineCount = pipelineCount_;
58551       return *this;
58552     }
58553 
setPPipelinesVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58554     GraphicsPipelineShaderGroupsCreateInfoNV & setPPipelines( const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines_ ) VULKAN_HPP_NOEXCEPT
58555     {
58556       pPipelines = pPipelines_;
58557       return *this;
58558     }
58559 
58560 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPipelinesVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58561     GraphicsPipelineShaderGroupsCreateInfoNV & setPipelines( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ ) VULKAN_HPP_NOEXCEPT
58562     {
58563       pipelineCount = static_cast<uint32_t>( pipelines_.size() );
58564       pPipelines = pipelines_.data();
58565       return *this;
58566     }
58567 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58568 
58569 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58570     operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
58571     {
58572       return *reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
58573     }
58574 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58575     operator VkGraphicsPipelineShaderGroupsCreateInfoNV &() VULKAN_HPP_NOEXCEPT
58576     {
58577       return *reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
58578     }
58579 
58580 
58581 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58582     auto operator<=>( GraphicsPipelineShaderGroupsCreateInfoNV const& ) const = default;
58583 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58584     bool operator==( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58585     {
58586       return ( sType == rhs.sType )
58587           && ( pNext == rhs.pNext )
58588           && ( groupCount == rhs.groupCount )
58589           && ( pGroups == rhs.pGroups )
58590           && ( pipelineCount == rhs.pipelineCount )
58591           && ( pPipelines == rhs.pPipelines );
58592     }
58593 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58594     bool operator!=( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58595     {
58596       return !operator==( rhs );
58597     }
58598 #endif
58599 
58600 
58601 
58602   public:
58603     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
58604     const void* pNext = {};
58605     uint32_t groupCount = {};
58606     const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups = {};
58607     uint32_t pipelineCount = {};
58608     const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines = {};
58609 
58610   };
58611   static_assert( sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) == sizeof( VkGraphicsPipelineShaderGroupsCreateInfoNV ), "struct and wrapper have different size!" );
58612   static_assert( std::is_standard_layout<GraphicsPipelineShaderGroupsCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
58613 
58614   template <>
58615   struct CppType<StructureType, StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV>
58616   {
58617     using Type = GraphicsPipelineShaderGroupsCreateInfoNV;
58618   };
58619 
58620   struct HeadlessSurfaceCreateInfoEXT
58621   {
58622     static const bool allowDuplicate = false;
58623     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHeadlessSurfaceCreateInfoEXT;
58624 
58625 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58626     VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
58627     : flags( flags_ )
58628     {}
58629 
58630     VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58631 
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58632     HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58633     {
58634       *this = rhs;
58635     }
58636 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58637 
operator =VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58638     HeadlessSurfaceCreateInfoEXT & operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58639     {
58640       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const *>( &rhs );
58641       return *this;
58642     }
58643 
operator =VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58644     HeadlessSurfaceCreateInfoEXT & operator=( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58645     {
58646       memcpy( static_cast<void *>( this ), &rhs, sizeof( HeadlessSurfaceCreateInfoEXT ) );
58647       return *this;
58648     }
58649 
setPNextVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58650     HeadlessSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58651     {
58652       pNext = pNext_;
58653       return *this;
58654     }
58655 
setFlagsVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58656     HeadlessSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
58657     {
58658       flags = flags_;
58659       return *this;
58660     }
58661 
58662 
operator VkHeadlessSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58663     operator VkHeadlessSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
58664     {
58665       return *reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( this );
58666     }
58667 
operator VkHeadlessSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58668     operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
58669     {
58670       return *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>( this );
58671     }
58672 
58673 
58674 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58675     auto operator<=>( HeadlessSurfaceCreateInfoEXT const& ) const = default;
58676 #else
operator ==VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58677     bool operator==( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58678     {
58679       return ( sType == rhs.sType )
58680           && ( pNext == rhs.pNext )
58681           && ( flags == rhs.flags );
58682     }
58683 
operator !=VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58684     bool operator!=( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58685     {
58686       return !operator==( rhs );
58687     }
58688 #endif
58689 
58690 
58691 
58692   public:
58693     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT;
58694     const void* pNext = {};
58695     VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {};
58696 
58697   };
58698   static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
58699   static_assert( std::is_standard_layout<HeadlessSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
58700 
58701   template <>
58702   struct CppType<StructureType, StructureType::eHeadlessSurfaceCreateInfoEXT>
58703   {
58704     using Type = HeadlessSurfaceCreateInfoEXT;
58705   };
58706 
58707 #ifdef VK_USE_PLATFORM_IOS_MVK
58708   struct IOSSurfaceCreateInfoMVK
58709   {
58710     static const bool allowDuplicate = false;
58711     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIosSurfaceCreateInfoMVK;
58712 
58713 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58714     VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT
58715     : flags( flags_ ), pView( pView_ )
58716     {}
58717 
58718     VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58719 
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58720     IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
58721     {
58722       *this = rhs;
58723     }
58724 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58725 
operator =VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58726     IOSSurfaceCreateInfoMVK & operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
58727     {
58728       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const *>( &rhs );
58729       return *this;
58730     }
58731 
operator =VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58732     IOSSurfaceCreateInfoMVK & operator=( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
58733     {
58734       memcpy( static_cast<void *>( this ), &rhs, sizeof( IOSSurfaceCreateInfoMVK ) );
58735       return *this;
58736     }
58737 
setPNextVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58738     IOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58739     {
58740       pNext = pNext_;
58741       return *this;
58742     }
58743 
setFlagsVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58744     IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
58745     {
58746       flags = flags_;
58747       return *this;
58748     }
58749 
setPViewVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58750     IOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT
58751     {
58752       pView = pView_;
58753       return *this;
58754     }
58755 
58756 
operator VkIOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58757     operator VkIOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT
58758     {
58759       return *reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( this );
58760     }
58761 
operator VkIOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58762     operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
58763     {
58764       return *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>( this );
58765     }
58766 
58767 
58768 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58769     auto operator<=>( IOSSurfaceCreateInfoMVK const& ) const = default;
58770 #else
operator ==VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58771     bool operator==( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
58772     {
58773       return ( sType == rhs.sType )
58774           && ( pNext == rhs.pNext )
58775           && ( flags == rhs.flags )
58776           && ( pView == rhs.pView );
58777     }
58778 
operator !=VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58779     bool operator!=( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
58780     {
58781       return !operator==( rhs );
58782     }
58783 #endif
58784 
58785 
58786 
58787   public:
58788     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK;
58789     const void* pNext = {};
58790     VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {};
58791     const void* pView = {};
58792 
58793   };
58794   static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
58795   static_assert( std::is_standard_layout<IOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
58796 
58797   template <>
58798   struct CppType<StructureType, StructureType::eIosSurfaceCreateInfoMVK>
58799   {
58800     using Type = IOSSurfaceCreateInfoMVK;
58801   };
58802 #endif /*VK_USE_PLATFORM_IOS_MVK*/
58803 
58804   struct ImageDrmFormatModifierExplicitCreateInfoEXT
58805   {
58806     static const bool allowDuplicate = false;
58807     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
58808 
58809 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58810     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ = {}) VULKAN_HPP_NOEXCEPT
58811     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), pPlaneLayouts( pPlaneLayouts_ )
58812     {}
58813 
58814     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58815 
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58816     ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58817     {
58818       *this = rhs;
58819     }
58820 
58821 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58822     ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_ )
58823     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( static_cast<uint32_t>( planeLayouts_.size() ) ), pPlaneLayouts( planeLayouts_.data() )
58824     {}
58825 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58826 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58827 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58828     ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58829     {
58830       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT const *>( &rhs );
58831       return *this;
58832     }
58833 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58834     ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58835     {
58836       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) );
58837       return *this;
58838     }
58839 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58840     ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58841     {
58842       pNext = pNext_;
58843       return *this;
58844     }
58845 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58846     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
58847     {
58848       drmFormatModifier = drmFormatModifier_;
58849       return *this;
58850     }
58851 
setDrmFormatModifierPlaneCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58852     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT
58853     {
58854       drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_;
58855       return *this;
58856     }
58857 
setPPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58858     ImageDrmFormatModifierExplicitCreateInfoEXT & setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT
58859     {
58860       pPlaneLayouts = pPlaneLayouts_;
58861       return *this;
58862     }
58863 
58864 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58865     ImageDrmFormatModifierExplicitCreateInfoEXT & setPlaneLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_ ) VULKAN_HPP_NOEXCEPT
58866     {
58867       drmFormatModifierPlaneCount = static_cast<uint32_t>( planeLayouts_.size() );
58868       pPlaneLayouts = planeLayouts_.data();
58869       return *this;
58870     }
58871 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58872 
58873 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58874     operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
58875     {
58876       return *reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
58877     }
58878 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58879     operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
58880     {
58881       return *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
58882     }
58883 
58884 
58885 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58886     auto operator<=>( ImageDrmFormatModifierExplicitCreateInfoEXT const& ) const = default;
58887 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58888     bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58889     {
58890       return ( sType == rhs.sType )
58891           && ( pNext == rhs.pNext )
58892           && ( drmFormatModifier == rhs.drmFormatModifier )
58893           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
58894           && ( pPlaneLayouts == rhs.pPlaneLayouts );
58895     }
58896 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58897     bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58898     {
58899       return !operator==( rhs );
58900     }
58901 #endif
58902 
58903 
58904 
58905   public:
58906     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
58907     const void* pNext = {};
58908     uint64_t drmFormatModifier = {};
58909     uint32_t drmFormatModifierPlaneCount = {};
58910     const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts = {};
58911 
58912   };
58913   static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), "struct and wrapper have different size!" );
58914   static_assert( std::is_standard_layout<ImageDrmFormatModifierExplicitCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
58915 
58916   template <>
58917   struct CppType<StructureType, StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT>
58918   {
58919     using Type = ImageDrmFormatModifierExplicitCreateInfoEXT;
58920   };
58921 
58922   struct ImageDrmFormatModifierListCreateInfoEXT
58923   {
58924     static const bool allowDuplicate = false;
58925     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
58926 
58927 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58928     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT(uint32_t drmFormatModifierCount_ = {}, const uint64_t* pDrmFormatModifiers_ = {}) VULKAN_HPP_NOEXCEPT
58929     : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifiers( pDrmFormatModifiers_ )
58930     {}
58931 
58932     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58933 
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58934     ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58935     {
58936       *this = rhs;
58937     }
58938 
58939 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58940     ImageDrmFormatModifierListCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ )
58941     : drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifiers_.size() ) ), pDrmFormatModifiers( drmFormatModifiers_.data() )
58942     {}
58943 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58944 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58945 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58946     ImageDrmFormatModifierListCreateInfoEXT & operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58947     {
58948       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT const *>( &rhs );
58949       return *this;
58950     }
58951 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58952     ImageDrmFormatModifierListCreateInfoEXT & operator=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58953     {
58954       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageDrmFormatModifierListCreateInfoEXT ) );
58955       return *this;
58956     }
58957 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58958     ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58959     {
58960       pNext = pNext_;
58961       return *this;
58962     }
58963 
setDrmFormatModifierCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58964     ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT
58965     {
58966       drmFormatModifierCount = drmFormatModifierCount_;
58967       return *this;
58968     }
58969 
setPDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58970     ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t* pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
58971     {
58972       pDrmFormatModifiers = pDrmFormatModifiers_;
58973       return *this;
58974     }
58975 
58976 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58977     ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifiers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
58978     {
58979       drmFormatModifierCount = static_cast<uint32_t>( drmFormatModifiers_.size() );
58980       pDrmFormatModifiers = drmFormatModifiers_.data();
58981       return *this;
58982     }
58983 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58984 
58985 
operator VkImageDrmFormatModifierListCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58986     operator VkImageDrmFormatModifierListCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
58987     {
58988       return *reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>( this );
58989     }
58990 
operator VkImageDrmFormatModifierListCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58991     operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
58992     {
58993       return *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>( this );
58994     }
58995 
58996 
58997 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58998     auto operator<=>( ImageDrmFormatModifierListCreateInfoEXT const& ) const = default;
58999 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59000     bool operator==( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59001     {
59002       return ( sType == rhs.sType )
59003           && ( pNext == rhs.pNext )
59004           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
59005           && ( pDrmFormatModifiers == rhs.pDrmFormatModifiers );
59006     }
59007 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59008     bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59009     {
59010       return !operator==( rhs );
59011     }
59012 #endif
59013 
59014 
59015 
59016   public:
59017     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
59018     const void* pNext = {};
59019     uint32_t drmFormatModifierCount = {};
59020     const uint64_t* pDrmFormatModifiers = {};
59021 
59022   };
59023   static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), "struct and wrapper have different size!" );
59024   static_assert( std::is_standard_layout<ImageDrmFormatModifierListCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
59025 
59026   template <>
59027   struct CppType<StructureType, StructureType::eImageDrmFormatModifierListCreateInfoEXT>
59028   {
59029     using Type = ImageDrmFormatModifierListCreateInfoEXT;
59030   };
59031 
59032   struct ImageFormatListCreateInfo
59033   {
59034     static const bool allowDuplicate = false;
59035     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatListCreateInfo;
59036 
59037 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59038     VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo(uint32_t viewFormatCount_ = {}, const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {}) VULKAN_HPP_NOEXCEPT
59039     : viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ )
59040     {}
59041 
59042     VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59043 
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59044     ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59045     {
59046       *this = rhs;
59047     }
59048 
59049 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59050     ImageFormatListCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ )
59051     : viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
59052     {}
59053 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59054 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59055 
operator =VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59056     ImageFormatListCreateInfo & operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59057     {
59058       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo const *>( &rhs );
59059       return *this;
59060     }
59061 
operator =VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59062     ImageFormatListCreateInfo & operator=( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59063     {
59064       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageFormatListCreateInfo ) );
59065       return *this;
59066     }
59067 
setPNextVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59068     ImageFormatListCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59069     {
59070       pNext = pNext_;
59071       return *this;
59072     }
59073 
setViewFormatCountVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59074     ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
59075     {
59076       viewFormatCount = viewFormatCount_;
59077       return *this;
59078     }
59079 
setPViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59080     ImageFormatListCreateInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT
59081     {
59082       pViewFormats = pViewFormats_;
59083       return *this;
59084     }
59085 
59086 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59087     ImageFormatListCreateInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
59088     {
59089       viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
59090       pViewFormats = viewFormats_.data();
59091       return *this;
59092     }
59093 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59094 
59095 
operator VkImageFormatListCreateInfo const&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59096     operator VkImageFormatListCreateInfo const&() const VULKAN_HPP_NOEXCEPT
59097     {
59098       return *reinterpret_cast<const VkImageFormatListCreateInfo*>( this );
59099     }
59100 
operator VkImageFormatListCreateInfo&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59101     operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT
59102     {
59103       return *reinterpret_cast<VkImageFormatListCreateInfo*>( this );
59104     }
59105 
59106 
59107 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59108     auto operator<=>( ImageFormatListCreateInfo const& ) const = default;
59109 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59110     bool operator==( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59111     {
59112       return ( sType == rhs.sType )
59113           && ( pNext == rhs.pNext )
59114           && ( viewFormatCount == rhs.viewFormatCount )
59115           && ( pViewFormats == rhs.pViewFormats );
59116     }
59117 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59118     bool operator!=( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59119     {
59120       return !operator==( rhs );
59121     }
59122 #endif
59123 
59124 
59125 
59126   public:
59127     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo;
59128     const void* pNext = {};
59129     uint32_t viewFormatCount = {};
59130     const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {};
59131 
59132   };
59133   static_assert( sizeof( ImageFormatListCreateInfo ) == sizeof( VkImageFormatListCreateInfo ), "struct and wrapper have different size!" );
59134   static_assert( std::is_standard_layout<ImageFormatListCreateInfo>::value, "struct wrapper is not a standard layout!" );
59135 
59136   template <>
59137   struct CppType<StructureType, StructureType::eImageFormatListCreateInfo>
59138   {
59139     using Type = ImageFormatListCreateInfo;
59140   };
59141   using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
59142 
59143 #ifdef VK_USE_PLATFORM_FUCHSIA
59144   struct ImagePipeSurfaceCreateInfoFUCHSIA
59145   {
59146     static const bool allowDuplicate = false;
59147     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
59148 
59149 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59150     VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA(VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {}, zx_handle_t imagePipeHandle_ = {}) VULKAN_HPP_NOEXCEPT
59151     : flags( flags_ ), imagePipeHandle( imagePipeHandle_ )
59152     {}
59153 
59154     VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59155 
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59156     ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
59157     {
59158       *this = rhs;
59159     }
59160 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59161 
operator =VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59162     ImagePipeSurfaceCreateInfoFUCHSIA & operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
59163     {
59164       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const *>( &rhs );
59165       return *this;
59166     }
59167 
operator =VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59168     ImagePipeSurfaceCreateInfoFUCHSIA & operator=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
59169     {
59170       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) );
59171       return *this;
59172     }
59173 
setPNextVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59174     ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59175     {
59176       pNext = pNext_;
59177       return *this;
59178     }
59179 
setFlagsVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59180     ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
59181     {
59182       flags = flags_;
59183       return *this;
59184     }
59185 
setImagePipeHandleVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59186     ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT
59187     {
59188       imagePipeHandle = imagePipeHandle_;
59189       return *this;
59190     }
59191 
59192 
operator VkImagePipeSurfaceCreateInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59193     operator VkImagePipeSurfaceCreateInfoFUCHSIA const&() const VULKAN_HPP_NOEXCEPT
59194     {
59195       return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
59196     }
59197 
operator VkImagePipeSurfaceCreateInfoFUCHSIA&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59198     operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
59199     {
59200       return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
59201     }
59202 
59203 
59204 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59205     auto operator<=>( ImagePipeSurfaceCreateInfoFUCHSIA const& ) const = default;
59206 #else
operator ==VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59207     bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT
59208     {
59209       return ( sType == rhs.sType )
59210           && ( pNext == rhs.pNext )
59211           && ( flags == rhs.flags )
59212           && ( memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ) == 0 );
59213     }
59214 
operator !=VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59215     bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT
59216     {
59217       return !operator==( rhs );
59218     }
59219 #endif
59220 
59221 
59222 
59223   public:
59224     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
59225     const void* pNext = {};
59226     VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {};
59227     zx_handle_t imagePipeHandle = {};
59228 
59229   };
59230   static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "struct and wrapper have different size!" );
59231   static_assert( std::is_standard_layout<ImagePipeSurfaceCreateInfoFUCHSIA>::value, "struct wrapper is not a standard layout!" );
59232 
59233   template <>
59234   struct CppType<StructureType, StructureType::eImagepipeSurfaceCreateInfoFUCHSIA>
59235   {
59236     using Type = ImagePipeSurfaceCreateInfoFUCHSIA;
59237   };
59238 #endif /*VK_USE_PLATFORM_FUCHSIA*/
59239 
59240   struct ImagePlaneMemoryRequirementsInfo
59241   {
59242     static const bool allowDuplicate = false;
59243     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagePlaneMemoryRequirementsInfo;
59244 
59245 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59246     VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT
59247     : planeAspect( planeAspect_ )
59248     {}
59249 
59250     VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59251 
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59252     ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59253     {
59254       *this = rhs;
59255     }
59256 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59257 
operator =VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59258     ImagePlaneMemoryRequirementsInfo & operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59259     {
59260       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo const *>( &rhs );
59261       return *this;
59262     }
59263 
operator =VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59264     ImagePlaneMemoryRequirementsInfo & operator=( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59265     {
59266       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImagePlaneMemoryRequirementsInfo ) );
59267       return *this;
59268     }
59269 
setPNextVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59270     ImagePlaneMemoryRequirementsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59271     {
59272       pNext = pNext_;
59273       return *this;
59274     }
59275 
setPlaneAspectVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59276     ImagePlaneMemoryRequirementsInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
59277     {
59278       planeAspect = planeAspect_;
59279       return *this;
59280     }
59281 
59282 
operator VkImagePlaneMemoryRequirementsInfo const&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59283     operator VkImagePlaneMemoryRequirementsInfo const&() const VULKAN_HPP_NOEXCEPT
59284     {
59285       return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>( this );
59286     }
59287 
operator VkImagePlaneMemoryRequirementsInfo&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59288     operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT
59289     {
59290       return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>( this );
59291     }
59292 
59293 
59294 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59295     auto operator<=>( ImagePlaneMemoryRequirementsInfo const& ) const = default;
59296 #else
operator ==VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59297     bool operator==( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59298     {
59299       return ( sType == rhs.sType )
59300           && ( pNext == rhs.pNext )
59301           && ( planeAspect == rhs.planeAspect );
59302     }
59303 
operator !=VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59304     bool operator!=( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59305     {
59306       return !operator==( rhs );
59307     }
59308 #endif
59309 
59310 
59311 
59312   public:
59313     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo;
59314     const void* pNext = {};
59315     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
59316 
59317   };
59318   static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), "struct and wrapper have different size!" );
59319   static_assert( std::is_standard_layout<ImagePlaneMemoryRequirementsInfo>::value, "struct wrapper is not a standard layout!" );
59320 
59321   template <>
59322   struct CppType<StructureType, StructureType::eImagePlaneMemoryRequirementsInfo>
59323   {
59324     using Type = ImagePlaneMemoryRequirementsInfo;
59325   };
59326   using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
59327 
59328   struct ImageStencilUsageCreateInfo
59329   {
59330     static const bool allowDuplicate = false;
59331     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageStencilUsageCreateInfo;
59332 
59333 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59334     VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {}) VULKAN_HPP_NOEXCEPT
59335     : stencilUsage( stencilUsage_ )
59336     {}
59337 
59338     VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59339 
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59340     ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59341     {
59342       *this = rhs;
59343     }
59344 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59345 
operator =VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59346     ImageStencilUsageCreateInfo & operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59347     {
59348       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo const *>( &rhs );
59349       return *this;
59350     }
59351 
operator =VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59352     ImageStencilUsageCreateInfo & operator=( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59353     {
59354       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageStencilUsageCreateInfo ) );
59355       return *this;
59356     }
59357 
setPNextVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59358     ImageStencilUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59359     {
59360       pNext = pNext_;
59361       return *this;
59362     }
59363 
setStencilUsageVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59364     ImageStencilUsageCreateInfo & setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT
59365     {
59366       stencilUsage = stencilUsage_;
59367       return *this;
59368     }
59369 
59370 
operator VkImageStencilUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59371     operator VkImageStencilUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
59372     {
59373       return *reinterpret_cast<const VkImageStencilUsageCreateInfo*>( this );
59374     }
59375 
operator VkImageStencilUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59376     operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
59377     {
59378       return *reinterpret_cast<VkImageStencilUsageCreateInfo*>( this );
59379     }
59380 
59381 
59382 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59383     auto operator<=>( ImageStencilUsageCreateInfo const& ) const = default;
59384 #else
operator ==VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59385     bool operator==( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59386     {
59387       return ( sType == rhs.sType )
59388           && ( pNext == rhs.pNext )
59389           && ( stencilUsage == rhs.stencilUsage );
59390     }
59391 
operator !=VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59392     bool operator!=( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59393     {
59394       return !operator==( rhs );
59395     }
59396 #endif
59397 
59398 
59399 
59400   public:
59401     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo;
59402     const void* pNext = {};
59403     VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {};
59404 
59405   };
59406   static_assert( sizeof( ImageStencilUsageCreateInfo ) == sizeof( VkImageStencilUsageCreateInfo ), "struct and wrapper have different size!" );
59407   static_assert( std::is_standard_layout<ImageStencilUsageCreateInfo>::value, "struct wrapper is not a standard layout!" );
59408 
59409   template <>
59410   struct CppType<StructureType, StructureType::eImageStencilUsageCreateInfo>
59411   {
59412     using Type = ImageStencilUsageCreateInfo;
59413   };
59414   using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
59415 
59416   struct ImageSwapchainCreateInfoKHR
59417   {
59418     static const bool allowDuplicate = false;
59419     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSwapchainCreateInfoKHR;
59420 
59421 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59422     VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}) VULKAN_HPP_NOEXCEPT
59423     : swapchain( swapchain_ )
59424     {}
59425 
59426     VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59427 
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59428     ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59429     {
59430       *this = rhs;
59431     }
59432 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59433 
operator =VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59434     ImageSwapchainCreateInfoKHR & operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59435     {
59436       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const *>( &rhs );
59437       return *this;
59438     }
59439 
operator =VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59440     ImageSwapchainCreateInfoKHR & operator=( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59441     {
59442       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSwapchainCreateInfoKHR ) );
59443       return *this;
59444     }
59445 
setPNextVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59446     ImageSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59447     {
59448       pNext = pNext_;
59449       return *this;
59450     }
59451 
setSwapchainVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59452     ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
59453     {
59454       swapchain = swapchain_;
59455       return *this;
59456     }
59457 
59458 
operator VkImageSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59459     operator VkImageSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
59460     {
59461       return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>( this );
59462     }
59463 
operator VkImageSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59464     operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
59465     {
59466       return *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>( this );
59467     }
59468 
59469 
59470 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59471     auto operator<=>( ImageSwapchainCreateInfoKHR const& ) const = default;
59472 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59473     bool operator==( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59474     {
59475       return ( sType == rhs.sType )
59476           && ( pNext == rhs.pNext )
59477           && ( swapchain == rhs.swapchain );
59478     }
59479 
operator !=VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59480     bool operator!=( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59481     {
59482       return !operator==( rhs );
59483     }
59484 #endif
59485 
59486 
59487 
59488   public:
59489     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR;
59490     const void* pNext = {};
59491     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
59492 
59493   };
59494   static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
59495   static_assert( std::is_standard_layout<ImageSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
59496 
59497   template <>
59498   struct CppType<StructureType, StructureType::eImageSwapchainCreateInfoKHR>
59499   {
59500     using Type = ImageSwapchainCreateInfoKHR;
59501   };
59502 
59503   struct ImageViewASTCDecodeModeEXT
59504   {
59505     static const bool allowDuplicate = false;
59506     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAstcDecodeModeEXT;
59507 
59508 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59509     VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT(VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT
59510     : decodeMode( decodeMode_ )
59511     {}
59512 
59513     VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59514 
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59515     ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59516     {
59517       *this = rhs;
59518     }
59519 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59520 
operator =VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59521     ImageViewASTCDecodeModeEXT & operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59522     {
59523       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT const *>( &rhs );
59524       return *this;
59525     }
59526 
operator =VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59527     ImageViewASTCDecodeModeEXT & operator=( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59528     {
59529       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewASTCDecodeModeEXT ) );
59530       return *this;
59531     }
59532 
setPNextVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59533     ImageViewASTCDecodeModeEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59534     {
59535       pNext = pNext_;
59536       return *this;
59537     }
59538 
setDecodeModeVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59539     ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT
59540     {
59541       decodeMode = decodeMode_;
59542       return *this;
59543     }
59544 
59545 
operator VkImageViewASTCDecodeModeEXT const&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59546     operator VkImageViewASTCDecodeModeEXT const&() const VULKAN_HPP_NOEXCEPT
59547     {
59548       return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>( this );
59549     }
59550 
operator VkImageViewASTCDecodeModeEXT&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59551     operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT
59552     {
59553       return *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>( this );
59554     }
59555 
59556 
59557 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59558     auto operator<=>( ImageViewASTCDecodeModeEXT const& ) const = default;
59559 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59560     bool operator==( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59561     {
59562       return ( sType == rhs.sType )
59563           && ( pNext == rhs.pNext )
59564           && ( decodeMode == rhs.decodeMode );
59565     }
59566 
operator !=VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59567     bool operator!=( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59568     {
59569       return !operator==( rhs );
59570     }
59571 #endif
59572 
59573 
59574 
59575   public:
59576     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT;
59577     const void* pNext = {};
59578     VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined;
59579 
59580   };
59581   static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "struct and wrapper have different size!" );
59582   static_assert( std::is_standard_layout<ImageViewASTCDecodeModeEXT>::value, "struct wrapper is not a standard layout!" );
59583 
59584   template <>
59585   struct CppType<StructureType, StructureType::eImageViewAstcDecodeModeEXT>
59586   {
59587     using Type = ImageViewASTCDecodeModeEXT;
59588   };
59589 
59590   struct ImageViewUsageCreateInfo
59591   {
59592     static const bool allowDuplicate = false;
59593     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewUsageCreateInfo;
59594 
59595 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59596     VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}) VULKAN_HPP_NOEXCEPT
59597     : usage( usage_ )
59598     {}
59599 
59600     VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59601 
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59602     ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59603     {
59604       *this = rhs;
59605     }
59606 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59607 
operator =VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59608     ImageViewUsageCreateInfo & operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59609     {
59610       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const *>( &rhs );
59611       return *this;
59612     }
59613 
operator =VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59614     ImageViewUsageCreateInfo & operator=( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59615     {
59616       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewUsageCreateInfo ) );
59617       return *this;
59618     }
59619 
setPNextVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59620     ImageViewUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59621     {
59622       pNext = pNext_;
59623       return *this;
59624     }
59625 
setUsageVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59626     ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
59627     {
59628       usage = usage_;
59629       return *this;
59630     }
59631 
59632 
operator VkImageViewUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59633     operator VkImageViewUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
59634     {
59635       return *reinterpret_cast<const VkImageViewUsageCreateInfo*>( this );
59636     }
59637 
operator VkImageViewUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59638     operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
59639     {
59640       return *reinterpret_cast<VkImageViewUsageCreateInfo*>( this );
59641     }
59642 
59643 
59644 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59645     auto operator<=>( ImageViewUsageCreateInfo const& ) const = default;
59646 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59647     bool operator==( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59648     {
59649       return ( sType == rhs.sType )
59650           && ( pNext == rhs.pNext )
59651           && ( usage == rhs.usage );
59652     }
59653 
operator !=VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59654     bool operator!=( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59655     {
59656       return !operator==( rhs );
59657     }
59658 #endif
59659 
59660 
59661 
59662   public:
59663     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo;
59664     const void* pNext = {};
59665     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
59666 
59667   };
59668   static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), "struct and wrapper have different size!" );
59669   static_assert( std::is_standard_layout<ImageViewUsageCreateInfo>::value, "struct wrapper is not a standard layout!" );
59670 
59671   template <>
59672   struct CppType<StructureType, StructureType::eImageViewUsageCreateInfo>
59673   {
59674     using Type = ImageViewUsageCreateInfo;
59675   };
59676   using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
59677 
59678 #ifdef VK_USE_PLATFORM_ANDROID_KHR
59679   struct ImportAndroidHardwareBufferInfoANDROID
59680   {
59681     static const bool allowDuplicate = false;
59682     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
59683 
59684 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59685     VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID(struct AHardwareBuffer* buffer_ = {}) VULKAN_HPP_NOEXCEPT
59686     : buffer( buffer_ )
59687     {}
59688 
59689     VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59690 
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59691     ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59692     {
59693       *this = rhs;
59694     }
59695 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59696 
operator =VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59697     ImportAndroidHardwareBufferInfoANDROID & operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59698     {
59699       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID const *>( &rhs );
59700       return *this;
59701     }
59702 
operator =VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59703     ImportAndroidHardwareBufferInfoANDROID & operator=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59704     {
59705       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportAndroidHardwareBufferInfoANDROID ) );
59706       return *this;
59707     }
59708 
setPNextVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59709     ImportAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59710     {
59711       pNext = pNext_;
59712       return *this;
59713     }
59714 
setBufferVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59715     ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer* buffer_ ) VULKAN_HPP_NOEXCEPT
59716     {
59717       buffer = buffer_;
59718       return *this;
59719     }
59720 
59721 
operator VkImportAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59722     operator VkImportAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT
59723     {
59724       return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>( this );
59725     }
59726 
operator VkImportAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59727     operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
59728     {
59729       return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>( this );
59730     }
59731 
59732 
59733 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59734     auto operator<=>( ImportAndroidHardwareBufferInfoANDROID const& ) const = default;
59735 #else
operator ==VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59736     bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
59737     {
59738       return ( sType == rhs.sType )
59739           && ( pNext == rhs.pNext )
59740           && ( buffer == rhs.buffer );
59741     }
59742 
operator !=VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59743     bool operator!=( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
59744     {
59745       return !operator==( rhs );
59746     }
59747 #endif
59748 
59749 
59750 
59751   public:
59752     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
59753     const void* pNext = {};
59754     struct AHardwareBuffer* buffer = {};
59755 
59756   };
59757   static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
59758   static_assert( std::is_standard_layout<ImportAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
59759 
59760   template <>
59761   struct CppType<StructureType, StructureType::eImportAndroidHardwareBufferInfoANDROID>
59762   {
59763     using Type = ImportAndroidHardwareBufferInfoANDROID;
59764   };
59765 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
59766 
59767   struct ImportMemoryFdInfoKHR
59768   {
59769     static const bool allowDuplicate = false;
59770     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryFdInfoKHR;
59771 
59772 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59773     VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT
59774     : handleType( handleType_ ), fd( fd_ )
59775     {}
59776 
59777     VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59778 
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59779     ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59780     {
59781       *this = rhs;
59782     }
59783 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59784 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59785     ImportMemoryFdInfoKHR & operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59786     {
59787       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR const *>( &rhs );
59788       return *this;
59789     }
59790 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59791     ImportMemoryFdInfoKHR & operator=( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59792     {
59793       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryFdInfoKHR ) );
59794       return *this;
59795     }
59796 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59797     ImportMemoryFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59798     {
59799       pNext = pNext_;
59800       return *this;
59801     }
59802 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59803     ImportMemoryFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
59804     {
59805       handleType = handleType_;
59806       return *this;
59807     }
59808 
setFdVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59809     ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
59810     {
59811       fd = fd_;
59812       return *this;
59813     }
59814 
59815 
operator VkImportMemoryFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59816     operator VkImportMemoryFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
59817     {
59818       return *reinterpret_cast<const VkImportMemoryFdInfoKHR*>( this );
59819     }
59820 
operator VkImportMemoryFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59821     operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT
59822     {
59823       return *reinterpret_cast<VkImportMemoryFdInfoKHR*>( this );
59824     }
59825 
59826 
59827 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59828     auto operator<=>( ImportMemoryFdInfoKHR const& ) const = default;
59829 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59830     bool operator==( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59831     {
59832       return ( sType == rhs.sType )
59833           && ( pNext == rhs.pNext )
59834           && ( handleType == rhs.handleType )
59835           && ( fd == rhs.fd );
59836     }
59837 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59838     bool operator!=( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59839     {
59840       return !operator==( rhs );
59841     }
59842 #endif
59843 
59844 
59845 
59846   public:
59847     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR;
59848     const void* pNext = {};
59849     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
59850     int fd = {};
59851 
59852   };
59853   static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), "struct and wrapper have different size!" );
59854   static_assert( std::is_standard_layout<ImportMemoryFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
59855 
59856   template <>
59857   struct CppType<StructureType, StructureType::eImportMemoryFdInfoKHR>
59858   {
59859     using Type = ImportMemoryFdInfoKHR;
59860   };
59861 
59862   struct ImportMemoryHostPointerInfoEXT
59863   {
59864     static const bool allowDuplicate = false;
59865     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryHostPointerInfoEXT;
59866 
59867 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59868     VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, void* pHostPointer_ = {}) VULKAN_HPP_NOEXCEPT
59869     : handleType( handleType_ ), pHostPointer( pHostPointer_ )
59870     {}
59871 
59872     VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59873 
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59874     ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59875     {
59876       *this = rhs;
59877     }
59878 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59879 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59880     ImportMemoryHostPointerInfoEXT & operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59881     {
59882       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT const *>( &rhs );
59883       return *this;
59884     }
59885 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59886     ImportMemoryHostPointerInfoEXT & operator=( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59887     {
59888       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryHostPointerInfoEXT ) );
59889       return *this;
59890     }
59891 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59892     ImportMemoryHostPointerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59893     {
59894       pNext = pNext_;
59895       return *this;
59896     }
59897 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59898     ImportMemoryHostPointerInfoEXT & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
59899     {
59900       handleType = handleType_;
59901       return *this;
59902     }
59903 
setPHostPointerVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59904     ImportMemoryHostPointerInfoEXT & setPHostPointer( void* pHostPointer_ ) VULKAN_HPP_NOEXCEPT
59905     {
59906       pHostPointer = pHostPointer_;
59907       return *this;
59908     }
59909 
59910 
operator VkImportMemoryHostPointerInfoEXT const&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59911     operator VkImportMemoryHostPointerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
59912     {
59913       return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>( this );
59914     }
59915 
operator VkImportMemoryHostPointerInfoEXT&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59916     operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT
59917     {
59918       return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>( this );
59919     }
59920 
59921 
59922 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59923     auto operator<=>( ImportMemoryHostPointerInfoEXT const& ) const = default;
59924 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59925     bool operator==( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59926     {
59927       return ( sType == rhs.sType )
59928           && ( pNext == rhs.pNext )
59929           && ( handleType == rhs.handleType )
59930           && ( pHostPointer == rhs.pHostPointer );
59931     }
59932 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59933     bool operator!=( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59934     {
59935       return !operator==( rhs );
59936     }
59937 #endif
59938 
59939 
59940 
59941   public:
59942     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT;
59943     const void* pNext = {};
59944     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
59945     void* pHostPointer = {};
59946 
59947   };
59948   static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), "struct and wrapper have different size!" );
59949   static_assert( std::is_standard_layout<ImportMemoryHostPointerInfoEXT>::value, "struct wrapper is not a standard layout!" );
59950 
59951   template <>
59952   struct CppType<StructureType, StructureType::eImportMemoryHostPointerInfoEXT>
59953   {
59954     using Type = ImportMemoryHostPointerInfoEXT;
59955   };
59956 
59957 #ifdef VK_USE_PLATFORM_WIN32_KHR
59958   struct ImportMemoryWin32HandleInfoKHR
59959   {
59960     static const bool allowDuplicate = false;
59961     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoKHR;
59962 
59963 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59964     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
59965     : handleType( handleType_ ), handle( handle_ ), name( name_ )
59966     {}
59967 
59968     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59969 
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59970     ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59971     {
59972       *this = rhs;
59973     }
59974 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59975 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59976     ImportMemoryWin32HandleInfoKHR & operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59977     {
59978       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR const *>( &rhs );
59979       return *this;
59980     }
59981 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59982     ImportMemoryWin32HandleInfoKHR & operator=( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59983     {
59984       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryWin32HandleInfoKHR ) );
59985       return *this;
59986     }
59987 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59988     ImportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59989     {
59990       pNext = pNext_;
59991       return *this;
59992     }
59993 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59994     ImportMemoryWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
59995     {
59996       handleType = handleType_;
59997       return *this;
59998     }
59999 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60000     ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
60001     {
60002       handle = handle_;
60003       return *this;
60004     }
60005 
setNameVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60006     ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
60007     {
60008       name = name_;
60009       return *this;
60010     }
60011 
60012 
operator VkImportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60013     operator VkImportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
60014     {
60015       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>( this );
60016     }
60017 
operator VkImportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60018     operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
60019     {
60020       return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>( this );
60021     }
60022 
60023 
60024 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60025     auto operator<=>( ImportMemoryWin32HandleInfoKHR const& ) const = default;
60026 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60027     bool operator==( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60028     {
60029       return ( sType == rhs.sType )
60030           && ( pNext == rhs.pNext )
60031           && ( handleType == rhs.handleType )
60032           && ( handle == rhs.handle )
60033           && ( name == rhs.name );
60034     }
60035 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60036     bool operator!=( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60037     {
60038       return !operator==( rhs );
60039     }
60040 #endif
60041 
60042 
60043 
60044   public:
60045     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR;
60046     const void* pNext = {};
60047     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
60048     HANDLE handle = {};
60049     LPCWSTR name = {};
60050 
60051   };
60052   static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
60053   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
60054 
60055   template <>
60056   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoKHR>
60057   {
60058     using Type = ImportMemoryWin32HandleInfoKHR;
60059   };
60060 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
60061 
60062 #ifdef VK_USE_PLATFORM_WIN32_KHR
60063   struct ImportMemoryWin32HandleInfoNV
60064   {
60065     static const bool allowDuplicate = false;
60066     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoNV;
60067 
60068 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60069     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {}, HANDLE handle_ = {}) VULKAN_HPP_NOEXCEPT
60070     : handleType( handleType_ ), handle( handle_ )
60071     {}
60072 
60073     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60074 
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60075     ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
60076     {
60077       *this = rhs;
60078     }
60079 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60080 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60081     ImportMemoryWin32HandleInfoNV & operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
60082     {
60083       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV const *>( &rhs );
60084       return *this;
60085     }
60086 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60087     ImportMemoryWin32HandleInfoNV & operator=( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
60088     {
60089       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryWin32HandleInfoNV ) );
60090       return *this;
60091     }
60092 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60093     ImportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60094     {
60095       pNext = pNext_;
60096       return *this;
60097     }
60098 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60099     ImportMemoryWin32HandleInfoNV & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT
60100     {
60101       handleType = handleType_;
60102       return *this;
60103     }
60104 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60105     ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
60106     {
60107       handle = handle_;
60108       return *this;
60109     }
60110 
60111 
operator VkImportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60112     operator VkImportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT
60113     {
60114       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>( this );
60115     }
60116 
operator VkImportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60117     operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
60118     {
60119       return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>( this );
60120     }
60121 
60122 
60123 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60124     auto operator<=>( ImportMemoryWin32HandleInfoNV const& ) const = default;
60125 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60126     bool operator==( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
60127     {
60128       return ( sType == rhs.sType )
60129           && ( pNext == rhs.pNext )
60130           && ( handleType == rhs.handleType )
60131           && ( handle == rhs.handle );
60132     }
60133 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60134     bool operator!=( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
60135     {
60136       return !operator==( rhs );
60137     }
60138 #endif
60139 
60140 
60141 
60142   public:
60143     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV;
60144     const void* pNext = {};
60145     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {};
60146     HANDLE handle = {};
60147 
60148   };
60149   static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
60150   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
60151 
60152   template <>
60153   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoNV>
60154   {
60155     using Type = ImportMemoryWin32HandleInfoNV;
60156   };
60157 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
60158 
60159   struct InputAttachmentAspectReference
60160   {
60161 
60162 
60163 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60164     VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference(uint32_t subpass_ = {}, uint32_t inputAttachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}) VULKAN_HPP_NOEXCEPT
60165     : subpass( subpass_ ), inputAttachmentIndex( inputAttachmentIndex_ ), aspectMask( aspectMask_ )
60166     {}
60167 
60168     VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60169 
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60170     InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
60171     {
60172       *this = rhs;
60173     }
60174 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60175 
operator =VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60176     InputAttachmentAspectReference & operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
60177     {
60178       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference const *>( &rhs );
60179       return *this;
60180     }
60181 
operator =VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60182     InputAttachmentAspectReference & operator=( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
60183     {
60184       memcpy( static_cast<void *>( this ), &rhs, sizeof( InputAttachmentAspectReference ) );
60185       return *this;
60186     }
60187 
setSubpassVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60188     InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
60189     {
60190       subpass = subpass_;
60191       return *this;
60192     }
60193 
setInputAttachmentIndexVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60194     InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT
60195     {
60196       inputAttachmentIndex = inputAttachmentIndex_;
60197       return *this;
60198     }
60199 
setAspectMaskVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60200     InputAttachmentAspectReference & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
60201     {
60202       aspectMask = aspectMask_;
60203       return *this;
60204     }
60205 
60206 
operator VkInputAttachmentAspectReference const&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60207     operator VkInputAttachmentAspectReference const&() const VULKAN_HPP_NOEXCEPT
60208     {
60209       return *reinterpret_cast<const VkInputAttachmentAspectReference*>( this );
60210     }
60211 
operator VkInputAttachmentAspectReference&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60212     operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT
60213     {
60214       return *reinterpret_cast<VkInputAttachmentAspectReference*>( this );
60215     }
60216 
60217 
60218 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60219     auto operator<=>( InputAttachmentAspectReference const& ) const = default;
60220 #else
operator ==VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60221     bool operator==( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT
60222     {
60223       return ( subpass == rhs.subpass )
60224           && ( inputAttachmentIndex == rhs.inputAttachmentIndex )
60225           && ( aspectMask == rhs.aspectMask );
60226     }
60227 
operator !=VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60228     bool operator!=( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT
60229     {
60230       return !operator==( rhs );
60231     }
60232 #endif
60233 
60234 
60235 
60236   public:
60237     uint32_t subpass = {};
60238     uint32_t inputAttachmentIndex = {};
60239     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
60240 
60241   };
60242   static_assert( sizeof( InputAttachmentAspectReference ) == sizeof( VkInputAttachmentAspectReference ), "struct and wrapper have different size!" );
60243   static_assert( std::is_standard_layout<InputAttachmentAspectReference>::value, "struct wrapper is not a standard layout!" );
60244   using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
60245 
60246   struct InstanceCreateInfo
60247   {
60248     static const bool allowDuplicate = false;
60249     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInstanceCreateInfo;
60250 
60251 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60252     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
60253     : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ )
60254     {}
60255 
60256     VULKAN_HPP_CONSTEXPR InstanceCreateInfo( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60257 
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60258     InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60259     {
60260       *this = rhs;
60261     }
60262 
60263 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60264     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_ = {} )
60265     : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) ), ppEnabledLayerNames( pEnabledLayerNames_.data() ), enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) ), ppEnabledExtensionNames( pEnabledExtensionNames_.data() )
60266     {}
60267 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
60268 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60269 
operator =VULKAN_HPP_NAMESPACE::InstanceCreateInfo60270     InstanceCreateInfo & operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60271     {
60272       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InstanceCreateInfo const *>( &rhs );
60273       return *this;
60274     }
60275 
operator =VULKAN_HPP_NAMESPACE::InstanceCreateInfo60276     InstanceCreateInfo & operator=( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60277     {
60278       memcpy( static_cast<void *>( this ), &rhs, sizeof( InstanceCreateInfo ) );
60279       return *this;
60280     }
60281 
setPNextVULKAN_HPP_NAMESPACE::InstanceCreateInfo60282     InstanceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60283     {
60284       pNext = pNext_;
60285       return *this;
60286     }
60287 
setFlagsVULKAN_HPP_NAMESPACE::InstanceCreateInfo60288     InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
60289     {
60290       flags = flags_;
60291       return *this;
60292     }
60293 
setPApplicationInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60294     InstanceCreateInfo & setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT
60295     {
60296       pApplicationInfo = pApplicationInfo_;
60297       return *this;
60298     }
60299 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo60300     InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
60301     {
60302       enabledLayerCount = enabledLayerCount_;
60303       return *this;
60304     }
60305 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60306     InstanceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
60307     {
60308       ppEnabledLayerNames = ppEnabledLayerNames_;
60309       return *this;
60310     }
60311 
60312 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60313     InstanceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
60314     {
60315       enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
60316       ppEnabledLayerNames = pEnabledLayerNames_.data();
60317       return *this;
60318     }
60319 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
60320 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo60321     InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
60322     {
60323       enabledExtensionCount = enabledExtensionCount_;
60324       return *this;
60325     }
60326 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60327     InstanceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
60328     {
60329       ppEnabledExtensionNames = ppEnabledExtensionNames_;
60330       return *this;
60331     }
60332 
60333 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60334     InstanceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
60335     {
60336       enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
60337       ppEnabledExtensionNames = pEnabledExtensionNames_.data();
60338       return *this;
60339     }
60340 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
60341 
60342 
operator VkInstanceCreateInfo const&VULKAN_HPP_NAMESPACE::InstanceCreateInfo60343     operator VkInstanceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
60344     {
60345       return *reinterpret_cast<const VkInstanceCreateInfo*>( this );
60346     }
60347 
operator VkInstanceCreateInfo&VULKAN_HPP_NAMESPACE::InstanceCreateInfo60348     operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT
60349     {
60350       return *reinterpret_cast<VkInstanceCreateInfo*>( this );
60351     }
60352 
60353 
60354 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60355     auto operator<=>( InstanceCreateInfo const& ) const = default;
60356 #else
operator ==VULKAN_HPP_NAMESPACE::InstanceCreateInfo60357     bool operator==( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60358     {
60359       return ( sType == rhs.sType )
60360           && ( pNext == rhs.pNext )
60361           && ( flags == rhs.flags )
60362           && ( pApplicationInfo == rhs.pApplicationInfo )
60363           && ( enabledLayerCount == rhs.enabledLayerCount )
60364           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
60365           && ( enabledExtensionCount == rhs.enabledExtensionCount )
60366           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames );
60367     }
60368 
operator !=VULKAN_HPP_NAMESPACE::InstanceCreateInfo60369     bool operator!=( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60370     {
60371       return !operator==( rhs );
60372     }
60373 #endif
60374 
60375 
60376 
60377   public:
60378     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo;
60379     const void* pNext = {};
60380     VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {};
60381     const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo = {};
60382     uint32_t enabledLayerCount = {};
60383     const char* const * ppEnabledLayerNames = {};
60384     uint32_t enabledExtensionCount = {};
60385     const char* const * ppEnabledExtensionNames = {};
60386 
60387   };
60388   static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "struct and wrapper have different size!" );
60389   static_assert( std::is_standard_layout<InstanceCreateInfo>::value, "struct wrapper is not a standard layout!" );
60390 
60391   template <>
60392   struct CppType<StructureType, StructureType::eInstanceCreateInfo>
60393   {
60394     using Type = InstanceCreateInfo;
60395   };
60396 
60397 #ifdef VK_USE_PLATFORM_MACOS_MVK
60398   struct MacOSSurfaceCreateInfoMVK
60399   {
60400     static const bool allowDuplicate = false;
60401     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMacosSurfaceCreateInfoMVK;
60402 
60403 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60404     VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT
60405     : flags( flags_ ), pView( pView_ )
60406     {}
60407 
60408     VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60409 
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60410     MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
60411     {
60412       *this = rhs;
60413     }
60414 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60415 
operator =VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60416     MacOSSurfaceCreateInfoMVK & operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
60417     {
60418       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const *>( &rhs );
60419       return *this;
60420     }
60421 
operator =VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60422     MacOSSurfaceCreateInfoMVK & operator=( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
60423     {
60424       memcpy( static_cast<void *>( this ), &rhs, sizeof( MacOSSurfaceCreateInfoMVK ) );
60425       return *this;
60426     }
60427 
setPNextVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60428     MacOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60429     {
60430       pNext = pNext_;
60431       return *this;
60432     }
60433 
setFlagsVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60434     MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
60435     {
60436       flags = flags_;
60437       return *this;
60438     }
60439 
setPViewVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60440     MacOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT
60441     {
60442       pView = pView_;
60443       return *this;
60444     }
60445 
60446 
operator VkMacOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60447     operator VkMacOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT
60448     {
60449       return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( this );
60450     }
60451 
operator VkMacOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60452     operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
60453     {
60454       return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>( this );
60455     }
60456 
60457 
60458 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60459     auto operator<=>( MacOSSurfaceCreateInfoMVK const& ) const = default;
60460 #else
operator ==VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60461     bool operator==( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
60462     {
60463       return ( sType == rhs.sType )
60464           && ( pNext == rhs.pNext )
60465           && ( flags == rhs.flags )
60466           && ( pView == rhs.pView );
60467     }
60468 
operator !=VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60469     bool operator!=( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
60470     {
60471       return !operator==( rhs );
60472     }
60473 #endif
60474 
60475 
60476 
60477   public:
60478     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK;
60479     const void* pNext = {};
60480     VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {};
60481     const void* pView = {};
60482 
60483   };
60484   static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
60485   static_assert( std::is_standard_layout<MacOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
60486 
60487   template <>
60488   struct CppType<StructureType, StructureType::eMacosSurfaceCreateInfoMVK>
60489   {
60490     using Type = MacOSSurfaceCreateInfoMVK;
60491   };
60492 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
60493 
60494   struct MemoryAllocateFlagsInfo
60495   {
60496     static const bool allowDuplicate = false;
60497     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateFlagsInfo;
60498 
60499 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60500     VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo(VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {}, uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT
60501     : flags( flags_ ), deviceMask( deviceMask_ )
60502     {}
60503 
60504     VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60505 
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60506     MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60507     {
60508       *this = rhs;
60509     }
60510 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60511 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60512     MemoryAllocateFlagsInfo & operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60513     {
60514       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo const *>( &rhs );
60515       return *this;
60516     }
60517 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60518     MemoryAllocateFlagsInfo & operator=( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60519     {
60520       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryAllocateFlagsInfo ) );
60521       return *this;
60522     }
60523 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60524     MemoryAllocateFlagsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60525     {
60526       pNext = pNext_;
60527       return *this;
60528     }
60529 
setFlagsVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60530     MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT
60531     {
60532       flags = flags_;
60533       return *this;
60534     }
60535 
setDeviceMaskVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60536     MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
60537     {
60538       deviceMask = deviceMask_;
60539       return *this;
60540     }
60541 
60542 
operator VkMemoryAllocateFlagsInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60543     operator VkMemoryAllocateFlagsInfo const&() const VULKAN_HPP_NOEXCEPT
60544     {
60545       return *reinterpret_cast<const VkMemoryAllocateFlagsInfo*>( this );
60546     }
60547 
operator VkMemoryAllocateFlagsInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60548     operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT
60549     {
60550       return *reinterpret_cast<VkMemoryAllocateFlagsInfo*>( this );
60551     }
60552 
60553 
60554 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60555     auto operator<=>( MemoryAllocateFlagsInfo const& ) const = default;
60556 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60557     bool operator==( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60558     {
60559       return ( sType == rhs.sType )
60560           && ( pNext == rhs.pNext )
60561           && ( flags == rhs.flags )
60562           && ( deviceMask == rhs.deviceMask );
60563     }
60564 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60565     bool operator!=( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60566     {
60567       return !operator==( rhs );
60568     }
60569 #endif
60570 
60571 
60572 
60573   public:
60574     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo;
60575     const void* pNext = {};
60576     VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {};
60577     uint32_t deviceMask = {};
60578 
60579   };
60580   static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), "struct and wrapper have different size!" );
60581   static_assert( std::is_standard_layout<MemoryAllocateFlagsInfo>::value, "struct wrapper is not a standard layout!" );
60582 
60583   template <>
60584   struct CppType<StructureType, StructureType::eMemoryAllocateFlagsInfo>
60585   {
60586     using Type = MemoryAllocateFlagsInfo;
60587   };
60588   using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
60589 
60590   struct MemoryDedicatedAllocateInfo
60591   {
60592     static const bool allowDuplicate = false;
60593     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfo;
60594 
60595 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60596     VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
60597     : image( image_ ), buffer( buffer_ )
60598     {}
60599 
60600     VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60601 
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60602     MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60603     {
60604       *this = rhs;
60605     }
60606 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60607 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60608     MemoryDedicatedAllocateInfo & operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60609     {
60610       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo const *>( &rhs );
60611       return *this;
60612     }
60613 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60614     MemoryDedicatedAllocateInfo & operator=( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60615     {
60616       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryDedicatedAllocateInfo ) );
60617       return *this;
60618     }
60619 
setPNextVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60620     MemoryDedicatedAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60621     {
60622       pNext = pNext_;
60623       return *this;
60624     }
60625 
setImageVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60626     MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
60627     {
60628       image = image_;
60629       return *this;
60630     }
60631 
setBufferVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60632     MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
60633     {
60634       buffer = buffer_;
60635       return *this;
60636     }
60637 
60638 
operator VkMemoryDedicatedAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60639     operator VkMemoryDedicatedAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
60640     {
60641       return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>( this );
60642     }
60643 
operator VkMemoryDedicatedAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60644     operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT
60645     {
60646       return *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>( this );
60647     }
60648 
60649 
60650 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60651     auto operator<=>( MemoryDedicatedAllocateInfo const& ) const = default;
60652 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60653     bool operator==( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60654     {
60655       return ( sType == rhs.sType )
60656           && ( pNext == rhs.pNext )
60657           && ( image == rhs.image )
60658           && ( buffer == rhs.buffer );
60659     }
60660 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60661     bool operator!=( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60662     {
60663       return !operator==( rhs );
60664     }
60665 #endif
60666 
60667 
60668 
60669   public:
60670     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo;
60671     const void* pNext = {};
60672     VULKAN_HPP_NAMESPACE::Image image = {};
60673     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
60674 
60675   };
60676   static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), "struct and wrapper have different size!" );
60677   static_assert( std::is_standard_layout<MemoryDedicatedAllocateInfo>::value, "struct wrapper is not a standard layout!" );
60678 
60679   template <>
60680   struct CppType<StructureType, StructureType::eMemoryDedicatedAllocateInfo>
60681   {
60682     using Type = MemoryDedicatedAllocateInfo;
60683   };
60684   using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
60685 
60686   struct MemoryDedicatedRequirements
60687   {
60688     static const bool allowDuplicate = false;
60689     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedRequirements;
60690 
60691 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60692     VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements(VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
60693     : prefersDedicatedAllocation( prefersDedicatedAllocation_ ), requiresDedicatedAllocation( requiresDedicatedAllocation_ )
60694     {}
60695 
60696     VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60697 
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60698     MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
60699     {
60700       *this = rhs;
60701     }
60702 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60703 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60704     MemoryDedicatedRequirements & operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
60705     {
60706       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const *>( &rhs );
60707       return *this;
60708     }
60709 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60710     MemoryDedicatedRequirements & operator=( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
60711     {
60712       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryDedicatedRequirements ) );
60713       return *this;
60714     }
60715 
60716 
operator VkMemoryDedicatedRequirements const&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60717     operator VkMemoryDedicatedRequirements const&() const VULKAN_HPP_NOEXCEPT
60718     {
60719       return *reinterpret_cast<const VkMemoryDedicatedRequirements*>( this );
60720     }
60721 
operator VkMemoryDedicatedRequirements&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60722     operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT
60723     {
60724       return *reinterpret_cast<VkMemoryDedicatedRequirements*>( this );
60725     }
60726 
60727 
60728 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60729     auto operator<=>( MemoryDedicatedRequirements const& ) const = default;
60730 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60731     bool operator==( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
60732     {
60733       return ( sType == rhs.sType )
60734           && ( pNext == rhs.pNext )
60735           && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation )
60736           && ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation );
60737     }
60738 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60739     bool operator!=( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
60740     {
60741       return !operator==( rhs );
60742     }
60743 #endif
60744 
60745 
60746 
60747   public:
60748     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements;
60749     void* pNext = {};
60750     VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {};
60751     VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {};
60752 
60753   };
60754   static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), "struct and wrapper have different size!" );
60755   static_assert( std::is_standard_layout<MemoryDedicatedRequirements>::value, "struct wrapper is not a standard layout!" );
60756 
60757   template <>
60758   struct CppType<StructureType, StructureType::eMemoryDedicatedRequirements>
60759   {
60760     using Type = MemoryDedicatedRequirements;
60761   };
60762   using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
60763 
60764   struct MemoryOpaqueCaptureAddressAllocateInfo
60765   {
60766     static const bool allowDuplicate = false;
60767     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
60768 
60769 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60770     VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT
60771     : opaqueCaptureAddress( opaqueCaptureAddress_ )
60772     {}
60773 
60774     VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60775 
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60776     MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60777     {
60778       *this = rhs;
60779     }
60780 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60781 
operator =VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60782     MemoryOpaqueCaptureAddressAllocateInfo & operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60783     {
60784       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo const *>( &rhs );
60785       return *this;
60786     }
60787 
operator =VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60788     MemoryOpaqueCaptureAddressAllocateInfo & operator=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60789     {
60790       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) );
60791       return *this;
60792     }
60793 
setPNextVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60794     MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60795     {
60796       pNext = pNext_;
60797       return *this;
60798     }
60799 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60800     MemoryOpaqueCaptureAddressAllocateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
60801     {
60802       opaqueCaptureAddress = opaqueCaptureAddress_;
60803       return *this;
60804     }
60805 
60806 
operator VkMemoryOpaqueCaptureAddressAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60807     operator VkMemoryOpaqueCaptureAddressAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
60808     {
60809       return *reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
60810     }
60811 
operator VkMemoryOpaqueCaptureAddressAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60812     operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT
60813     {
60814       return *reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
60815     }
60816 
60817 
60818 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60819     auto operator<=>( MemoryOpaqueCaptureAddressAllocateInfo const& ) const = default;
60820 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60821     bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60822     {
60823       return ( sType == rhs.sType )
60824           && ( pNext == rhs.pNext )
60825           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
60826     }
60827 
operator !=VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60828     bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60829     {
60830       return !operator==( rhs );
60831     }
60832 #endif
60833 
60834 
60835 
60836   public:
60837     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
60838     const void* pNext = {};
60839     uint64_t opaqueCaptureAddress = {};
60840 
60841   };
60842   static_assert( sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) == sizeof( VkMemoryOpaqueCaptureAddressAllocateInfo ), "struct and wrapper have different size!" );
60843   static_assert( std::is_standard_layout<MemoryOpaqueCaptureAddressAllocateInfo>::value, "struct wrapper is not a standard layout!" );
60844 
60845   template <>
60846   struct CppType<StructureType, StructureType::eMemoryOpaqueCaptureAddressAllocateInfo>
60847   {
60848     using Type = MemoryOpaqueCaptureAddressAllocateInfo;
60849   };
60850   using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
60851 
60852   struct MemoryPriorityAllocateInfoEXT
60853   {
60854     static const bool allowDuplicate = false;
60855     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryPriorityAllocateInfoEXT;
60856 
60857 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60858     VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT(float priority_ = {}) VULKAN_HPP_NOEXCEPT
60859     : priority( priority_ )
60860     {}
60861 
60862     VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60863 
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60864     MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60865     {
60866       *this = rhs;
60867     }
60868 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60869 
operator =VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60870     MemoryPriorityAllocateInfoEXT & operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60871     {
60872       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT const *>( &rhs );
60873       return *this;
60874     }
60875 
operator =VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60876     MemoryPriorityAllocateInfoEXT & operator=( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60877     {
60878       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryPriorityAllocateInfoEXT ) );
60879       return *this;
60880     }
60881 
setPNextVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60882     MemoryPriorityAllocateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60883     {
60884       pNext = pNext_;
60885       return *this;
60886     }
60887 
setPriorityVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60888     MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT
60889     {
60890       priority = priority_;
60891       return *this;
60892     }
60893 
60894 
operator VkMemoryPriorityAllocateInfoEXT const&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60895     operator VkMemoryPriorityAllocateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
60896     {
60897       return *reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>( this );
60898     }
60899 
operator VkMemoryPriorityAllocateInfoEXT&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60900     operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT
60901     {
60902       return *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>( this );
60903     }
60904 
60905 
60906 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60907     auto operator<=>( MemoryPriorityAllocateInfoEXT const& ) const = default;
60908 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60909     bool operator==( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60910     {
60911       return ( sType == rhs.sType )
60912           && ( pNext == rhs.pNext )
60913           && ( priority == rhs.priority );
60914     }
60915 
operator !=VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60916     bool operator!=( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60917     {
60918       return !operator==( rhs );
60919     }
60920 #endif
60921 
60922 
60923 
60924   public:
60925     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT;
60926     const void* pNext = {};
60927     float priority = {};
60928 
60929   };
60930   static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), "struct and wrapper have different size!" );
60931   static_assert( std::is_standard_layout<MemoryPriorityAllocateInfoEXT>::value, "struct wrapper is not a standard layout!" );
60932 
60933   template <>
60934   struct CppType<StructureType, StructureType::eMemoryPriorityAllocateInfoEXT>
60935   {
60936     using Type = MemoryPriorityAllocateInfoEXT;
60937   };
60938 
60939 #ifdef VK_USE_PLATFORM_METAL_EXT
60940   struct MetalSurfaceCreateInfoEXT
60941   {
60942     static const bool allowDuplicate = false;
60943     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMetalSurfaceCreateInfoEXT;
60944 
60945 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60946     VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {}, const CAMetalLayer* pLayer_ = {}) VULKAN_HPP_NOEXCEPT
60947     : flags( flags_ ), pLayer( pLayer_ )
60948     {}
60949 
60950     VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60951 
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60952     MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60953     {
60954       *this = rhs;
60955     }
60956 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60957 
operator =VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60958     MetalSurfaceCreateInfoEXT & operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60959     {
60960       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const *>( &rhs );
60961       return *this;
60962     }
60963 
operator =VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60964     MetalSurfaceCreateInfoEXT & operator=( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60965     {
60966       memcpy( static_cast<void *>( this ), &rhs, sizeof( MetalSurfaceCreateInfoEXT ) );
60967       return *this;
60968     }
60969 
setPNextVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60970     MetalSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60971     {
60972       pNext = pNext_;
60973       return *this;
60974     }
60975 
setFlagsVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60976     MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
60977     {
60978       flags = flags_;
60979       return *this;
60980     }
60981 
setPLayerVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60982     MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer* pLayer_ ) VULKAN_HPP_NOEXCEPT
60983     {
60984       pLayer = pLayer_;
60985       return *this;
60986     }
60987 
60988 
operator VkMetalSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60989     operator VkMetalSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
60990     {
60991       return *reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( this );
60992     }
60993 
operator VkMetalSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60994     operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
60995     {
60996       return *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>( this );
60997     }
60998 
60999 
61000 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61001     auto operator<=>( MetalSurfaceCreateInfoEXT const& ) const = default;
61002 #else
operator ==VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61003     bool operator==( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61004     {
61005       return ( sType == rhs.sType )
61006           && ( pNext == rhs.pNext )
61007           && ( flags == rhs.flags )
61008           && ( pLayer == rhs.pLayer );
61009     }
61010 
operator !=VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61011     bool operator!=( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61012     {
61013       return !operator==( rhs );
61014     }
61015 #endif
61016 
61017 
61018 
61019   public:
61020     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT;
61021     const void* pNext = {};
61022     VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {};
61023     const CAMetalLayer* pLayer = {};
61024 
61025   };
61026   static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
61027   static_assert( std::is_standard_layout<MetalSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
61028 
61029   template <>
61030   struct CppType<StructureType, StructureType::eMetalSurfaceCreateInfoEXT>
61031   {
61032     using Type = MetalSurfaceCreateInfoEXT;
61033   };
61034 #endif /*VK_USE_PLATFORM_METAL_EXT*/
61035 
61036   union PerformanceCounterResultKHR
61037   {
PerformanceCounterResultKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs)61038     PerformanceCounterResultKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const& rhs ) VULKAN_HPP_NOEXCEPT
61039     {
61040       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) );
61041     }
61042 
PerformanceCounterResultKHR(int32_t int32_={} )61043     PerformanceCounterResultKHR( int32_t int32_ = {} )
61044       : int32( int32_ )
61045     {}
61046 
PerformanceCounterResultKHR(int64_t int64_)61047     PerformanceCounterResultKHR( int64_t int64_ )
61048       : int64( int64_ )
61049     {}
61050 
PerformanceCounterResultKHR(uint32_t uint32_)61051     PerformanceCounterResultKHR( uint32_t uint32_ )
61052       : uint32( uint32_ )
61053     {}
61054 
PerformanceCounterResultKHR(uint64_t uint64_)61055     PerformanceCounterResultKHR( uint64_t uint64_ )
61056       : uint64( uint64_ )
61057     {}
61058 
PerformanceCounterResultKHR(float float32_)61059     PerformanceCounterResultKHR( float float32_ )
61060       : float32( float32_ )
61061     {}
61062 
PerformanceCounterResultKHR(double float64_)61063     PerformanceCounterResultKHR( double float64_ )
61064       : float64( float64_ )
61065     {}
61066 
setInt32(int32_t int32_)61067     PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT
61068     {
61069       int32 = int32_;
61070       return *this;
61071     }
61072 
setInt64(int64_t int64_)61073     PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT
61074     {
61075       int64 = int64_;
61076       return *this;
61077     }
61078 
setUint32(uint32_t uint32_)61079     PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT
61080     {
61081       uint32 = uint32_;
61082       return *this;
61083     }
61084 
setUint64(uint64_t uint64_)61085     PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT
61086     {
61087       uint64 = uint64_;
61088       return *this;
61089     }
61090 
setFloat32(float float32_)61091     PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT
61092     {
61093       float32 = float32_;
61094       return *this;
61095     }
61096 
setFloat64(double float64_)61097     PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT
61098     {
61099       float64 = float64_;
61100       return *this;
61101     }
61102 
operator =(VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs)61103     VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR & operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61104     {
61105       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) );
61106       return *this;
61107     }
61108 
operator VkPerformanceCounterResultKHR const&() const61109     operator VkPerformanceCounterResultKHR const&() const
61110     {
61111       return *reinterpret_cast<const VkPerformanceCounterResultKHR*>(this);
61112     }
61113 
operator VkPerformanceCounterResultKHR&()61114     operator VkPerformanceCounterResultKHR &()
61115     {
61116       return *reinterpret_cast<VkPerformanceCounterResultKHR*>(this);
61117     }
61118 
61119     int32_t int32;
61120     int64_t int64;
61121     uint32_t uint32;
61122     uint64_t uint64;
61123     float float32;
61124     double float64;
61125   };
61126 
61127   struct PerformanceQuerySubmitInfoKHR
61128   {
61129     static const bool allowDuplicate = false;
61130     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceQuerySubmitInfoKHR;
61131 
61132 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61133     VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR(uint32_t counterPassIndex_ = {}) VULKAN_HPP_NOEXCEPT
61134     : counterPassIndex( counterPassIndex_ )
61135     {}
61136 
61137     VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61138 
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61139     PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61140     {
61141       *this = rhs;
61142     }
61143 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61144 
operator =VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61145     PerformanceQuerySubmitInfoKHR & operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61146     {
61147       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR const *>( &rhs );
61148       return *this;
61149     }
61150 
operator =VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61151     PerformanceQuerySubmitInfoKHR & operator=( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61152     {
61153       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceQuerySubmitInfoKHR ) );
61154       return *this;
61155     }
61156 
setPNextVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61157     PerformanceQuerySubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61158     {
61159       pNext = pNext_;
61160       return *this;
61161     }
61162 
setCounterPassIndexVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61163     PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT
61164     {
61165       counterPassIndex = counterPassIndex_;
61166       return *this;
61167     }
61168 
61169 
operator VkPerformanceQuerySubmitInfoKHR const&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61170     operator VkPerformanceQuerySubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
61171     {
61172       return *reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>( this );
61173     }
61174 
operator VkPerformanceQuerySubmitInfoKHR&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61175     operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
61176     {
61177       return *reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>( this );
61178     }
61179 
61180 
61181 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61182     auto operator<=>( PerformanceQuerySubmitInfoKHR const& ) const = default;
61183 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61184     bool operator==( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
61185     {
61186       return ( sType == rhs.sType )
61187           && ( pNext == rhs.pNext )
61188           && ( counterPassIndex == rhs.counterPassIndex );
61189     }
61190 
operator !=VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61191     bool operator!=( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
61192     {
61193       return !operator==( rhs );
61194     }
61195 #endif
61196 
61197 
61198 
61199   public:
61200     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR;
61201     const void* pNext = {};
61202     uint32_t counterPassIndex = {};
61203 
61204   };
61205   static_assert( sizeof( PerformanceQuerySubmitInfoKHR ) == sizeof( VkPerformanceQuerySubmitInfoKHR ), "struct and wrapper have different size!" );
61206   static_assert( std::is_standard_layout<PerformanceQuerySubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
61207 
61208   template <>
61209   struct CppType<StructureType, StructureType::ePerformanceQuerySubmitInfoKHR>
61210   {
61211     using Type = PerformanceQuerySubmitInfoKHR;
61212   };
61213 
61214   struct PhysicalDevice16BitStorageFeatures
61215   {
61216     static const bool allowDuplicate = false;
61217     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice16BitStorageFeatures;
61218 
61219 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61220     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
61221     : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ )
61222     {}
61223 
61224     VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61225 
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61226     PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61227     {
61228       *this = rhs;
61229     }
61230 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61231 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61232     PhysicalDevice16BitStorageFeatures & operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61233     {
61234       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures const *>( &rhs );
61235       return *this;
61236     }
61237 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61238     PhysicalDevice16BitStorageFeatures & operator=( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61239     {
61240       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevice16BitStorageFeatures ) );
61241       return *this;
61242     }
61243 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61244     PhysicalDevice16BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61245     {
61246       pNext = pNext_;
61247       return *this;
61248     }
61249 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61250     PhysicalDevice16BitStorageFeatures & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
61251     {
61252       storageBuffer16BitAccess = storageBuffer16BitAccess_;
61253       return *this;
61254     }
61255 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61256     PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
61257     {
61258       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
61259       return *this;
61260     }
61261 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61262     PhysicalDevice16BitStorageFeatures & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
61263     {
61264       storagePushConstant16 = storagePushConstant16_;
61265       return *this;
61266     }
61267 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61268     PhysicalDevice16BitStorageFeatures & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
61269     {
61270       storageInputOutput16 = storageInputOutput16_;
61271       return *this;
61272     }
61273 
61274 
operator VkPhysicalDevice16BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61275     operator VkPhysicalDevice16BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT
61276     {
61277       return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>( this );
61278     }
61279 
operator VkPhysicalDevice16BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61280     operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
61281     {
61282       return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>( this );
61283     }
61284 
61285 
61286 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61287     auto operator<=>( PhysicalDevice16BitStorageFeatures const& ) const = default;
61288 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61289     bool operator==( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61290     {
61291       return ( sType == rhs.sType )
61292           && ( pNext == rhs.pNext )
61293           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
61294           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
61295           && ( storagePushConstant16 == rhs.storagePushConstant16 )
61296           && ( storageInputOutput16 == rhs.storageInputOutput16 );
61297     }
61298 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61299     bool operator!=( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61300     {
61301       return !operator==( rhs );
61302     }
61303 #endif
61304 
61305 
61306 
61307   public:
61308     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures;
61309     void* pNext = {};
61310     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
61311     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
61312     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
61313     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
61314 
61315   };
61316   static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), "struct and wrapper have different size!" );
61317   static_assert( std::is_standard_layout<PhysicalDevice16BitStorageFeatures>::value, "struct wrapper is not a standard layout!" );
61318 
61319   template <>
61320   struct CppType<StructureType, StructureType::ePhysicalDevice16BitStorageFeatures>
61321   {
61322     using Type = PhysicalDevice16BitStorageFeatures;
61323   };
61324   using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
61325 
61326   struct PhysicalDevice4444FormatsFeaturesEXT
61327   {
61328     static const bool allowDuplicate = false;
61329     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
61330 
61331 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice4444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61332     VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ = {}, VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ = {}) VULKAN_HPP_NOEXCEPT
61333     : formatA4R4G4B4( formatA4R4G4B4_ ), formatA4B4G4R4( formatA4B4G4R4_ )
61334     {}
61335 
61336     VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61337 
PhysicalDevice4444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61338     PhysicalDevice4444FormatsFeaturesEXT( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61339     {
61340       *this = rhs;
61341     }
61342 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61343 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61344     PhysicalDevice4444FormatsFeaturesEXT & operator=( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61345     {
61346       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT const *>( &rhs );
61347       return *this;
61348     }
61349 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61350     PhysicalDevice4444FormatsFeaturesEXT & operator=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61351     {
61352       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevice4444FormatsFeaturesEXT ) );
61353       return *this;
61354     }
61355 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61356     PhysicalDevice4444FormatsFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61357     {
61358       pNext = pNext_;
61359       return *this;
61360     }
61361 
setFormatA4R4G4B4VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61362     PhysicalDevice4444FormatsFeaturesEXT & setFormatA4R4G4B4( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ ) VULKAN_HPP_NOEXCEPT
61363     {
61364       formatA4R4G4B4 = formatA4R4G4B4_;
61365       return *this;
61366     }
61367 
setFormatA4B4G4R4VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61368     PhysicalDevice4444FormatsFeaturesEXT & setFormatA4B4G4R4( VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ ) VULKAN_HPP_NOEXCEPT
61369     {
61370       formatA4B4G4R4 = formatA4B4G4R4_;
61371       return *this;
61372     }
61373 
61374 
operator VkPhysicalDevice4444FormatsFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61375     operator VkPhysicalDevice4444FormatsFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61376     {
61377       return *reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>( this );
61378     }
61379 
operator VkPhysicalDevice4444FormatsFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61380     operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61381     {
61382       return *reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>( this );
61383     }
61384 
61385 
61386 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61387     auto operator<=>( PhysicalDevice4444FormatsFeaturesEXT const& ) const = default;
61388 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61389     bool operator==( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61390     {
61391       return ( sType == rhs.sType )
61392           && ( pNext == rhs.pNext )
61393           && ( formatA4R4G4B4 == rhs.formatA4R4G4B4 )
61394           && ( formatA4B4G4R4 == rhs.formatA4B4G4R4 );
61395     }
61396 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61397     bool operator!=( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61398     {
61399       return !operator==( rhs );
61400     }
61401 #endif
61402 
61403 
61404 
61405   public:
61406     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
61407     void* pNext = {};
61408     VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4 = {};
61409     VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4 = {};
61410 
61411   };
61412   static_assert( sizeof( PhysicalDevice4444FormatsFeaturesEXT ) == sizeof( VkPhysicalDevice4444FormatsFeaturesEXT ), "struct and wrapper have different size!" );
61413   static_assert( std::is_standard_layout<PhysicalDevice4444FormatsFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61414 
61415   template <>
61416   struct CppType<StructureType, StructureType::ePhysicalDevice4444FormatsFeaturesEXT>
61417   {
61418     using Type = PhysicalDevice4444FormatsFeaturesEXT;
61419   };
61420 
61421   struct PhysicalDevice8BitStorageFeatures
61422   {
61423     static const bool allowDuplicate = false;
61424     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice8BitStorageFeatures;
61425 
61426 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61427     VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}) VULKAN_HPP_NOEXCEPT
61428     : storageBuffer8BitAccess( storageBuffer8BitAccess_ ), uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ), storagePushConstant8( storagePushConstant8_ )
61429     {}
61430 
61431     VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61432 
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61433     PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61434     {
61435       *this = rhs;
61436     }
61437 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61438 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61439     PhysicalDevice8BitStorageFeatures & operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61440     {
61441       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures const *>( &rhs );
61442       return *this;
61443     }
61444 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61445     PhysicalDevice8BitStorageFeatures & operator=( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61446     {
61447       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevice8BitStorageFeatures ) );
61448       return *this;
61449     }
61450 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61451     PhysicalDevice8BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61452     {
61453       pNext = pNext_;
61454       return *this;
61455     }
61456 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61457     PhysicalDevice8BitStorageFeatures & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
61458     {
61459       storageBuffer8BitAccess = storageBuffer8BitAccess_;
61460       return *this;
61461     }
61462 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61463     PhysicalDevice8BitStorageFeatures & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
61464     {
61465       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
61466       return *this;
61467     }
61468 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61469     PhysicalDevice8BitStorageFeatures & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
61470     {
61471       storagePushConstant8 = storagePushConstant8_;
61472       return *this;
61473     }
61474 
61475 
operator VkPhysicalDevice8BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61476     operator VkPhysicalDevice8BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT
61477     {
61478       return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>( this );
61479     }
61480 
operator VkPhysicalDevice8BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61481     operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
61482     {
61483       return *reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>( this );
61484     }
61485 
61486 
61487 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61488     auto operator<=>( PhysicalDevice8BitStorageFeatures const& ) const = default;
61489 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61490     bool operator==( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61491     {
61492       return ( sType == rhs.sType )
61493           && ( pNext == rhs.pNext )
61494           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
61495           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
61496           && ( storagePushConstant8 == rhs.storagePushConstant8 );
61497     }
61498 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61499     bool operator!=( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61500     {
61501       return !operator==( rhs );
61502     }
61503 #endif
61504 
61505 
61506 
61507   public:
61508     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures;
61509     void* pNext = {};
61510     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
61511     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
61512     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
61513 
61514   };
61515   static_assert( sizeof( PhysicalDevice8BitStorageFeatures ) == sizeof( VkPhysicalDevice8BitStorageFeatures ), "struct and wrapper have different size!" );
61516   static_assert( std::is_standard_layout<PhysicalDevice8BitStorageFeatures>::value, "struct wrapper is not a standard layout!" );
61517 
61518   template <>
61519   struct CppType<StructureType, StructureType::ePhysicalDevice8BitStorageFeatures>
61520   {
61521     using Type = PhysicalDevice8BitStorageFeatures;
61522   };
61523   using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
61524 
61525   struct PhysicalDeviceASTCDecodeFeaturesEXT
61526   {
61527     static const bool allowDuplicate = false;
61528     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
61529 
61530 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61531     VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {}) VULKAN_HPP_NOEXCEPT
61532     : decodeModeSharedExponent( decodeModeSharedExponent_ )
61533     {}
61534 
61535     VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61536 
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61537     PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61538     {
61539       *this = rhs;
61540     }
61541 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61542 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61543     PhysicalDeviceASTCDecodeFeaturesEXT & operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61544     {
61545       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT const *>( &rhs );
61546       return *this;
61547     }
61548 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61549     PhysicalDeviceASTCDecodeFeaturesEXT & operator=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61550     {
61551       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) );
61552       return *this;
61553     }
61554 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61555     PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61556     {
61557       pNext = pNext_;
61558       return *this;
61559     }
61560 
setDecodeModeSharedExponentVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61561     PhysicalDeviceASTCDecodeFeaturesEXT & setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT
61562     {
61563       decodeModeSharedExponent = decodeModeSharedExponent_;
61564       return *this;
61565     }
61566 
61567 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61568     operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61569     {
61570       return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
61571     }
61572 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61573     operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61574     {
61575       return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
61576     }
61577 
61578 
61579 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61580     auto operator<=>( PhysicalDeviceASTCDecodeFeaturesEXT const& ) const = default;
61581 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61582     bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61583     {
61584       return ( sType == rhs.sType )
61585           && ( pNext == rhs.pNext )
61586           && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent );
61587     }
61588 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61589     bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61590     {
61591       return !operator==( rhs );
61592     }
61593 #endif
61594 
61595 
61596 
61597   public:
61598     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
61599     void* pNext = {};
61600     VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {};
61601 
61602   };
61603   static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "struct and wrapper have different size!" );
61604   static_assert( std::is_standard_layout<PhysicalDeviceASTCDecodeFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61605 
61606   template <>
61607   struct CppType<StructureType, StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT>
61608   {
61609     using Type = PhysicalDeviceASTCDecodeFeaturesEXT;
61610   };
61611 
61612   struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT
61613   {
61614     static const bool allowDuplicate = false;
61615     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
61616 
61617 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61618     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {}) VULKAN_HPP_NOEXCEPT
61619     : advancedBlendCoherentOperations( advancedBlendCoherentOperations_ )
61620     {}
61621 
61622     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61623 
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61624     PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61625     {
61626       *this = rhs;
61627     }
61628 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61629 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61630     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61631     {
61632       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>( &rhs );
61633       return *this;
61634     }
61635 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61636     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61637     {
61638       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) );
61639       return *this;
61640     }
61641 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61642     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61643     {
61644       pNext = pNext_;
61645       return *this;
61646     }
61647 
setAdvancedBlendCoherentOperationsVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61648     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT
61649     {
61650       advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
61651       return *this;
61652     }
61653 
61654 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61655     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61656     {
61657       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
61658     }
61659 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61660     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61661     {
61662       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
61663     }
61664 
61665 
61666 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61667     auto operator<=>( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& ) const = default;
61668 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61669     bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61670     {
61671       return ( sType == rhs.sType )
61672           && ( pNext == rhs.pNext )
61673           && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations );
61674     }
61675 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61676     bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61677     {
61678       return !operator==( rhs );
61679     }
61680 #endif
61681 
61682 
61683 
61684   public:
61685     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
61686     void* pNext = {};
61687     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {};
61688 
61689   };
61690   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), "struct and wrapper have different size!" );
61691   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61692 
61693   template <>
61694   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT>
61695   {
61696     using Type = PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
61697   };
61698 
61699   struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT
61700   {
61701     static const bool allowDuplicate = false;
61702     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
61703 
61704 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61705     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
61706     : advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ ), advancedBlendIndependentBlend( advancedBlendIndependentBlend_ ), advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ ), advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ ), advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ ), advancedBlendAllOperations( advancedBlendAllOperations_ )
61707     {}
61708 
61709     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61710 
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61711     PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61712     {
61713       *this = rhs;
61714     }
61715 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61716 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61717     PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61718     {
61719       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>( &rhs );
61720       return *this;
61721     }
61722 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61723     PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61724     {
61725       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) );
61726       return *this;
61727     }
61728 
61729 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61730     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
61731     {
61732       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
61733     }
61734 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61735     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT
61736     {
61737       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
61738     }
61739 
61740 
61741 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61742     auto operator<=>( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& ) const = default;
61743 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61744     bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61745     {
61746       return ( sType == rhs.sType )
61747           && ( pNext == rhs.pNext )
61748           && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments )
61749           && ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend )
61750           && ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor )
61751           && ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor )
61752           && ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap )
61753           && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations );
61754     }
61755 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61756     bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61757     {
61758       return !operator==( rhs );
61759     }
61760 #endif
61761 
61762 
61763 
61764   public:
61765     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
61766     void* pNext = {};
61767     uint32_t advancedBlendMaxColorAttachments = {};
61768     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {};
61769     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {};
61770     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {};
61771     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {};
61772     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {};
61773 
61774   };
61775   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "struct and wrapper have different size!" );
61776   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
61777 
61778   template <>
61779   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT>
61780   {
61781     using Type = PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
61782   };
61783 
61784   struct PhysicalDeviceBufferDeviceAddressFeatures
61785   {
61786     static const bool allowDuplicate = false;
61787     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
61788 
61789 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61790     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT
61791     : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
61792     {}
61793 
61794     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61795 
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61796     PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61797     {
61798       *this = rhs;
61799     }
61800 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61801 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61802     PhysicalDeviceBufferDeviceAddressFeatures & operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61803     {
61804       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures const *>( &rhs );
61805       return *this;
61806     }
61807 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61808     PhysicalDeviceBufferDeviceAddressFeatures & operator=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61809     {
61810       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) );
61811       return *this;
61812     }
61813 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61814     PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61815     {
61816       pNext = pNext_;
61817       return *this;
61818     }
61819 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61820     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
61821     {
61822       bufferDeviceAddress = bufferDeviceAddress_;
61823       return *this;
61824     }
61825 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61826     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
61827     {
61828       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
61829       return *this;
61830     }
61831 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61832     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
61833     {
61834       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
61835       return *this;
61836     }
61837 
61838 
operator VkPhysicalDeviceBufferDeviceAddressFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61839     operator VkPhysicalDeviceBufferDeviceAddressFeatures const&() const VULKAN_HPP_NOEXCEPT
61840     {
61841       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
61842     }
61843 
operator VkPhysicalDeviceBufferDeviceAddressFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61844     operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT
61845     {
61846       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
61847     }
61848 
61849 
61850 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61851     auto operator<=>( PhysicalDeviceBufferDeviceAddressFeatures const& ) const = default;
61852 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61853     bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61854     {
61855       return ( sType == rhs.sType )
61856           && ( pNext == rhs.pNext )
61857           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
61858           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
61859           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
61860     }
61861 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61862     bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61863     {
61864       return !operator==( rhs );
61865     }
61866 #endif
61867 
61868 
61869 
61870   public:
61871     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
61872     void* pNext = {};
61873     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
61874     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
61875     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
61876 
61877   };
61878   static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeatures ), "struct and wrapper have different size!" );
61879   static_assert( std::is_standard_layout<PhysicalDeviceBufferDeviceAddressFeatures>::value, "struct wrapper is not a standard layout!" );
61880 
61881   template <>
61882   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeatures>
61883   {
61884     using Type = PhysicalDeviceBufferDeviceAddressFeatures;
61885   };
61886   using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
61887 
61888   struct PhysicalDeviceBufferDeviceAddressFeaturesEXT
61889   {
61890     static const bool allowDuplicate = false;
61891     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
61892 
61893 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61894     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT
61895     : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
61896     {}
61897 
61898     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61899 
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61900     PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61901     {
61902       *this = rhs;
61903     }
61904 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61905 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61906     PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61907     {
61908       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>( &rhs );
61909       return *this;
61910     }
61911 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61912     PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61913     {
61914       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) );
61915       return *this;
61916     }
61917 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61918     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61919     {
61920       pNext = pNext_;
61921       return *this;
61922     }
61923 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61924     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
61925     {
61926       bufferDeviceAddress = bufferDeviceAddress_;
61927       return *this;
61928     }
61929 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61930     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
61931     {
61932       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
61933       return *this;
61934     }
61935 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61936     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
61937     {
61938       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
61939       return *this;
61940     }
61941 
61942 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61943     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61944     {
61945       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
61946     }
61947 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61948     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61949     {
61950       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
61951     }
61952 
61953 
61954 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61955     auto operator<=>( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& ) const = default;
61956 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61957     bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61958     {
61959       return ( sType == rhs.sType )
61960           && ( pNext == rhs.pNext )
61961           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
61962           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
61963           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
61964     }
61965 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61966     bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61967     {
61968       return !operator==( rhs );
61969     }
61970 #endif
61971 
61972 
61973 
61974   public:
61975     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
61976     void* pNext = {};
61977     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
61978     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
61979     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
61980 
61981   };
61982   static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), "struct and wrapper have different size!" );
61983   static_assert( std::is_standard_layout<PhysicalDeviceBufferDeviceAddressFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61984 
61985   template <>
61986   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT>
61987   {
61988     using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
61989   };
61990   using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
61991 
61992   struct PhysicalDeviceCoherentMemoryFeaturesAMD
61993   {
61994     static const bool allowDuplicate = false;
61995     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
61996 
61997 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD61998     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD(VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {}) VULKAN_HPP_NOEXCEPT
61999     : deviceCoherentMemory( deviceCoherentMemory_ )
62000     {}
62001 
62002     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62003 
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62004     PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
62005     {
62006       *this = rhs;
62007     }
62008 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62009 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62010     PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
62011     {
62012       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD const *>( &rhs );
62013       return *this;
62014     }
62015 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62016     PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
62017     {
62018       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) );
62019       return *this;
62020     }
62021 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62022     PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62023     {
62024       pNext = pNext_;
62025       return *this;
62026     }
62027 
setDeviceCoherentMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62028     PhysicalDeviceCoherentMemoryFeaturesAMD & setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT
62029     {
62030       deviceCoherentMemory = deviceCoherentMemory_;
62031       return *this;
62032     }
62033 
62034 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62035     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&() const VULKAN_HPP_NOEXCEPT
62036     {
62037       return *reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
62038     }
62039 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62040     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT
62041     {
62042       return *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
62043     }
62044 
62045 
62046 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62047     auto operator<=>( PhysicalDeviceCoherentMemoryFeaturesAMD const& ) const = default;
62048 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62049     bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
62050     {
62051       return ( sType == rhs.sType )
62052           && ( pNext == rhs.pNext )
62053           && ( deviceCoherentMemory == rhs.deviceCoherentMemory );
62054     }
62055 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62056     bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
62057     {
62058       return !operator==( rhs );
62059     }
62060 #endif
62061 
62062 
62063 
62064   public:
62065     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
62066     void* pNext = {};
62067     VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {};
62068 
62069   };
62070   static_assert( sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) == sizeof( VkPhysicalDeviceCoherentMemoryFeaturesAMD ), "struct and wrapper have different size!" );
62071   static_assert( std::is_standard_layout<PhysicalDeviceCoherentMemoryFeaturesAMD>::value, "struct wrapper is not a standard layout!" );
62072 
62073   template <>
62074   struct CppType<StructureType, StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD>
62075   {
62076     using Type = PhysicalDeviceCoherentMemoryFeaturesAMD;
62077   };
62078 
62079   struct PhysicalDeviceComputeShaderDerivativesFeaturesNV
62080   {
62081     static const bool allowDuplicate = false;
62082     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
62083 
62084 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62085     VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {}) VULKAN_HPP_NOEXCEPT
62086     : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ ), computeDerivativeGroupLinear( computeDerivativeGroupLinear_ )
62087     {}
62088 
62089     VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62090 
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62091     PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62092     {
62093       *this = rhs;
62094     }
62095 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62096 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62097     PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62098     {
62099       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>( &rhs );
62100       return *this;
62101     }
62102 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62103     PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62104     {
62105       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) );
62106       return *this;
62107     }
62108 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62109     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62110     {
62111       pNext = pNext_;
62112       return *this;
62113     }
62114 
setComputeDerivativeGroupQuadsVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62115     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT
62116     {
62117       computeDerivativeGroupQuads = computeDerivativeGroupQuads_;
62118       return *this;
62119     }
62120 
setComputeDerivativeGroupLinearVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62121     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT
62122     {
62123       computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
62124       return *this;
62125     }
62126 
62127 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62128     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62129     {
62130       return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
62131     }
62132 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62133     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT
62134     {
62135       return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
62136     }
62137 
62138 
62139 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62140     auto operator<=>( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& ) const = default;
62141 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62142     bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62143     {
62144       return ( sType == rhs.sType )
62145           && ( pNext == rhs.pNext )
62146           && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads )
62147           && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear );
62148     }
62149 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62150     bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62151     {
62152       return !operator==( rhs );
62153     }
62154 #endif
62155 
62156 
62157 
62158   public:
62159     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
62160     void* pNext = {};
62161     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {};
62162     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {};
62163 
62164   };
62165   static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "struct and wrapper have different size!" );
62166   static_assert( std::is_standard_layout<PhysicalDeviceComputeShaderDerivativesFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62167 
62168   template <>
62169   struct CppType<StructureType, StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV>
62170   {
62171     using Type = PhysicalDeviceComputeShaderDerivativesFeaturesNV;
62172   };
62173 
62174   struct PhysicalDeviceConditionalRenderingFeaturesEXT
62175   {
62176     static const bool allowDuplicate = false;
62177     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
62178 
62179 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62180     VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {}) VULKAN_HPP_NOEXCEPT
62181     : conditionalRendering( conditionalRendering_ ), inheritedConditionalRendering( inheritedConditionalRendering_ )
62182     {}
62183 
62184     VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62185 
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62186     PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62187     {
62188       *this = rhs;
62189     }
62190 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62191 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62192     PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62193     {
62194       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT const *>( &rhs );
62195       return *this;
62196     }
62197 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62198     PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62199     {
62200       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) );
62201       return *this;
62202     }
62203 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62204     PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62205     {
62206       pNext = pNext_;
62207       return *this;
62208     }
62209 
setConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62210     PhysicalDeviceConditionalRenderingFeaturesEXT & setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT
62211     {
62212       conditionalRendering = conditionalRendering_;
62213       return *this;
62214     }
62215 
setInheritedConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62216     PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT
62217     {
62218       inheritedConditionalRendering = inheritedConditionalRendering_;
62219       return *this;
62220     }
62221 
62222 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62223     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
62224     {
62225       return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
62226     }
62227 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62228     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62229     {
62230       return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
62231     }
62232 
62233 
62234 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62235     auto operator<=>( PhysicalDeviceConditionalRenderingFeaturesEXT const& ) const = default;
62236 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62237     bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62238     {
62239       return ( sType == rhs.sType )
62240           && ( pNext == rhs.pNext )
62241           && ( conditionalRendering == rhs.conditionalRendering )
62242           && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering );
62243     }
62244 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62245     bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62246     {
62247       return !operator==( rhs );
62248     }
62249 #endif
62250 
62251 
62252 
62253   public:
62254     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
62255     void* pNext = {};
62256     VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {};
62257     VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {};
62258 
62259   };
62260   static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "struct and wrapper have different size!" );
62261   static_assert( std::is_standard_layout<PhysicalDeviceConditionalRenderingFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
62262 
62263   template <>
62264   struct CppType<StructureType, StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT>
62265   {
62266     using Type = PhysicalDeviceConditionalRenderingFeaturesEXT;
62267   };
62268 
62269   struct PhysicalDeviceConservativeRasterizationPropertiesEXT
62270   {
62271     static const bool allowDuplicate = false;
62272     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
62273 
62274 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62275     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
62276     : primitiveOverestimationSize( primitiveOverestimationSize_ ), maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ ), extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ ), primitiveUnderestimation( primitiveUnderestimation_ ), conservativePointAndLineRasterization( conservativePointAndLineRasterization_ ), degenerateTrianglesRasterized( degenerateTrianglesRasterized_ ), degenerateLinesRasterized( degenerateLinesRasterized_ ), fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ ), conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ )
62277     {}
62278 
62279     VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62280 
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62281     PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62282     {
62283       *this = rhs;
62284     }
62285 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62286 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62287     PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62288     {
62289       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT const *>( &rhs );
62290       return *this;
62291     }
62292 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62293     PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62294     {
62295       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) );
62296       return *this;
62297     }
62298 
62299 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62300     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
62301     {
62302       return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
62303     }
62304 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62305     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
62306     {
62307       return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
62308     }
62309 
62310 
62311 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62312     auto operator<=>( PhysicalDeviceConservativeRasterizationPropertiesEXT const& ) const = default;
62313 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62314     bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62315     {
62316       return ( sType == rhs.sType )
62317           && ( pNext == rhs.pNext )
62318           && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize )
62319           && ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize )
62320           && ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity )
62321           && ( primitiveUnderestimation == rhs.primitiveUnderestimation )
62322           && ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization )
62323           && ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized )
62324           && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized )
62325           && ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable )
62326           && ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage );
62327     }
62328 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62329     bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62330     {
62331       return !operator==( rhs );
62332     }
62333 #endif
62334 
62335 
62336 
62337   public:
62338     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
62339     void* pNext = {};
62340     float primitiveOverestimationSize = {};
62341     float maxExtraPrimitiveOverestimationSize = {};
62342     float extraPrimitiveOverestimationSizeGranularity = {};
62343     VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {};
62344     VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {};
62345     VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {};
62346     VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {};
62347     VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {};
62348     VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {};
62349 
62350   };
62351   static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
62352   static_assert( std::is_standard_layout<PhysicalDeviceConservativeRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
62353 
62354   template <>
62355   struct CppType<StructureType, StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT>
62356   {
62357     using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT;
62358   };
62359 
62360   struct PhysicalDeviceCooperativeMatrixFeaturesNV
62361   {
62362     static const bool allowDuplicate = false;
62363     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
62364 
62365 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62366     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {}, VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {}) VULKAN_HPP_NOEXCEPT
62367     : cooperativeMatrix( cooperativeMatrix_ ), cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
62368     {}
62369 
62370     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62371 
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62372     PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62373     {
62374       *this = rhs;
62375     }
62376 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62377 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62378     PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62379     {
62380       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV const *>( &rhs );
62381       return *this;
62382     }
62383 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62384     PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62385     {
62386       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) );
62387       return *this;
62388     }
62389 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62390     PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62391     {
62392       pNext = pNext_;
62393       return *this;
62394     }
62395 
setCooperativeMatrixVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62396     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
62397     {
62398       cooperativeMatrix = cooperativeMatrix_;
62399       return *this;
62400     }
62401 
setCooperativeMatrixRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62402     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
62403     {
62404       cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
62405       return *this;
62406     }
62407 
62408 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62409     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62410     {
62411       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
62412     }
62413 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62414     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT
62415     {
62416       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
62417     }
62418 
62419 
62420 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62421     auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesNV const& ) const = default;
62422 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62423     bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62424     {
62425       return ( sType == rhs.sType )
62426           && ( pNext == rhs.pNext )
62427           && ( cooperativeMatrix == rhs.cooperativeMatrix )
62428           && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
62429     }
62430 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62431     bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62432     {
62433       return !operator==( rhs );
62434     }
62435 #endif
62436 
62437 
62438 
62439   public:
62440     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
62441     void* pNext = {};
62442     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {};
62443     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {};
62444 
62445   };
62446   static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), "struct and wrapper have different size!" );
62447   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62448 
62449   template <>
62450   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV>
62451   {
62452     using Type = PhysicalDeviceCooperativeMatrixFeaturesNV;
62453   };
62454 
62455   struct PhysicalDeviceCooperativeMatrixPropertiesNV
62456   {
62457     static const bool allowDuplicate = false;
62458     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
62459 
62460 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62461     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV(VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {}) VULKAN_HPP_NOEXCEPT
62462     : cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
62463     {}
62464 
62465     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62466 
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62467     PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62468     {
62469       *this = rhs;
62470     }
62471 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62472 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62473     PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62474     {
62475       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const *>( &rhs );
62476       return *this;
62477     }
62478 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62479     PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62480     {
62481       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) );
62482       return *this;
62483     }
62484 
62485 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62486     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
62487     {
62488       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
62489     }
62490 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62491     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
62492     {
62493       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
62494     }
62495 
62496 
62497 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62498     auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesNV const& ) const = default;
62499 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62500     bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62501     {
62502       return ( sType == rhs.sType )
62503           && ( pNext == rhs.pNext )
62504           && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
62505     }
62506 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62507     bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62508     {
62509       return !operator==( rhs );
62510     }
62511 #endif
62512 
62513 
62514 
62515   public:
62516     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
62517     void* pNext = {};
62518     VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {};
62519 
62520   };
62521   static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
62522   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
62523 
62524   template <>
62525   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV>
62526   {
62527     using Type = PhysicalDeviceCooperativeMatrixPropertiesNV;
62528   };
62529 
62530   struct PhysicalDeviceCornerSampledImageFeaturesNV
62531   {
62532     static const bool allowDuplicate = false;
62533     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
62534 
62535 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62536     VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {}) VULKAN_HPP_NOEXCEPT
62537     : cornerSampledImage( cornerSampledImage_ )
62538     {}
62539 
62540     VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62541 
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62542     PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62543     {
62544       *this = rhs;
62545     }
62546 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62547 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62548     PhysicalDeviceCornerSampledImageFeaturesNV & operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62549     {
62550       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV const *>( &rhs );
62551       return *this;
62552     }
62553 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62554     PhysicalDeviceCornerSampledImageFeaturesNV & operator=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62555     {
62556       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) );
62557       return *this;
62558     }
62559 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62560     PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62561     {
62562       pNext = pNext_;
62563       return *this;
62564     }
62565 
setCornerSampledImageVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62566     PhysicalDeviceCornerSampledImageFeaturesNV & setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT
62567     {
62568       cornerSampledImage = cornerSampledImage_;
62569       return *this;
62570     }
62571 
62572 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62573     operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62574     {
62575       return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
62576     }
62577 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62578     operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
62579     {
62580       return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
62581     }
62582 
62583 
62584 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62585     auto operator<=>( PhysicalDeviceCornerSampledImageFeaturesNV const& ) const = default;
62586 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62587     bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62588     {
62589       return ( sType == rhs.sType )
62590           && ( pNext == rhs.pNext )
62591           && ( cornerSampledImage == rhs.cornerSampledImage );
62592     }
62593 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62594     bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62595     {
62596       return !operator==( rhs );
62597     }
62598 #endif
62599 
62600 
62601 
62602   public:
62603     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
62604     void* pNext = {};
62605     VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {};
62606 
62607   };
62608   static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "struct and wrapper have different size!" );
62609   static_assert( std::is_standard_layout<PhysicalDeviceCornerSampledImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62610 
62611   template <>
62612   struct CppType<StructureType, StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV>
62613   {
62614     using Type = PhysicalDeviceCornerSampledImageFeaturesNV;
62615   };
62616 
62617   struct PhysicalDeviceCoverageReductionModeFeaturesNV
62618   {
62619     static const bool allowDuplicate = false;
62620     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
62621 
62622 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62623     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {}) VULKAN_HPP_NOEXCEPT
62624     : coverageReductionMode( coverageReductionMode_ )
62625     {}
62626 
62627     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62628 
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62629     PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62630     {
62631       *this = rhs;
62632     }
62633 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62634 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62635     PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62636     {
62637       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV const *>( &rhs );
62638       return *this;
62639     }
62640 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62641     PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62642     {
62643       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) );
62644       return *this;
62645     }
62646 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62647     PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62648     {
62649       pNext = pNext_;
62650       return *this;
62651     }
62652 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62653     PhysicalDeviceCoverageReductionModeFeaturesNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
62654     {
62655       coverageReductionMode = coverageReductionMode_;
62656       return *this;
62657     }
62658 
62659 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62660     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62661     {
62662       return *reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
62663     }
62664 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62665     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT
62666     {
62667       return *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
62668     }
62669 
62670 
62671 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62672     auto operator<=>( PhysicalDeviceCoverageReductionModeFeaturesNV const& ) const = default;
62673 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62674     bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62675     {
62676       return ( sType == rhs.sType )
62677           && ( pNext == rhs.pNext )
62678           && ( coverageReductionMode == rhs.coverageReductionMode );
62679     }
62680 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62681     bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62682     {
62683       return !operator==( rhs );
62684     }
62685 #endif
62686 
62687 
62688 
62689   public:
62690     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
62691     void* pNext = {};
62692     VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {};
62693 
62694   };
62695   static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), "struct and wrapper have different size!" );
62696   static_assert( std::is_standard_layout<PhysicalDeviceCoverageReductionModeFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62697 
62698   template <>
62699   struct CppType<StructureType, StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV>
62700   {
62701     using Type = PhysicalDeviceCoverageReductionModeFeaturesNV;
62702   };
62703 
62704   struct PhysicalDeviceCustomBorderColorFeaturesEXT
62705   {
62706     static const bool allowDuplicate = false;
62707     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
62708 
62709 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62710     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {}) VULKAN_HPP_NOEXCEPT
62711     : customBorderColors( customBorderColors_ ), customBorderColorWithoutFormat( customBorderColorWithoutFormat_ )
62712     {}
62713 
62714     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62715 
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62716     PhysicalDeviceCustomBorderColorFeaturesEXT( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62717     {
62718       *this = rhs;
62719     }
62720 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62721 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62722     PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62723     {
62724       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT const *>( &rhs );
62725       return *this;
62726     }
62727 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62728     PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62729     {
62730       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) );
62731       return *this;
62732     }
62733 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62734     PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62735     {
62736       pNext = pNext_;
62737       return *this;
62738     }
62739 
setCustomBorderColorsVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62740     PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT
62741     {
62742       customBorderColors = customBorderColors_;
62743       return *this;
62744     }
62745 
setCustomBorderColorWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62746     PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
62747     {
62748       customBorderColorWithoutFormat = customBorderColorWithoutFormat_;
62749       return *this;
62750     }
62751 
62752 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62753     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
62754     {
62755       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
62756     }
62757 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62758     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62759     {
62760       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
62761     }
62762 
62763 
62764 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62765     auto operator<=>( PhysicalDeviceCustomBorderColorFeaturesEXT const& ) const = default;
62766 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62767     bool operator==( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62768     {
62769       return ( sType == rhs.sType )
62770           && ( pNext == rhs.pNext )
62771           && ( customBorderColors == rhs.customBorderColors )
62772           && ( customBorderColorWithoutFormat == rhs.customBorderColorWithoutFormat );
62773     }
62774 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62775     bool operator!=( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62776     {
62777       return !operator==( rhs );
62778     }
62779 #endif
62780 
62781 
62782 
62783   public:
62784     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
62785     void* pNext = {};
62786     VULKAN_HPP_NAMESPACE::Bool32 customBorderColors = {};
62787     VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat = {};
62788 
62789   };
62790   static_assert( sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorFeaturesEXT ), "struct and wrapper have different size!" );
62791   static_assert( std::is_standard_layout<PhysicalDeviceCustomBorderColorFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
62792 
62793   template <>
62794   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT>
62795   {
62796     using Type = PhysicalDeviceCustomBorderColorFeaturesEXT;
62797   };
62798 
62799   struct PhysicalDeviceCustomBorderColorPropertiesEXT
62800   {
62801     static const bool allowDuplicate = false;
62802     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
62803 
62804 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62805     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT(uint32_t maxCustomBorderColorSamplers_ = {}) VULKAN_HPP_NOEXCEPT
62806     : maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ )
62807     {}
62808 
62809     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62810 
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62811     PhysicalDeviceCustomBorderColorPropertiesEXT( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62812     {
62813       *this = rhs;
62814     }
62815 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62816 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62817     PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62818     {
62819       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT const *>( &rhs );
62820       return *this;
62821     }
62822 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62823     PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62824     {
62825       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) );
62826       return *this;
62827     }
62828 
62829 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62830     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
62831     {
62832       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
62833     }
62834 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62835     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
62836     {
62837       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
62838     }
62839 
62840 
62841 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62842     auto operator<=>( PhysicalDeviceCustomBorderColorPropertiesEXT const& ) const = default;
62843 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62844     bool operator==( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62845     {
62846       return ( sType == rhs.sType )
62847           && ( pNext == rhs.pNext )
62848           && ( maxCustomBorderColorSamplers == rhs.maxCustomBorderColorSamplers );
62849     }
62850 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62851     bool operator!=( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62852     {
62853       return !operator==( rhs );
62854     }
62855 #endif
62856 
62857 
62858 
62859   public:
62860     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
62861     void* pNext = {};
62862     uint32_t maxCustomBorderColorSamplers = {};
62863 
62864   };
62865   static_assert( sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorPropertiesEXT ), "struct and wrapper have different size!" );
62866   static_assert( std::is_standard_layout<PhysicalDeviceCustomBorderColorPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
62867 
62868   template <>
62869   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT>
62870   {
62871     using Type = PhysicalDeviceCustomBorderColorPropertiesEXT;
62872   };
62873 
62874   struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
62875   {
62876     static const bool allowDuplicate = false;
62877     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
62878 
62879 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62880     VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {}) VULKAN_HPP_NOEXCEPT
62881     : dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ )
62882     {}
62883 
62884     VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62885 
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62886     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62887     {
62888       *this = rhs;
62889     }
62890 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62891 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62892     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62893     {
62894       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>( &rhs );
62895       return *this;
62896     }
62897 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62898     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62899     {
62900       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) );
62901       return *this;
62902     }
62903 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62904     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62905     {
62906       pNext = pNext_;
62907       return *this;
62908     }
62909 
setDedicatedAllocationImageAliasingVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62910     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT
62911     {
62912       dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
62913       return *this;
62914     }
62915 
62916 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62917     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62918     {
62919       return *reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
62920     }
62921 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62922     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT
62923     {
62924       return *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
62925     }
62926 
62927 
62928 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62929     auto operator<=>( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& ) const = default;
62930 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62931     bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62932     {
62933       return ( sType == rhs.sType )
62934           && ( pNext == rhs.pNext )
62935           && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing );
62936     }
62937 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62938     bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62939     {
62940       return !operator==( rhs );
62941     }
62942 #endif
62943 
62944 
62945 
62946   public:
62947     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
62948     void* pNext = {};
62949     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {};
62950 
62951   };
62952   static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), "struct and wrapper have different size!" );
62953   static_assert( std::is_standard_layout<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62954 
62955   template <>
62956   struct CppType<StructureType, StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>
62957   {
62958     using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
62959   };
62960 
62961   struct PhysicalDeviceDepthClipEnableFeaturesEXT
62962   {
62963     static const bool allowDuplicate = false;
62964     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
62965 
62966 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62967     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT
62968     : depthClipEnable( depthClipEnable_ )
62969     {}
62970 
62971     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62972 
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62973     PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62974     {
62975       *this = rhs;
62976     }
62977 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62978 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62979     PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62980     {
62981       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT const *>( &rhs );
62982       return *this;
62983     }
62984 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62985     PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62986     {
62987       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) );
62988       return *this;
62989     }
62990 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62991     PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62992     {
62993       pNext = pNext_;
62994       return *this;
62995     }
62996 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62997     PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
62998     {
62999       depthClipEnable = depthClipEnable_;
63000       return *this;
63001     }
63002 
63003 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63004     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
63005     {
63006       return *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
63007     }
63008 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63009     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63010     {
63011       return *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
63012     }
63013 
63014 
63015 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63016     auto operator<=>( PhysicalDeviceDepthClipEnableFeaturesEXT const& ) const = default;
63017 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63018     bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63019     {
63020       return ( sType == rhs.sType )
63021           && ( pNext == rhs.pNext )
63022           && ( depthClipEnable == rhs.depthClipEnable );
63023     }
63024 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63025     bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63026     {
63027       return !operator==( rhs );
63028     }
63029 #endif
63030 
63031 
63032 
63033   public:
63034     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
63035     void* pNext = {};
63036     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
63037 
63038   };
63039   static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), "struct and wrapper have different size!" );
63040   static_assert( std::is_standard_layout<PhysicalDeviceDepthClipEnableFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
63041 
63042   template <>
63043   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT>
63044   {
63045     using Type = PhysicalDeviceDepthClipEnableFeaturesEXT;
63046   };
63047 
63048   struct PhysicalDeviceDepthStencilResolveProperties
63049   {
63050     static const bool allowDuplicate = false;
63051     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
63052 
63053 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63054     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
63055     : supportedDepthResolveModes( supportedDepthResolveModes_ ), supportedStencilResolveModes( supportedStencilResolveModes_ ), independentResolveNone( independentResolveNone_ ), independentResolve( independentResolve_ )
63056     {}
63057 
63058     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63059 
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63060     PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63061     {
63062       *this = rhs;
63063     }
63064 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63065 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63066     PhysicalDeviceDepthStencilResolveProperties & operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63067     {
63068       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties const *>( &rhs );
63069       return *this;
63070     }
63071 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63072     PhysicalDeviceDepthStencilResolveProperties & operator=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63073     {
63074       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDepthStencilResolveProperties ) );
63075       return *this;
63076     }
63077 
63078 
operator VkPhysicalDeviceDepthStencilResolveProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63079     operator VkPhysicalDeviceDepthStencilResolveProperties const&() const VULKAN_HPP_NOEXCEPT
63080     {
63081       return *reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>( this );
63082     }
63083 
operator VkPhysicalDeviceDepthStencilResolveProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63084     operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT
63085     {
63086       return *reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>( this );
63087     }
63088 
63089 
63090 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63091     auto operator<=>( PhysicalDeviceDepthStencilResolveProperties const& ) const = default;
63092 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63093     bool operator==( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63094     {
63095       return ( sType == rhs.sType )
63096           && ( pNext == rhs.pNext )
63097           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
63098           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
63099           && ( independentResolveNone == rhs.independentResolveNone )
63100           && ( independentResolve == rhs.independentResolve );
63101     }
63102 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63103     bool operator!=( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63104     {
63105       return !operator==( rhs );
63106     }
63107 #endif
63108 
63109 
63110 
63111   public:
63112     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
63113     void* pNext = {};
63114     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
63115     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
63116     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
63117     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
63118 
63119   };
63120   static_assert( sizeof( PhysicalDeviceDepthStencilResolveProperties ) == sizeof( VkPhysicalDeviceDepthStencilResolveProperties ), "struct and wrapper have different size!" );
63121   static_assert( std::is_standard_layout<PhysicalDeviceDepthStencilResolveProperties>::value, "struct wrapper is not a standard layout!" );
63122 
63123   template <>
63124   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthStencilResolveProperties>
63125   {
63126     using Type = PhysicalDeviceDepthStencilResolveProperties;
63127   };
63128   using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
63129 
63130   struct PhysicalDeviceDescriptorIndexingFeatures
63131   {
63132     static const bool allowDuplicate = false;
63133     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
63134 
63135 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63136     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
63137     : 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_ )
63138     {}
63139 
63140     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63141 
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63142     PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
63143     {
63144       *this = rhs;
63145     }
63146 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63147 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63148     PhysicalDeviceDescriptorIndexingFeatures & operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
63149     {
63150       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const *>( &rhs );
63151       return *this;
63152     }
63153 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63154     PhysicalDeviceDescriptorIndexingFeatures & operator=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
63155     {
63156       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDescriptorIndexingFeatures ) );
63157       return *this;
63158     }
63159 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63160     PhysicalDeviceDescriptorIndexingFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63161     {
63162       pNext = pNext_;
63163       return *this;
63164     }
63165 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63166     PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
63167     {
63168       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
63169       return *this;
63170     }
63171 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63172     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
63173     {
63174       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
63175       return *this;
63176     }
63177 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63178     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
63179     {
63180       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
63181       return *this;
63182     }
63183 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63184     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63185     {
63186       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
63187       return *this;
63188     }
63189 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63190     PhysicalDeviceDescriptorIndexingFeatures & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63191     {
63192       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
63193       return *this;
63194     }
63195 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63196     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63197     {
63198       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
63199       return *this;
63200     }
63201 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63202     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63203     {
63204       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
63205       return *this;
63206     }
63207 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63208     PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63209     {
63210       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
63211       return *this;
63212     }
63213 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63214     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63215     {
63216       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
63217       return *this;
63218     }
63219 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63220     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63221     {
63222       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
63223       return *this;
63224     }
63225 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63226     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63227     {
63228       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
63229       return *this;
63230     }
63231 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63232     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63233     {
63234       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
63235       return *this;
63236     }
63237 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63238     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63239     {
63240       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
63241       return *this;
63242     }
63243 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63244     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63245     {
63246       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
63247       return *this;
63248     }
63249 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63250     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63251     {
63252       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
63253       return *this;
63254     }
63255 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63256     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63257     {
63258       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
63259       return *this;
63260     }
63261 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63262     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
63263     {
63264       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
63265       return *this;
63266     }
63267 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63268     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
63269     {
63270       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
63271       return *this;
63272     }
63273 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63274     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
63275     {
63276       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
63277       return *this;
63278     }
63279 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63280     PhysicalDeviceDescriptorIndexingFeatures & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
63281     {
63282       runtimeDescriptorArray = runtimeDescriptorArray_;
63283       return *this;
63284     }
63285 
63286 
operator VkPhysicalDeviceDescriptorIndexingFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63287     operator VkPhysicalDeviceDescriptorIndexingFeatures const&() const VULKAN_HPP_NOEXCEPT
63288     {
63289       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
63290     }
63291 
operator VkPhysicalDeviceDescriptorIndexingFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63292     operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT
63293     {
63294       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
63295     }
63296 
63297 
63298 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63299     auto operator<=>( PhysicalDeviceDescriptorIndexingFeatures const& ) const = default;
63300 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63301     bool operator==( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
63302     {
63303       return ( sType == rhs.sType )
63304           && ( pNext == rhs.pNext )
63305           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
63306           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
63307           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
63308           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
63309           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
63310           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
63311           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
63312           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
63313           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
63314           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
63315           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
63316           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
63317           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
63318           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
63319           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
63320           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
63321           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
63322           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
63323           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
63324           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray );
63325     }
63326 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63327     bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
63328     {
63329       return !operator==( rhs );
63330     }
63331 #endif
63332 
63333 
63334 
63335   public:
63336     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
63337     void* pNext = {};
63338     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
63339     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
63340     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
63341     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
63342     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
63343     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
63344     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
63345     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
63346     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
63347     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
63348     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
63349     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
63350     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
63351     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
63352     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
63353     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
63354     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
63355     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
63356     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
63357     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
63358 
63359   };
63360   static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeatures ) == sizeof( VkPhysicalDeviceDescriptorIndexingFeatures ), "struct and wrapper have different size!" );
63361   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingFeatures>::value, "struct wrapper is not a standard layout!" );
63362 
63363   template <>
63364   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingFeatures>
63365   {
63366     using Type = PhysicalDeviceDescriptorIndexingFeatures;
63367   };
63368   using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
63369 
63370   struct PhysicalDeviceDescriptorIndexingProperties
63371   {
63372     static const bool allowDuplicate = false;
63373     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
63374 
63375 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63376     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
63377     : 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_ )
63378     {}
63379 
63380     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63381 
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63382     PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63383     {
63384       *this = rhs;
63385     }
63386 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63387 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63388     PhysicalDeviceDescriptorIndexingProperties & operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63389     {
63390       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties const *>( &rhs );
63391       return *this;
63392     }
63393 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63394     PhysicalDeviceDescriptorIndexingProperties & operator=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63395     {
63396       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDescriptorIndexingProperties ) );
63397       return *this;
63398     }
63399 
63400 
operator VkPhysicalDeviceDescriptorIndexingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63401     operator VkPhysicalDeviceDescriptorIndexingProperties const&() const VULKAN_HPP_NOEXCEPT
63402     {
63403       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>( this );
63404     }
63405 
operator VkPhysicalDeviceDescriptorIndexingProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63406     operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT
63407     {
63408       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>( this );
63409     }
63410 
63411 
63412 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63413     auto operator<=>( PhysicalDeviceDescriptorIndexingProperties const& ) const = default;
63414 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63415     bool operator==( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63416     {
63417       return ( sType == rhs.sType )
63418           && ( pNext == rhs.pNext )
63419           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
63420           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
63421           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
63422           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
63423           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
63424           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
63425           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
63426           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
63427           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
63428           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
63429           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
63430           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
63431           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
63432           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
63433           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
63434           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
63435           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
63436           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
63437           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
63438           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
63439           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
63440           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
63441           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments );
63442     }
63443 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63444     bool operator!=( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63445     {
63446       return !operator==( rhs );
63447     }
63448 #endif
63449 
63450 
63451 
63452   public:
63453     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
63454     void* pNext = {};
63455     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
63456     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
63457     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
63458     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
63459     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
63460     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
63461     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
63462     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
63463     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
63464     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
63465     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
63466     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
63467     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
63468     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
63469     uint32_t maxPerStageUpdateAfterBindResources = {};
63470     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
63471     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
63472     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
63473     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
63474     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
63475     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
63476     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
63477     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
63478 
63479   };
63480   static_assert( sizeof( PhysicalDeviceDescriptorIndexingProperties ) == sizeof( VkPhysicalDeviceDescriptorIndexingProperties ), "struct and wrapper have different size!" );
63481   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingProperties>::value, "struct wrapper is not a standard layout!" );
63482 
63483   template <>
63484   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingProperties>
63485   {
63486     using Type = PhysicalDeviceDescriptorIndexingProperties;
63487   };
63488   using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
63489 
63490   struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
63491   {
63492     static const bool allowDuplicate = false;
63493     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
63494 
63495 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63496     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {}) VULKAN_HPP_NOEXCEPT
63497     : deviceGeneratedCommands( deviceGeneratedCommands_ )
63498     {}
63499 
63500     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63501 
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63502     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63503     {
63504       *this = rhs;
63505     }
63506 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63507 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63508     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63509     {
63510       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>( &rhs );
63511       return *this;
63512     }
63513 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63514     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63515     {
63516       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) );
63517       return *this;
63518     }
63519 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63520     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63521     {
63522       pNext = pNext_;
63523       return *this;
63524     }
63525 
setDeviceGeneratedCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63526     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT
63527     {
63528       deviceGeneratedCommands = deviceGeneratedCommands_;
63529       return *this;
63530     }
63531 
63532 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63533     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63534     {
63535       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
63536     }
63537 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63538     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT
63539     {
63540       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
63541     }
63542 
63543 
63544 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63545     auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& ) const = default;
63546 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63547     bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63548     {
63549       return ( sType == rhs.sType )
63550           && ( pNext == rhs.pNext )
63551           && ( deviceGeneratedCommands == rhs.deviceGeneratedCommands );
63552     }
63553 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63554     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63555     {
63556       return !operator==( rhs );
63557     }
63558 #endif
63559 
63560 
63561 
63562   public:
63563     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
63564     void* pNext = {};
63565     VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands = {};
63566 
63567   };
63568   static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV ), "struct and wrapper have different size!" );
63569   static_assert( std::is_standard_layout<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
63570 
63571   template <>
63572   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
63573   {
63574     using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
63575   };
63576 
63577   struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
63578   {
63579     static const bool allowDuplicate = false;
63580     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
63581 
63582 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63583     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
63584     : maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ ), maxIndirectSequenceCount( maxIndirectSequenceCount_ ), maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ ), maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ ), maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ ), maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ ), minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ ), minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ ), minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ )
63585     {}
63586 
63587     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63588 
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63589     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63590     {
63591       *this = rhs;
63592     }
63593 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63594 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63595     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63596     {
63597       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>( &rhs );
63598       return *this;
63599     }
63600 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63601     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63602     {
63603       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) );
63604       return *this;
63605     }
63606 
63607 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63608     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
63609     {
63610       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
63611     }
63612 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63613     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT
63614     {
63615       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
63616     }
63617 
63618 
63619 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63620     auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& ) const = default;
63621 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63622     bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63623     {
63624       return ( sType == rhs.sType )
63625           && ( pNext == rhs.pNext )
63626           && ( maxGraphicsShaderGroupCount == rhs.maxGraphicsShaderGroupCount )
63627           && ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount )
63628           && ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount )
63629           && ( maxIndirectCommandsStreamCount == rhs.maxIndirectCommandsStreamCount )
63630           && ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset )
63631           && ( maxIndirectCommandsStreamStride == rhs.maxIndirectCommandsStreamStride )
63632           && ( minSequencesCountBufferOffsetAlignment == rhs.minSequencesCountBufferOffsetAlignment )
63633           && ( minSequencesIndexBufferOffsetAlignment == rhs.minSequencesIndexBufferOffsetAlignment )
63634           && ( minIndirectCommandsBufferOffsetAlignment == rhs.minIndirectCommandsBufferOffsetAlignment );
63635     }
63636 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63637     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63638     {
63639       return !operator==( rhs );
63640     }
63641 #endif
63642 
63643 
63644 
63645   public:
63646     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
63647     void* pNext = {};
63648     uint32_t maxGraphicsShaderGroupCount = {};
63649     uint32_t maxIndirectSequenceCount = {};
63650     uint32_t maxIndirectCommandsTokenCount = {};
63651     uint32_t maxIndirectCommandsStreamCount = {};
63652     uint32_t maxIndirectCommandsTokenOffset = {};
63653     uint32_t maxIndirectCommandsStreamStride = {};
63654     uint32_t minSequencesCountBufferOffsetAlignment = {};
63655     uint32_t minSequencesIndexBufferOffsetAlignment = {};
63656     uint32_t minIndirectCommandsBufferOffsetAlignment = {};
63657 
63658   };
63659   static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV ), "struct and wrapper have different size!" );
63660   static_assert( std::is_standard_layout<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
63661 
63662   template <>
63663   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV>
63664   {
63665     using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
63666   };
63667 
63668   struct PhysicalDeviceDeviceMemoryReportFeaturesEXT
63669   {
63670     static const bool allowDuplicate = false;
63671     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
63672 
63673 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceMemoryReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63674     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ = {}) VULKAN_HPP_NOEXCEPT
63675     : deviceMemoryReport( deviceMemoryReport_ )
63676     {}
63677 
63678     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63679 
PhysicalDeviceDeviceMemoryReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63680     PhysicalDeviceDeviceMemoryReportFeaturesEXT( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63681     {
63682       *this = rhs;
63683     }
63684 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63685 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63686     PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63687     {
63688       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT const *>( &rhs );
63689       return *this;
63690     }
63691 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63692     PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63693     {
63694       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDeviceMemoryReportFeaturesEXT ) );
63695       return *this;
63696     }
63697 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63698     PhysicalDeviceDeviceMemoryReportFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63699     {
63700       pNext = pNext_;
63701       return *this;
63702     }
63703 
setDeviceMemoryReportVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63704     PhysicalDeviceDeviceMemoryReportFeaturesEXT & setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT
63705     {
63706       deviceMemoryReport = deviceMemoryReport_;
63707       return *this;
63708     }
63709 
63710 
operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63711     operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
63712     {
63713       return *reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>( this );
63714     }
63715 
operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63716     operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63717     {
63718       return *reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>( this );
63719     }
63720 
63721 
63722 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63723     auto operator<=>( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& ) const = default;
63724 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63725     bool operator==( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63726     {
63727       return ( sType == rhs.sType )
63728           && ( pNext == rhs.pNext )
63729           && ( deviceMemoryReport == rhs.deviceMemoryReport );
63730     }
63731 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63732     bool operator!=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63733     {
63734       return !operator==( rhs );
63735     }
63736 #endif
63737 
63738 
63739 
63740   public:
63741     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
63742     void* pNext = {};
63743     VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport = {};
63744 
63745   };
63746   static_assert( sizeof( PhysicalDeviceDeviceMemoryReportFeaturesEXT ) == sizeof( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT ), "struct and wrapper have different size!" );
63747   static_assert( std::is_standard_layout<PhysicalDeviceDeviceMemoryReportFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
63748 
63749   template <>
63750   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT>
63751   {
63752     using Type = PhysicalDeviceDeviceMemoryReportFeaturesEXT;
63753   };
63754 
63755   struct PhysicalDeviceDiagnosticsConfigFeaturesNV
63756   {
63757     static const bool allowDuplicate = false;
63758     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
63759 
63760 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63761     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {}) VULKAN_HPP_NOEXCEPT
63762     : diagnosticsConfig( diagnosticsConfig_ )
63763     {}
63764 
63765     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63766 
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63767     PhysicalDeviceDiagnosticsConfigFeaturesNV( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63768     {
63769       *this = rhs;
63770     }
63771 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63772 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63773     PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63774     {
63775       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV const *>( &rhs );
63776       return *this;
63777     }
63778 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63779     PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63780     {
63781       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) );
63782       return *this;
63783     }
63784 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63785     PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63786     {
63787       pNext = pNext_;
63788       return *this;
63789     }
63790 
setDiagnosticsConfigVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63791     PhysicalDeviceDiagnosticsConfigFeaturesNV & setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT
63792     {
63793       diagnosticsConfig = diagnosticsConfig_;
63794       return *this;
63795     }
63796 
63797 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63798     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63799     {
63800       return *reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
63801     }
63802 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63803     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT
63804     {
63805       return *reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
63806     }
63807 
63808 
63809 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63810     auto operator<=>( PhysicalDeviceDiagnosticsConfigFeaturesNV const& ) const = default;
63811 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63812     bool operator==( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63813     {
63814       return ( sType == rhs.sType )
63815           && ( pNext == rhs.pNext )
63816           && ( diagnosticsConfig == rhs.diagnosticsConfig );
63817     }
63818 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63819     bool operator!=( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63820     {
63821       return !operator==( rhs );
63822     }
63823 #endif
63824 
63825 
63826 
63827   public:
63828     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
63829     void* pNext = {};
63830     VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig = {};
63831 
63832   };
63833   static_assert( sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) == sizeof( VkPhysicalDeviceDiagnosticsConfigFeaturesNV ), "struct and wrapper have different size!" );
63834   static_assert( std::is_standard_layout<PhysicalDeviceDiagnosticsConfigFeaturesNV>::value, "struct wrapper is not a standard layout!" );
63835 
63836   template <>
63837   struct CppType<StructureType, StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV>
63838   {
63839     using Type = PhysicalDeviceDiagnosticsConfigFeaturesNV;
63840   };
63841 
63842   struct PhysicalDeviceDiscardRectanglePropertiesEXT
63843   {
63844     static const bool allowDuplicate = false;
63845     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
63846 
63847 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63848     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT(uint32_t maxDiscardRectangles_ = {}) VULKAN_HPP_NOEXCEPT
63849     : maxDiscardRectangles( maxDiscardRectangles_ )
63850     {}
63851 
63852     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63853 
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63854     PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63855     {
63856       *this = rhs;
63857     }
63858 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63859 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63860     PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63861     {
63862       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT const *>( &rhs );
63863       return *this;
63864     }
63865 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63866     PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63867     {
63868       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) );
63869       return *this;
63870     }
63871 
63872 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63873     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
63874     {
63875       return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
63876     }
63877 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63878     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT
63879     {
63880       return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
63881     }
63882 
63883 
63884 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63885     auto operator<=>( PhysicalDeviceDiscardRectanglePropertiesEXT const& ) const = default;
63886 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63887     bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63888     {
63889       return ( sType == rhs.sType )
63890           && ( pNext == rhs.pNext )
63891           && ( maxDiscardRectangles == rhs.maxDiscardRectangles );
63892     }
63893 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63894     bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63895     {
63896       return !operator==( rhs );
63897     }
63898 #endif
63899 
63900 
63901 
63902   public:
63903     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
63904     void* pNext = {};
63905     uint32_t maxDiscardRectangles = {};
63906 
63907   };
63908   static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "struct and wrapper have different size!" );
63909   static_assert( std::is_standard_layout<PhysicalDeviceDiscardRectanglePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
63910 
63911   template <>
63912   struct CppType<StructureType, StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT>
63913   {
63914     using Type = PhysicalDeviceDiscardRectanglePropertiesEXT;
63915   };
63916 
63917   struct PhysicalDeviceDriverProperties
63918   {
63919     static const bool allowDuplicate = false;
63920     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDriverProperties;
63921 
63922 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63923     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
63924     : driverID( driverID_ ), driverName( driverName_ ), driverInfo( driverInfo_ ), conformanceVersion( conformanceVersion_ )
63925     {}
63926 
63927     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63928 
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63929     PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63930     {
63931       *this = rhs;
63932     }
63933 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63934 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63935     PhysicalDeviceDriverProperties & operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63936     {
63937       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties const *>( &rhs );
63938       return *this;
63939     }
63940 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63941     PhysicalDeviceDriverProperties & operator=( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63942     {
63943       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDriverProperties ) );
63944       return *this;
63945     }
63946 
63947 
operator VkPhysicalDeviceDriverProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63948     operator VkPhysicalDeviceDriverProperties const&() const VULKAN_HPP_NOEXCEPT
63949     {
63950       return *reinterpret_cast<const VkPhysicalDeviceDriverProperties*>( this );
63951     }
63952 
operator VkPhysicalDeviceDriverProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63953     operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT
63954     {
63955       return *reinterpret_cast<VkPhysicalDeviceDriverProperties*>( this );
63956     }
63957 
63958 
63959 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63960     auto operator<=>( PhysicalDeviceDriverProperties const& ) const = default;
63961 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63962     bool operator==( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63963     {
63964       return ( sType == rhs.sType )
63965           && ( pNext == rhs.pNext )
63966           && ( driverID == rhs.driverID )
63967           && ( driverName == rhs.driverName )
63968           && ( driverInfo == rhs.driverInfo )
63969           && ( conformanceVersion == rhs.conformanceVersion );
63970     }
63971 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63972     bool operator!=( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63973     {
63974       return !operator==( rhs );
63975     }
63976 #endif
63977 
63978 
63979 
63980   public:
63981     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties;
63982     void* pNext = {};
63983     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
63984     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
63985     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
63986     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
63987 
63988   };
63989   static_assert( sizeof( PhysicalDeviceDriverProperties ) == sizeof( VkPhysicalDeviceDriverProperties ), "struct and wrapper have different size!" );
63990   static_assert( std::is_standard_layout<PhysicalDeviceDriverProperties>::value, "struct wrapper is not a standard layout!" );
63991 
63992   template <>
63993   struct CppType<StructureType, StructureType::ePhysicalDeviceDriverProperties>
63994   {
63995     using Type = PhysicalDeviceDriverProperties;
63996   };
63997   using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
63998 
63999   struct PhysicalDeviceExclusiveScissorFeaturesNV
64000   {
64001     static const bool allowDuplicate = false;
64002     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
64003 
64004 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64005     VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {}) VULKAN_HPP_NOEXCEPT
64006     : exclusiveScissor( exclusiveScissor_ )
64007     {}
64008 
64009     VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64010 
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64011     PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64012     {
64013       *this = rhs;
64014     }
64015 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64016 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64017     PhysicalDeviceExclusiveScissorFeaturesNV & operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64018     {
64019       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV const *>( &rhs );
64020       return *this;
64021     }
64022 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64023     PhysicalDeviceExclusiveScissorFeaturesNV & operator=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64024     {
64025       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) );
64026       return *this;
64027     }
64028 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64029     PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64030     {
64031       pNext = pNext_;
64032       return *this;
64033     }
64034 
setExclusiveScissorVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64035     PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT
64036     {
64037       exclusiveScissor = exclusiveScissor_;
64038       return *this;
64039     }
64040 
64041 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64042     operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
64043     {
64044       return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
64045     }
64046 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64047     operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
64048     {
64049       return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
64050     }
64051 
64052 
64053 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64054     auto operator<=>( PhysicalDeviceExclusiveScissorFeaturesNV const& ) const = default;
64055 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64056     bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64057     {
64058       return ( sType == rhs.sType )
64059           && ( pNext == rhs.pNext )
64060           && ( exclusiveScissor == rhs.exclusiveScissor );
64061     }
64062 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64063     bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64064     {
64065       return !operator==( rhs );
64066     }
64067 #endif
64068 
64069 
64070 
64071   public:
64072     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
64073     void* pNext = {};
64074     VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {};
64075 
64076   };
64077   static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "struct and wrapper have different size!" );
64078   static_assert( std::is_standard_layout<PhysicalDeviceExclusiveScissorFeaturesNV>::value, "struct wrapper is not a standard layout!" );
64079 
64080   template <>
64081   struct CppType<StructureType, StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV>
64082   {
64083     using Type = PhysicalDeviceExclusiveScissorFeaturesNV;
64084   };
64085 
64086   struct PhysicalDeviceExtendedDynamicStateFeaturesEXT
64087   {
64088     static const bool allowDuplicate = false;
64089     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
64090 
64091 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExtendedDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64092     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ = {}) VULKAN_HPP_NOEXCEPT
64093     : extendedDynamicState( extendedDynamicState_ )
64094     {}
64095 
64096     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64097 
PhysicalDeviceExtendedDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64098     PhysicalDeviceExtendedDynamicStateFeaturesEXT( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64099     {
64100       *this = rhs;
64101     }
64102 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64103 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64104     PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64105     {
64106       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT const *>( &rhs );
64107       return *this;
64108     }
64109 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64110     PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64111     {
64112       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExtendedDynamicStateFeaturesEXT ) );
64113       return *this;
64114     }
64115 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64116     PhysicalDeviceExtendedDynamicStateFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64117     {
64118       pNext = pNext_;
64119       return *this;
64120     }
64121 
setExtendedDynamicStateVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64122     PhysicalDeviceExtendedDynamicStateFeaturesEXT & setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT
64123     {
64124       extendedDynamicState = extendedDynamicState_;
64125       return *this;
64126     }
64127 
64128 
operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64129     operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64130     {
64131       return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>( this );
64132     }
64133 
operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64134     operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64135     {
64136       return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>( this );
64137     }
64138 
64139 
64140 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64141     auto operator<=>( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& ) const = default;
64142 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64143     bool operator==( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64144     {
64145       return ( sType == rhs.sType )
64146           && ( pNext == rhs.pNext )
64147           && ( extendedDynamicState == rhs.extendedDynamicState );
64148     }
64149 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64150     bool operator!=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64151     {
64152       return !operator==( rhs );
64153     }
64154 #endif
64155 
64156 
64157 
64158   public:
64159     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
64160     void* pNext = {};
64161     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState = {};
64162 
64163   };
64164   static_assert( sizeof( PhysicalDeviceExtendedDynamicStateFeaturesEXT ) == sizeof( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT ), "struct and wrapper have different size!" );
64165   static_assert( std::is_standard_layout<PhysicalDeviceExtendedDynamicStateFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64166 
64167   template <>
64168   struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT>
64169   {
64170     using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT;
64171   };
64172 
64173   struct PhysicalDeviceExternalImageFormatInfo
64174   {
64175     static const bool allowDuplicate = false;
64176     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
64177 
64178 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64179     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
64180     : handleType( handleType_ )
64181     {}
64182 
64183     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64184 
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64185     PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
64186     {
64187       *this = rhs;
64188     }
64189 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64190 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64191     PhysicalDeviceExternalImageFormatInfo & operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
64192     {
64193       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo const *>( &rhs );
64194       return *this;
64195     }
64196 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64197     PhysicalDeviceExternalImageFormatInfo & operator=( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
64198     {
64199       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalImageFormatInfo ) );
64200       return *this;
64201     }
64202 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64203     PhysicalDeviceExternalImageFormatInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
64204     {
64205       pNext = pNext_;
64206       return *this;
64207     }
64208 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64209     PhysicalDeviceExternalImageFormatInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
64210     {
64211       handleType = handleType_;
64212       return *this;
64213     }
64214 
64215 
operator VkPhysicalDeviceExternalImageFormatInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64216     operator VkPhysicalDeviceExternalImageFormatInfo const&() const VULKAN_HPP_NOEXCEPT
64217     {
64218       return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>( this );
64219     }
64220 
operator VkPhysicalDeviceExternalImageFormatInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64221     operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT
64222     {
64223       return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>( this );
64224     }
64225 
64226 
64227 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64228     auto operator<=>( PhysicalDeviceExternalImageFormatInfo const& ) const = default;
64229 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64230     bool operator==( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
64231     {
64232       return ( sType == rhs.sType )
64233           && ( pNext == rhs.pNext )
64234           && ( handleType == rhs.handleType );
64235     }
64236 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64237     bool operator!=( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
64238     {
64239       return !operator==( rhs );
64240     }
64241 #endif
64242 
64243 
64244 
64245   public:
64246     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
64247     const void* pNext = {};
64248     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
64249 
64250   };
64251   static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), "struct and wrapper have different size!" );
64252   static_assert( std::is_standard_layout<PhysicalDeviceExternalImageFormatInfo>::value, "struct wrapper is not a standard layout!" );
64253 
64254   template <>
64255   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalImageFormatInfo>
64256   {
64257     using Type = PhysicalDeviceExternalImageFormatInfo;
64258   };
64259   using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
64260 
64261   struct PhysicalDeviceExternalMemoryHostPropertiesEXT
64262   {
64263     static const bool allowDuplicate = false;
64264     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
64265 
64266 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64267     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {}) VULKAN_HPP_NOEXCEPT
64268     : minImportedHostPointerAlignment( minImportedHostPointerAlignment_ )
64269     {}
64270 
64271     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64272 
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64273     PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64274     {
64275       *this = rhs;
64276     }
64277 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64278 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64279     PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64280     {
64281       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT const *>( &rhs );
64282       return *this;
64283     }
64284 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64285     PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64286     {
64287       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) );
64288       return *this;
64289     }
64290 
64291 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64292     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
64293     {
64294       return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
64295     }
64296 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64297     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT
64298     {
64299       return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
64300     }
64301 
64302 
64303 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64304     auto operator<=>( PhysicalDeviceExternalMemoryHostPropertiesEXT const& ) const = default;
64305 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64306     bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64307     {
64308       return ( sType == rhs.sType )
64309           && ( pNext == rhs.pNext )
64310           && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment );
64311     }
64312 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64313     bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64314     {
64315       return !operator==( rhs );
64316     }
64317 #endif
64318 
64319 
64320 
64321   public:
64322     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
64323     void* pNext = {};
64324     VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {};
64325 
64326   };
64327   static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), "struct and wrapper have different size!" );
64328   static_assert( std::is_standard_layout<PhysicalDeviceExternalMemoryHostPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
64329 
64330   template <>
64331   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT>
64332   {
64333     using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT;
64334   };
64335 
64336   struct PhysicalDeviceFloatControlsProperties
64337   {
64338     static const bool allowDuplicate = false;
64339     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFloatControlsProperties;
64340 
64341 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64342     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
64343     : 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_ )
64344     {}
64345 
64346     VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64347 
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64348     PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64349     {
64350       *this = rhs;
64351     }
64352 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64353 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64354     PhysicalDeviceFloatControlsProperties & operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64355     {
64356       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties const *>( &rhs );
64357       return *this;
64358     }
64359 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64360     PhysicalDeviceFloatControlsProperties & operator=( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64361     {
64362       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFloatControlsProperties ) );
64363       return *this;
64364     }
64365 
64366 
operator VkPhysicalDeviceFloatControlsProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64367     operator VkPhysicalDeviceFloatControlsProperties const&() const VULKAN_HPP_NOEXCEPT
64368     {
64369       return *reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>( this );
64370     }
64371 
operator VkPhysicalDeviceFloatControlsProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64372     operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT
64373     {
64374       return *reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>( this );
64375     }
64376 
64377 
64378 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64379     auto operator<=>( PhysicalDeviceFloatControlsProperties const& ) const = default;
64380 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64381     bool operator==( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64382     {
64383       return ( sType == rhs.sType )
64384           && ( pNext == rhs.pNext )
64385           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
64386           && ( roundingModeIndependence == rhs.roundingModeIndependence )
64387           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
64388           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
64389           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
64390           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
64391           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
64392           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
64393           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
64394           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
64395           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
64396           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
64397           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
64398           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
64399           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
64400           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
64401           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 );
64402     }
64403 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64404     bool operator!=( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64405     {
64406       return !operator==( rhs );
64407     }
64408 #endif
64409 
64410 
64411 
64412   public:
64413     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties;
64414     void* pNext = {};
64415     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
64416     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
64417     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
64418     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
64419     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
64420     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
64421     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
64422     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
64423     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
64424     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
64425     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
64426     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
64427     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
64428     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
64429     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
64430     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
64431     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
64432 
64433   };
64434   static_assert( sizeof( PhysicalDeviceFloatControlsProperties ) == sizeof( VkPhysicalDeviceFloatControlsProperties ), "struct and wrapper have different size!" );
64435   static_assert( std::is_standard_layout<PhysicalDeviceFloatControlsProperties>::value, "struct wrapper is not a standard layout!" );
64436 
64437   template <>
64438   struct CppType<StructureType, StructureType::ePhysicalDeviceFloatControlsProperties>
64439   {
64440     using Type = PhysicalDeviceFloatControlsProperties;
64441   };
64442   using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
64443 
64444   struct PhysicalDeviceFragmentDensityMap2FeaturesEXT
64445   {
64446     static const bool allowDuplicate = false;
64447     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
64448 
64449 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMap2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64450     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ = {}) VULKAN_HPP_NOEXCEPT
64451     : fragmentDensityMapDeferred( fragmentDensityMapDeferred_ )
64452     {}
64453 
64454     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64455 
PhysicalDeviceFragmentDensityMap2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64456     PhysicalDeviceFragmentDensityMap2FeaturesEXT( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64457     {
64458       *this = rhs;
64459     }
64460 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64461 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64462     PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64463     {
64464       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT const *>( &rhs );
64465       return *this;
64466     }
64467 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64468     PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64469     {
64470       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMap2FeaturesEXT ) );
64471       return *this;
64472     }
64473 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64474     PhysicalDeviceFragmentDensityMap2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64475     {
64476       pNext = pNext_;
64477       return *this;
64478     }
64479 
setFragmentDensityMapDeferredVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64480     PhysicalDeviceFragmentDensityMap2FeaturesEXT & setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT
64481     {
64482       fragmentDensityMapDeferred = fragmentDensityMapDeferred_;
64483       return *this;
64484     }
64485 
64486 
operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64487     operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64488     {
64489       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>( this );
64490     }
64491 
operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64492     operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
64493     {
64494       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>( this );
64495     }
64496 
64497 
64498 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64499     auto operator<=>( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& ) const = default;
64500 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64501     bool operator==( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64502     {
64503       return ( sType == rhs.sType )
64504           && ( pNext == rhs.pNext )
64505           && ( fragmentDensityMapDeferred == rhs.fragmentDensityMapDeferred );
64506     }
64507 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64508     bool operator!=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64509     {
64510       return !operator==( rhs );
64511     }
64512 #endif
64513 
64514 
64515 
64516   public:
64517     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
64518     void* pNext = {};
64519     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred = {};
64520 
64521   };
64522   static_assert( sizeof( PhysicalDeviceFragmentDensityMap2FeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT ), "struct and wrapper have different size!" );
64523   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMap2FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64524 
64525   template <>
64526   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT>
64527   {
64528     using Type = PhysicalDeviceFragmentDensityMap2FeaturesEXT;
64529   };
64530 
64531   struct PhysicalDeviceFragmentDensityMap2PropertiesEXT
64532   {
64533     static const bool allowDuplicate = false;
64534     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
64535 
64536 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMap2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64537     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess_ = {}, uint32_t maxSubsampledArrayLayers_ = {}, uint32_t maxDescriptorSetSubsampledSamplers_ = {}) VULKAN_HPP_NOEXCEPT
64538     : subsampledLoads( subsampledLoads_ ), subsampledCoarseReconstructionEarlyAccess( subsampledCoarseReconstructionEarlyAccess_ ), maxSubsampledArrayLayers( maxSubsampledArrayLayers_ ), maxDescriptorSetSubsampledSamplers( maxDescriptorSetSubsampledSamplers_ )
64539     {}
64540 
64541     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64542 
PhysicalDeviceFragmentDensityMap2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64543     PhysicalDeviceFragmentDensityMap2PropertiesEXT( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64544     {
64545       *this = rhs;
64546     }
64547 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64548 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64549     PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64550     {
64551       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT const *>( &rhs );
64552       return *this;
64553     }
64554 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64555     PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64556     {
64557       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMap2PropertiesEXT ) );
64558       return *this;
64559     }
64560 
64561 
operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64562     operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
64563     {
64564       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>( this );
64565     }
64566 
operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64567     operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
64568     {
64569       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>( this );
64570     }
64571 
64572 
64573 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64574     auto operator<=>( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& ) const = default;
64575 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64576     bool operator==( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64577     {
64578       return ( sType == rhs.sType )
64579           && ( pNext == rhs.pNext )
64580           && ( subsampledLoads == rhs.subsampledLoads )
64581           && ( subsampledCoarseReconstructionEarlyAccess == rhs.subsampledCoarseReconstructionEarlyAccess )
64582           && ( maxSubsampledArrayLayers == rhs.maxSubsampledArrayLayers )
64583           && ( maxDescriptorSetSubsampledSamplers == rhs.maxDescriptorSetSubsampledSamplers );
64584     }
64585 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64586     bool operator!=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64587     {
64588       return !operator==( rhs );
64589     }
64590 #endif
64591 
64592 
64593 
64594   public:
64595     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
64596     void* pNext = {};
64597     VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads = {};
64598     VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess = {};
64599     uint32_t maxSubsampledArrayLayers = {};
64600     uint32_t maxDescriptorSetSubsampledSamplers = {};
64601 
64602   };
64603   static_assert( sizeof( PhysicalDeviceFragmentDensityMap2PropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT ), "struct and wrapper have different size!" );
64604   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMap2PropertiesEXT>::value, "struct wrapper is not a standard layout!" );
64605 
64606   template <>
64607   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT>
64608   {
64609     using Type = PhysicalDeviceFragmentDensityMap2PropertiesEXT;
64610   };
64611 
64612   struct PhysicalDeviceFragmentDensityMapFeaturesEXT
64613   {
64614     static const bool allowDuplicate = false;
64615     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
64616 
64617 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64618     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {}) VULKAN_HPP_NOEXCEPT
64619     : fragmentDensityMap( fragmentDensityMap_ ), fragmentDensityMapDynamic( fragmentDensityMapDynamic_ ), fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ )
64620     {}
64621 
64622     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64623 
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64624     PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64625     {
64626       *this = rhs;
64627     }
64628 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64629 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64630     PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64631     {
64632       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT const *>( &rhs );
64633       return *this;
64634     }
64635 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64636     PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64637     {
64638       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) );
64639       return *this;
64640     }
64641 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64642     PhysicalDeviceFragmentDensityMapFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64643     {
64644       pNext = pNext_;
64645       return *this;
64646     }
64647 
setFragmentDensityMapVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64648     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT
64649     {
64650       fragmentDensityMap = fragmentDensityMap_;
64651       return *this;
64652     }
64653 
setFragmentDensityMapDynamicVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64654     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT
64655     {
64656       fragmentDensityMapDynamic = fragmentDensityMapDynamic_;
64657       return *this;
64658     }
64659 
setFragmentDensityMapNonSubsampledImagesVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64660     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapNonSubsampledImages( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT
64661     {
64662       fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_;
64663       return *this;
64664     }
64665 
64666 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64667     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64668     {
64669       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
64670     }
64671 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64672     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64673     {
64674       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
64675     }
64676 
64677 
64678 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64679     auto operator<=>( PhysicalDeviceFragmentDensityMapFeaturesEXT const& ) const = default;
64680 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64681     bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64682     {
64683       return ( sType == rhs.sType )
64684           && ( pNext == rhs.pNext )
64685           && ( fragmentDensityMap == rhs.fragmentDensityMap )
64686           && ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic )
64687           && ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages );
64688     }
64689 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64690     bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64691     {
64692       return !operator==( rhs );
64693     }
64694 #endif
64695 
64696 
64697 
64698   public:
64699     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
64700     void* pNext = {};
64701     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {};
64702     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {};
64703     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {};
64704 
64705   };
64706   static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), "struct and wrapper have different size!" );
64707   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64708 
64709   template <>
64710   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT>
64711   {
64712     using Type = PhysicalDeviceFragmentDensityMapFeaturesEXT;
64713   };
64714 
64715   struct PhysicalDeviceFragmentDensityMapPropertiesEXT
64716   {
64717     static const bool allowDuplicate = false;
64718     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
64719 
64720 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64721     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {}) VULKAN_HPP_NOEXCEPT
64722     : minFragmentDensityTexelSize( minFragmentDensityTexelSize_ ), maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ ), fragmentDensityInvocations( fragmentDensityInvocations_ )
64723     {}
64724 
64725     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64726 
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64727     PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64728     {
64729       *this = rhs;
64730     }
64731 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64732 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64733     PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64734     {
64735       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT const *>( &rhs );
64736       return *this;
64737     }
64738 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64739     PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64740     {
64741       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) );
64742       return *this;
64743     }
64744 
64745 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64746     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
64747     {
64748       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
64749     }
64750 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64751     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
64752     {
64753       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
64754     }
64755 
64756 
64757 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64758     auto operator<=>( PhysicalDeviceFragmentDensityMapPropertiesEXT const& ) const = default;
64759 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64760     bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64761     {
64762       return ( sType == rhs.sType )
64763           && ( pNext == rhs.pNext )
64764           && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize )
64765           && ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize )
64766           && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations );
64767     }
64768 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64769     bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64770     {
64771       return !operator==( rhs );
64772     }
64773 #endif
64774 
64775 
64776 
64777   public:
64778     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
64779     void* pNext = {};
64780     VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {};
64781     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {};
64782     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {};
64783 
64784   };
64785   static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), "struct and wrapper have different size!" );
64786   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
64787 
64788   template <>
64789   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT>
64790   {
64791     using Type = PhysicalDeviceFragmentDensityMapPropertiesEXT;
64792   };
64793 
64794   struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV
64795   {
64796     static const bool allowDuplicate = false;
64797     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
64798 
64799 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64800     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {}) VULKAN_HPP_NOEXCEPT
64801     : fragmentShaderBarycentric( fragmentShaderBarycentric_ )
64802     {}
64803 
64804     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64805 
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64806     PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64807     {
64808       *this = rhs;
64809     }
64810 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64811 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64812     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64813     {
64814       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV const *>( &rhs );
64815       return *this;
64816     }
64817 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64818     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64819     {
64820       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) );
64821       return *this;
64822     }
64823 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64824     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64825     {
64826       pNext = pNext_;
64827       return *this;
64828     }
64829 
setFragmentShaderBarycentricVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64830     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT
64831     {
64832       fragmentShaderBarycentric = fragmentShaderBarycentric_;
64833       return *this;
64834     }
64835 
64836 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64837     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
64838     {
64839       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
64840     }
64841 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64842     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &() VULKAN_HPP_NOEXCEPT
64843     {
64844       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
64845     }
64846 
64847 
64848 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64849     auto operator<=>( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& ) const = default;
64850 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64851     bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64852     {
64853       return ( sType == rhs.sType )
64854           && ( pNext == rhs.pNext )
64855           && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric );
64856     }
64857 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64858     bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64859     {
64860       return !operator==( rhs );
64861     }
64862 #endif
64863 
64864 
64865 
64866   public:
64867     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
64868     void* pNext = {};
64869     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {};
64870 
64871   };
64872   static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "struct and wrapper have different size!" );
64873   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderBarycentricFeaturesNV>::value, "struct wrapper is not a standard layout!" );
64874 
64875   template <>
64876   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV>
64877   {
64878     using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesNV;
64879   };
64880 
64881   struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT
64882   {
64883     static const bool allowDuplicate = false;
64884     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
64885 
64886 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64887     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {}) VULKAN_HPP_NOEXCEPT
64888     : fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ ), fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ ), fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ )
64889     {}
64890 
64891     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64892 
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64893     PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64894     {
64895       *this = rhs;
64896     }
64897 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64898 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64899     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64900     {
64901       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>( &rhs );
64902       return *this;
64903     }
64904 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64905     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64906     {
64907       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) );
64908       return *this;
64909     }
64910 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64911     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64912     {
64913       pNext = pNext_;
64914       return *this;
64915     }
64916 
setFragmentShaderSampleInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64917     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT
64918     {
64919       fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_;
64920       return *this;
64921     }
64922 
setFragmentShaderPixelInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64923     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT
64924     {
64925       fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_;
64926       return *this;
64927     }
64928 
setFragmentShaderShadingRateInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64929     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT
64930     {
64931       fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
64932       return *this;
64933     }
64934 
64935 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64936     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64937     {
64938       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
64939     }
64940 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64941     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64942     {
64943       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
64944     }
64945 
64946 
64947 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64948     auto operator<=>( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& ) const = default;
64949 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64950     bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64951     {
64952       return ( sType == rhs.sType )
64953           && ( pNext == rhs.pNext )
64954           && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock )
64955           && ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock )
64956           && ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock );
64957     }
64958 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64959     bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64960     {
64961       return !operator==( rhs );
64962     }
64963 #endif
64964 
64965 
64966 
64967   public:
64968     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
64969     void* pNext = {};
64970     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {};
64971     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {};
64972     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {};
64973 
64974   };
64975   static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), "struct and wrapper have different size!" );
64976   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderInterlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64977 
64978   template <>
64979   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT>
64980   {
64981     using Type = PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
64982   };
64983 
64984   struct PhysicalDeviceFragmentShadingRateFeaturesKHR
64985   {
64986     static const bool allowDuplicate = false;
64987     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
64988 
64989 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR64990     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ = {}) VULKAN_HPP_NOEXCEPT
64991     : pipelineFragmentShadingRate( pipelineFragmentShadingRate_ ), primitiveFragmentShadingRate( primitiveFragmentShadingRate_ ), attachmentFragmentShadingRate( attachmentFragmentShadingRate_ )
64992     {}
64993 
64994     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64995 
PhysicalDeviceFragmentShadingRateFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR64996     PhysicalDeviceFragmentShadingRateFeaturesKHR( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
64997     {
64998       *this = rhs;
64999     }
65000 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65001 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65002     PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65003     {
65004       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR const *>( &rhs );
65005       return *this;
65006     }
65007 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65008     PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65009     {
65010       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRateFeaturesKHR ) );
65011       return *this;
65012     }
65013 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65014     PhysicalDeviceFragmentShadingRateFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65015     {
65016       pNext = pNext_;
65017       return *this;
65018     }
65019 
setPipelineFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65020     PhysicalDeviceFragmentShadingRateFeaturesKHR & setPipelineFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
65021     {
65022       pipelineFragmentShadingRate = pipelineFragmentShadingRate_;
65023       return *this;
65024     }
65025 
setPrimitiveFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65026     PhysicalDeviceFragmentShadingRateFeaturesKHR & setPrimitiveFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
65027     {
65028       primitiveFragmentShadingRate = primitiveFragmentShadingRate_;
65029       return *this;
65030     }
65031 
setAttachmentFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65032     PhysicalDeviceFragmentShadingRateFeaturesKHR & setAttachmentFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
65033     {
65034       attachmentFragmentShadingRate = attachmentFragmentShadingRate_;
65035       return *this;
65036     }
65037 
65038 
operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65039     operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
65040     {
65041       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>( this );
65042     }
65043 
operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65044     operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR &() VULKAN_HPP_NOEXCEPT
65045     {
65046       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>( this );
65047     }
65048 
65049 
65050 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65051     auto operator<=>( PhysicalDeviceFragmentShadingRateFeaturesKHR const& ) const = default;
65052 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65053     bool operator==( PhysicalDeviceFragmentShadingRateFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65054     {
65055       return ( sType == rhs.sType )
65056           && ( pNext == rhs.pNext )
65057           && ( pipelineFragmentShadingRate == rhs.pipelineFragmentShadingRate )
65058           && ( primitiveFragmentShadingRate == rhs.primitiveFragmentShadingRate )
65059           && ( attachmentFragmentShadingRate == rhs.attachmentFragmentShadingRate );
65060     }
65061 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65062     bool operator!=( PhysicalDeviceFragmentShadingRateFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65063     {
65064       return !operator==( rhs );
65065     }
65066 #endif
65067 
65068 
65069 
65070   public:
65071     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
65072     void* pNext = {};
65073     VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate = {};
65074     VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate = {};
65075     VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate = {};
65076 
65077   };
65078   static_assert( sizeof( PhysicalDeviceFragmentShadingRateFeaturesKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRateFeaturesKHR ), "struct and wrapper have different size!" );
65079   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRateFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
65080 
65081   template <>
65082   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR>
65083   {
65084     using Type = PhysicalDeviceFragmentShadingRateFeaturesKHR;
65085   };
65086 
65087   struct PhysicalDeviceFragmentShadingRatePropertiesKHR
65088   {
65089     static const bool allowDuplicate = false;
65090     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
65091 
65092 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRatePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65093     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
65094     : 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_ )
65095     {}
65096 
65097     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65098 
PhysicalDeviceFragmentShadingRatePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65099     PhysicalDeviceFragmentShadingRatePropertiesKHR( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65100     {
65101       *this = rhs;
65102     }
65103 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65104 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65105     PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65106     {
65107       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR const *>( &rhs );
65108       return *this;
65109     }
65110 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65111     PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65112     {
65113       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRatePropertiesKHR ) );
65114       return *this;
65115     }
65116 
65117 
operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65118     operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
65119     {
65120       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>( this );
65121     }
65122 
operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65123     operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR &() VULKAN_HPP_NOEXCEPT
65124     {
65125       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>( this );
65126     }
65127 
65128 
65129 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65130     auto operator<=>( PhysicalDeviceFragmentShadingRatePropertiesKHR const& ) const = default;
65131 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65132     bool operator==( PhysicalDeviceFragmentShadingRatePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65133     {
65134       return ( sType == rhs.sType )
65135           && ( pNext == rhs.pNext )
65136           && ( minFragmentShadingRateAttachmentTexelSize == rhs.minFragmentShadingRateAttachmentTexelSize )
65137           && ( maxFragmentShadingRateAttachmentTexelSize == rhs.maxFragmentShadingRateAttachmentTexelSize )
65138           && ( maxFragmentShadingRateAttachmentTexelSizeAspectRatio == rhs.maxFragmentShadingRateAttachmentTexelSizeAspectRatio )
65139           && ( primitiveFragmentShadingRateWithMultipleViewports == rhs.primitiveFragmentShadingRateWithMultipleViewports )
65140           && ( layeredShadingRateAttachments == rhs.layeredShadingRateAttachments )
65141           && ( fragmentShadingRateNonTrivialCombinerOps == rhs.fragmentShadingRateNonTrivialCombinerOps )
65142           && ( maxFragmentSize == rhs.maxFragmentSize )
65143           && ( maxFragmentSizeAspectRatio == rhs.maxFragmentSizeAspectRatio )
65144           && ( maxFragmentShadingRateCoverageSamples == rhs.maxFragmentShadingRateCoverageSamples )
65145           && ( maxFragmentShadingRateRasterizationSamples == rhs.maxFragmentShadingRateRasterizationSamples )
65146           && ( fragmentShadingRateWithShaderDepthStencilWrites == rhs.fragmentShadingRateWithShaderDepthStencilWrites )
65147           && ( fragmentShadingRateWithSampleMask == rhs.fragmentShadingRateWithSampleMask )
65148           && ( fragmentShadingRateWithShaderSampleMask == rhs.fragmentShadingRateWithShaderSampleMask )
65149           && ( fragmentShadingRateWithConservativeRasterization == rhs.fragmentShadingRateWithConservativeRasterization )
65150           && ( fragmentShadingRateWithFragmentShaderInterlock == rhs.fragmentShadingRateWithFragmentShaderInterlock )
65151           && ( fragmentShadingRateWithCustomSampleLocations == rhs.fragmentShadingRateWithCustomSampleLocations )
65152           && ( fragmentShadingRateStrictMultiplyCombiner == rhs.fragmentShadingRateStrictMultiplyCombiner );
65153     }
65154 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65155     bool operator!=( PhysicalDeviceFragmentShadingRatePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65156     {
65157       return !operator==( rhs );
65158     }
65159 #endif
65160 
65161 
65162 
65163   public:
65164     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
65165     void* pNext = {};
65166     VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize = {};
65167     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize = {};
65168     uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio = {};
65169     VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports = {};
65170     VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments = {};
65171     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps = {};
65172     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize = {};
65173     uint32_t maxFragmentSizeAspectRatio = {};
65174     uint32_t maxFragmentShadingRateCoverageSamples = {};
65175     VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
65176     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites = {};
65177     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask = {};
65178     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask = {};
65179     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization = {};
65180     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock = {};
65181     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations = {};
65182     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner = {};
65183 
65184   };
65185   static_assert( sizeof( PhysicalDeviceFragmentShadingRatePropertiesKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRatePropertiesKHR ), "struct and wrapper have different size!" );
65186   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRatePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
65187 
65188   template <>
65189   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR>
65190   {
65191     using Type = PhysicalDeviceFragmentShadingRatePropertiesKHR;
65192   };
65193 
65194   struct PhysicalDeviceGroupProperties
65195   {
65196     static const bool allowDuplicate = false;
65197     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGroupProperties;
65198 
65199 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65200     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
65201     : physicalDeviceCount( physicalDeviceCount_ ), physicalDevices( physicalDevices_ ), subsetAllocation( subsetAllocation_ )
65202     {}
65203 
65204     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65205 
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65206     PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65207     {
65208       *this = rhs;
65209     }
65210 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65211 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65212     PhysicalDeviceGroupProperties & operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65213     {
65214       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties const *>( &rhs );
65215       return *this;
65216     }
65217 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65218     PhysicalDeviceGroupProperties & operator=( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65219     {
65220       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceGroupProperties ) );
65221       return *this;
65222     }
65223 
65224 
operator VkPhysicalDeviceGroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65225     operator VkPhysicalDeviceGroupProperties const&() const VULKAN_HPP_NOEXCEPT
65226     {
65227       return *reinterpret_cast<const VkPhysicalDeviceGroupProperties*>( this );
65228     }
65229 
operator VkPhysicalDeviceGroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65230     operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT
65231     {
65232       return *reinterpret_cast<VkPhysicalDeviceGroupProperties*>( this );
65233     }
65234 
65235 
65236 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65237     auto operator<=>( PhysicalDeviceGroupProperties const& ) const = default;
65238 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65239     bool operator==( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
65240     {
65241       return ( sType == rhs.sType )
65242           && ( pNext == rhs.pNext )
65243           && ( physicalDeviceCount == rhs.physicalDeviceCount )
65244           && ( physicalDevices == rhs.physicalDevices )
65245           && ( subsetAllocation == rhs.subsetAllocation );
65246     }
65247 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65248     bool operator!=( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
65249     {
65250       return !operator==( rhs );
65251     }
65252 #endif
65253 
65254 
65255 
65256   public:
65257     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties;
65258     void* pNext = {};
65259     uint32_t physicalDeviceCount = {};
65260     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> physicalDevices = {};
65261     VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {};
65262 
65263   };
65264   static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), "struct and wrapper have different size!" );
65265   static_assert( std::is_standard_layout<PhysicalDeviceGroupProperties>::value, "struct wrapper is not a standard layout!" );
65266 
65267   template <>
65268   struct CppType<StructureType, StructureType::ePhysicalDeviceGroupProperties>
65269   {
65270     using Type = PhysicalDeviceGroupProperties;
65271   };
65272   using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
65273 
65274   struct PhysicalDeviceHostQueryResetFeatures
65275   {
65276     static const bool allowDuplicate = false;
65277     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
65278 
65279 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65280     VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures(VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}) VULKAN_HPP_NOEXCEPT
65281     : hostQueryReset( hostQueryReset_ )
65282     {}
65283 
65284     VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65285 
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65286     PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65287     {
65288       *this = rhs;
65289     }
65290 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65291 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65292     PhysicalDeviceHostQueryResetFeatures & operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65293     {
65294       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const *>( &rhs );
65295       return *this;
65296     }
65297 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65298     PhysicalDeviceHostQueryResetFeatures & operator=( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65299     {
65300       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceHostQueryResetFeatures ) );
65301       return *this;
65302     }
65303 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65304     PhysicalDeviceHostQueryResetFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65305     {
65306       pNext = pNext_;
65307       return *this;
65308     }
65309 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65310     PhysicalDeviceHostQueryResetFeatures & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
65311     {
65312       hostQueryReset = hostQueryReset_;
65313       return *this;
65314     }
65315 
65316 
operator VkPhysicalDeviceHostQueryResetFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65317     operator VkPhysicalDeviceHostQueryResetFeatures const&() const VULKAN_HPP_NOEXCEPT
65318     {
65319       return *reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>( this );
65320     }
65321 
operator VkPhysicalDeviceHostQueryResetFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65322     operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT
65323     {
65324       return *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>( this );
65325     }
65326 
65327 
65328 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65329     auto operator<=>( PhysicalDeviceHostQueryResetFeatures const& ) const = default;
65330 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65331     bool operator==( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
65332     {
65333       return ( sType == rhs.sType )
65334           && ( pNext == rhs.pNext )
65335           && ( hostQueryReset == rhs.hostQueryReset );
65336     }
65337 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65338     bool operator!=( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
65339     {
65340       return !operator==( rhs );
65341     }
65342 #endif
65343 
65344 
65345 
65346   public:
65347     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
65348     void* pNext = {};
65349     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
65350 
65351   };
65352   static_assert( sizeof( PhysicalDeviceHostQueryResetFeatures ) == sizeof( VkPhysicalDeviceHostQueryResetFeatures ), "struct and wrapper have different size!" );
65353   static_assert( std::is_standard_layout<PhysicalDeviceHostQueryResetFeatures>::value, "struct wrapper is not a standard layout!" );
65354 
65355   template <>
65356   struct CppType<StructureType, StructureType::ePhysicalDeviceHostQueryResetFeatures>
65357   {
65358     using Type = PhysicalDeviceHostQueryResetFeatures;
65359   };
65360   using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
65361 
65362   struct PhysicalDeviceIDProperties
65363   {
65364     static const bool allowDuplicate = false;
65365     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIdProperties;
65366 
65367 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65368     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
65369     : deviceUUID( deviceUUID_ ), driverUUID( driverUUID_ ), deviceLUID( deviceLUID_ ), deviceNodeMask( deviceNodeMask_ ), deviceLUIDValid( deviceLUIDValid_ )
65370     {}
65371 
65372     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65373 
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65374     PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65375     {
65376       *this = rhs;
65377     }
65378 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65379 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65380     PhysicalDeviceIDProperties & operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65381     {
65382       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties const *>( &rhs );
65383       return *this;
65384     }
65385 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65386     PhysicalDeviceIDProperties & operator=( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65387     {
65388       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceIDProperties ) );
65389       return *this;
65390     }
65391 
65392 
operator VkPhysicalDeviceIDProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65393     operator VkPhysicalDeviceIDProperties const&() const VULKAN_HPP_NOEXCEPT
65394     {
65395       return *reinterpret_cast<const VkPhysicalDeviceIDProperties*>( this );
65396     }
65397 
operator VkPhysicalDeviceIDProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65398     operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT
65399     {
65400       return *reinterpret_cast<VkPhysicalDeviceIDProperties*>( this );
65401     }
65402 
65403 
65404 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65405     auto operator<=>( PhysicalDeviceIDProperties const& ) const = default;
65406 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65407     bool operator==( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
65408     {
65409       return ( sType == rhs.sType )
65410           && ( pNext == rhs.pNext )
65411           && ( deviceUUID == rhs.deviceUUID )
65412           && ( driverUUID == rhs.driverUUID )
65413           && ( deviceLUID == rhs.deviceLUID )
65414           && ( deviceNodeMask == rhs.deviceNodeMask )
65415           && ( deviceLUIDValid == rhs.deviceLUIDValid );
65416     }
65417 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65418     bool operator!=( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
65419     {
65420       return !operator==( rhs );
65421     }
65422 #endif
65423 
65424 
65425 
65426   public:
65427     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties;
65428     void* pNext = {};
65429     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
65430     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
65431     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
65432     uint32_t deviceNodeMask = {};
65433     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
65434 
65435   };
65436   static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), "struct and wrapper have different size!" );
65437   static_assert( std::is_standard_layout<PhysicalDeviceIDProperties>::value, "struct wrapper is not a standard layout!" );
65438 
65439   template <>
65440   struct CppType<StructureType, StructureType::ePhysicalDeviceIdProperties>
65441   {
65442     using Type = PhysicalDeviceIDProperties;
65443   };
65444   using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
65445 
65446   struct PhysicalDeviceImageDrmFormatModifierInfoEXT
65447   {
65448     static const bool allowDuplicate = false;
65449     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
65450 
65451 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65452     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
65453     : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ )
65454     {}
65455 
65456     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65457 
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65458     PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65459     {
65460       *this = rhs;
65461     }
65462 
65463 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65464     PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ )
65465     : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() )
65466     {}
65467 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
65468 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65469 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65470     PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65471     {
65472       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT const *>( &rhs );
65473       return *this;
65474     }
65475 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65476     PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65477     {
65478       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) );
65479       return *this;
65480     }
65481 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65482     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
65483     {
65484       pNext = pNext_;
65485       return *this;
65486     }
65487 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65488     PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
65489     {
65490       drmFormatModifier = drmFormatModifier_;
65491       return *this;
65492     }
65493 
setSharingModeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65494     PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
65495     {
65496       sharingMode = sharingMode_;
65497       return *this;
65498     }
65499 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65500     PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
65501     {
65502       queueFamilyIndexCount = queueFamilyIndexCount_;
65503       return *this;
65504     }
65505 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65506     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
65507     {
65508       pQueueFamilyIndices = pQueueFamilyIndices_;
65509       return *this;
65510     }
65511 
65512 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65513     PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
65514     {
65515       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
65516       pQueueFamilyIndices = queueFamilyIndices_.data();
65517       return *this;
65518     }
65519 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
65520 
65521 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65522     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&() const VULKAN_HPP_NOEXCEPT
65523     {
65524       return *reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
65525     }
65526 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65527     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT
65528     {
65529       return *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
65530     }
65531 
65532 
65533 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65534     auto operator<=>( PhysicalDeviceImageDrmFormatModifierInfoEXT const& ) const = default;
65535 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65536     bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65537     {
65538       return ( sType == rhs.sType )
65539           && ( pNext == rhs.pNext )
65540           && ( drmFormatModifier == rhs.drmFormatModifier )
65541           && ( sharingMode == rhs.sharingMode )
65542           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
65543           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
65544     }
65545 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65546     bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65547     {
65548       return !operator==( rhs );
65549     }
65550 #endif
65551 
65552 
65553 
65554   public:
65555     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
65556     const void* pNext = {};
65557     uint64_t drmFormatModifier = {};
65558     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
65559     uint32_t queueFamilyIndexCount = {};
65560     const uint32_t* pQueueFamilyIndices = {};
65561 
65562   };
65563   static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), "struct and wrapper have different size!" );
65564   static_assert( std::is_standard_layout<PhysicalDeviceImageDrmFormatModifierInfoEXT>::value, "struct wrapper is not a standard layout!" );
65565 
65566   template <>
65567   struct CppType<StructureType, StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT>
65568   {
65569     using Type = PhysicalDeviceImageDrmFormatModifierInfoEXT;
65570   };
65571 
65572   struct PhysicalDeviceImageRobustnessFeaturesEXT
65573   {
65574     static const bool allowDuplicate = false;
65575     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT;
65576 
65577 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageRobustnessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65578     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {}) VULKAN_HPP_NOEXCEPT
65579     : robustImageAccess( robustImageAccess_ )
65580     {}
65581 
65582     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65583 
PhysicalDeviceImageRobustnessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65584     PhysicalDeviceImageRobustnessFeaturesEXT( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65585     {
65586       *this = rhs;
65587     }
65588 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65589 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65590     PhysicalDeviceImageRobustnessFeaturesEXT & operator=( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65591     {
65592       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT const *>( &rhs );
65593       return *this;
65594     }
65595 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65596     PhysicalDeviceImageRobustnessFeaturesEXT & operator=( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65597     {
65598       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageRobustnessFeaturesEXT ) );
65599       return *this;
65600     }
65601 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65602     PhysicalDeviceImageRobustnessFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65603     {
65604       pNext = pNext_;
65605       return *this;
65606     }
65607 
setRobustImageAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65608     PhysicalDeviceImageRobustnessFeaturesEXT & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT
65609     {
65610       robustImageAccess = robustImageAccess_;
65611       return *this;
65612     }
65613 
65614 
operator VkPhysicalDeviceImageRobustnessFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65615     operator VkPhysicalDeviceImageRobustnessFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
65616     {
65617       return *reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeaturesEXT*>( this );
65618     }
65619 
operator VkPhysicalDeviceImageRobustnessFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65620     operator VkPhysicalDeviceImageRobustnessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
65621     {
65622       return *reinterpret_cast<VkPhysicalDeviceImageRobustnessFeaturesEXT*>( this );
65623     }
65624 
65625 
65626 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65627     auto operator<=>( PhysicalDeviceImageRobustnessFeaturesEXT const& ) const = default;
65628 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65629     bool operator==( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65630     {
65631       return ( sType == rhs.sType )
65632           && ( pNext == rhs.pNext )
65633           && ( robustImageAccess == rhs.robustImageAccess );
65634     }
65635 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65636     bool operator!=( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65637     {
65638       return !operator==( rhs );
65639     }
65640 #endif
65641 
65642 
65643 
65644   public:
65645     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT;
65646     void* pNext = {};
65647     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {};
65648 
65649   };
65650   static_assert( sizeof( PhysicalDeviceImageRobustnessFeaturesEXT ) == sizeof( VkPhysicalDeviceImageRobustnessFeaturesEXT ), "struct and wrapper have different size!" );
65651   static_assert( std::is_standard_layout<PhysicalDeviceImageRobustnessFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
65652 
65653   template <>
65654   struct CppType<StructureType, StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT>
65655   {
65656     using Type = PhysicalDeviceImageRobustnessFeaturesEXT;
65657   };
65658 
65659   struct PhysicalDeviceImageViewImageFormatInfoEXT
65660   {
65661     static const bool allowDuplicate = false;
65662     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
65663 
65664 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65665     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT(VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D) VULKAN_HPP_NOEXCEPT
65666     : imageViewType( imageViewType_ )
65667     {}
65668 
65669     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65670 
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65671     PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65672     {
65673       *this = rhs;
65674     }
65675 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65676 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65677     PhysicalDeviceImageViewImageFormatInfoEXT & operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65678     {
65679       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT const *>( &rhs );
65680       return *this;
65681     }
65682 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65683     PhysicalDeviceImageViewImageFormatInfoEXT & operator=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65684     {
65685       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) );
65686       return *this;
65687     }
65688 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65689     PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65690     {
65691       pNext = pNext_;
65692       return *this;
65693     }
65694 
setImageViewTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65695     PhysicalDeviceImageViewImageFormatInfoEXT & setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT
65696     {
65697       imageViewType = imageViewType_;
65698       return *this;
65699     }
65700 
65701 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65702     operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&() const VULKAN_HPP_NOEXCEPT
65703     {
65704       return *reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
65705     }
65706 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65707     operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT
65708     {
65709       return *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
65710     }
65711 
65712 
65713 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65714     auto operator<=>( PhysicalDeviceImageViewImageFormatInfoEXT const& ) const = default;
65715 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65716     bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65717     {
65718       return ( sType == rhs.sType )
65719           && ( pNext == rhs.pNext )
65720           && ( imageViewType == rhs.imageViewType );
65721     }
65722 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65723     bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65724     {
65725       return !operator==( rhs );
65726     }
65727 #endif
65728 
65729 
65730 
65731   public:
65732     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
65733     void* pNext = {};
65734     VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
65735 
65736   };
65737   static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), "struct and wrapper have different size!" );
65738   static_assert( std::is_standard_layout<PhysicalDeviceImageViewImageFormatInfoEXT>::value, "struct wrapper is not a standard layout!" );
65739 
65740   template <>
65741   struct CppType<StructureType, StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT>
65742   {
65743     using Type = PhysicalDeviceImageViewImageFormatInfoEXT;
65744   };
65745 
65746   struct PhysicalDeviceImagelessFramebufferFeatures
65747   {
65748     static const bool allowDuplicate = false;
65749     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
65750 
65751 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65752     VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures(VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}) VULKAN_HPP_NOEXCEPT
65753     : imagelessFramebuffer( imagelessFramebuffer_ )
65754     {}
65755 
65756     VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65757 
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65758     PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65759     {
65760       *this = rhs;
65761     }
65762 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65763 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65764     PhysicalDeviceImagelessFramebufferFeatures & operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65765     {
65766       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures const *>( &rhs );
65767       return *this;
65768     }
65769 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65770     PhysicalDeviceImagelessFramebufferFeatures & operator=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65771     {
65772       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImagelessFramebufferFeatures ) );
65773       return *this;
65774     }
65775 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65776     PhysicalDeviceImagelessFramebufferFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65777     {
65778       pNext = pNext_;
65779       return *this;
65780     }
65781 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65782     PhysicalDeviceImagelessFramebufferFeatures & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
65783     {
65784       imagelessFramebuffer = imagelessFramebuffer_;
65785       return *this;
65786     }
65787 
65788 
operator VkPhysicalDeviceImagelessFramebufferFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65789     operator VkPhysicalDeviceImagelessFramebufferFeatures const&() const VULKAN_HPP_NOEXCEPT
65790     {
65791       return *reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
65792     }
65793 
operator VkPhysicalDeviceImagelessFramebufferFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65794     operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT
65795     {
65796       return *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
65797     }
65798 
65799 
65800 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65801     auto operator<=>( PhysicalDeviceImagelessFramebufferFeatures const& ) const = default;
65802 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65803     bool operator==( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
65804     {
65805       return ( sType == rhs.sType )
65806           && ( pNext == rhs.pNext )
65807           && ( imagelessFramebuffer == rhs.imagelessFramebuffer );
65808     }
65809 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65810     bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
65811     {
65812       return !operator==( rhs );
65813     }
65814 #endif
65815 
65816 
65817 
65818   public:
65819     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
65820     void* pNext = {};
65821     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
65822 
65823   };
65824   static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeatures ) == sizeof( VkPhysicalDeviceImagelessFramebufferFeatures ), "struct and wrapper have different size!" );
65825   static_assert( std::is_standard_layout<PhysicalDeviceImagelessFramebufferFeatures>::value, "struct wrapper is not a standard layout!" );
65826 
65827   template <>
65828   struct CppType<StructureType, StructureType::ePhysicalDeviceImagelessFramebufferFeatures>
65829   {
65830     using Type = PhysicalDeviceImagelessFramebufferFeatures;
65831   };
65832   using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
65833 
65834   struct PhysicalDeviceIndexTypeUint8FeaturesEXT
65835   {
65836     static const bool allowDuplicate = false;
65837     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
65838 
65839 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65840     VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {}) VULKAN_HPP_NOEXCEPT
65841     : indexTypeUint8( indexTypeUint8_ )
65842     {}
65843 
65844     VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65845 
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65846     PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65847     {
65848       *this = rhs;
65849     }
65850 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65851 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65852     PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65853     {
65854       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT const *>( &rhs );
65855       return *this;
65856     }
65857 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65858     PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65859     {
65860       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) );
65861       return *this;
65862     }
65863 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65864     PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65865     {
65866       pNext = pNext_;
65867       return *this;
65868     }
65869 
setIndexTypeUint8VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65870     PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT
65871     {
65872       indexTypeUint8 = indexTypeUint8_;
65873       return *this;
65874     }
65875 
65876 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65877     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
65878     {
65879       return *reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
65880     }
65881 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65882     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT
65883     {
65884       return *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
65885     }
65886 
65887 
65888 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65889     auto operator<=>( PhysicalDeviceIndexTypeUint8FeaturesEXT const& ) const = default;
65890 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65891     bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65892     {
65893       return ( sType == rhs.sType )
65894           && ( pNext == rhs.pNext )
65895           && ( indexTypeUint8 == rhs.indexTypeUint8 );
65896     }
65897 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65898     bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65899     {
65900       return !operator==( rhs );
65901     }
65902 #endif
65903 
65904 
65905 
65906   public:
65907     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
65908     void* pNext = {};
65909     VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {};
65910 
65911   };
65912   static_assert( sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) == sizeof( VkPhysicalDeviceIndexTypeUint8FeaturesEXT ), "struct and wrapper have different size!" );
65913   static_assert( std::is_standard_layout<PhysicalDeviceIndexTypeUint8FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
65914 
65915   template <>
65916   struct CppType<StructureType, StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT>
65917   {
65918     using Type = PhysicalDeviceIndexTypeUint8FeaturesEXT;
65919   };
65920 
65921   struct PhysicalDeviceInlineUniformBlockFeaturesEXT
65922   {
65923     static const bool allowDuplicate = false;
65924     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
65925 
65926 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65927     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {}) VULKAN_HPP_NOEXCEPT
65928     : inlineUniformBlock( inlineUniformBlock_ ), descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
65929     {}
65930 
65931     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65932 
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65933     PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65934     {
65935       *this = rhs;
65936     }
65937 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65938 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65939     PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65940     {
65941       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT const *>( &rhs );
65942       return *this;
65943     }
65944 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65945     PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65946     {
65947       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) );
65948       return *this;
65949     }
65950 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65951     PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65952     {
65953       pNext = pNext_;
65954       return *this;
65955     }
65956 
setInlineUniformBlockVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65957     PhysicalDeviceInlineUniformBlockFeaturesEXT & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
65958     {
65959       inlineUniformBlock = inlineUniformBlock_;
65960       return *this;
65961     }
65962 
setDescriptorBindingInlineUniformBlockUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65963     PhysicalDeviceInlineUniformBlockFeaturesEXT & setDescriptorBindingInlineUniformBlockUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
65964     {
65965       descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
65966       return *this;
65967     }
65968 
65969 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65970     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
65971     {
65972       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
65973     }
65974 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65975     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
65976     {
65977       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
65978     }
65979 
65980 
65981 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65982     auto operator<=>( PhysicalDeviceInlineUniformBlockFeaturesEXT const& ) const = default;
65983 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65984     bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65985     {
65986       return ( sType == rhs.sType )
65987           && ( pNext == rhs.pNext )
65988           && ( inlineUniformBlock == rhs.inlineUniformBlock )
65989           && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind );
65990     }
65991 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65992     bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65993     {
65994       return !operator==( rhs );
65995     }
65996 #endif
65997 
65998 
65999 
66000   public:
66001     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
66002     void* pNext = {};
66003     VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {};
66004     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {};
66005 
66006   };
66007   static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "struct and wrapper have different size!" );
66008   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66009 
66010   template <>
66011   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT>
66012   {
66013     using Type = PhysicalDeviceInlineUniformBlockFeaturesEXT;
66014   };
66015 
66016   struct PhysicalDeviceInlineUniformBlockPropertiesEXT
66017   {
66018     static const bool allowDuplicate = false;
66019     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
66020 
66021 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66022     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT(uint32_t maxInlineUniformBlockSize_ = {}, uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {}) VULKAN_HPP_NOEXCEPT
66023     : maxInlineUniformBlockSize( maxInlineUniformBlockSize_ ), maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ ), maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ ), maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ ), maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
66024     {}
66025 
66026     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66027 
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66028     PhysicalDeviceInlineUniformBlockPropertiesEXT( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66029     {
66030       *this = rhs;
66031     }
66032 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66033 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66034     PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66035     {
66036       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT const *>( &rhs );
66037       return *this;
66038     }
66039 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66040     PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66041     {
66042       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) );
66043       return *this;
66044     }
66045 
66046 
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66047     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
66048     {
66049       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
66050     }
66051 
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66052     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &() VULKAN_HPP_NOEXCEPT
66053     {
66054       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
66055     }
66056 
66057 
66058 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66059     auto operator<=>( PhysicalDeviceInlineUniformBlockPropertiesEXT const& ) const = default;
66060 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66061     bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66062     {
66063       return ( sType == rhs.sType )
66064           && ( pNext == rhs.pNext )
66065           && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize )
66066           && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks )
66067           && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks )
66068           && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks )
66069           && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
66070     }
66071 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66072     bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66073     {
66074       return !operator==( rhs );
66075     }
66076 #endif
66077 
66078 
66079 
66080   public:
66081     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
66082     void* pNext = {};
66083     uint32_t maxInlineUniformBlockSize = {};
66084     uint32_t maxPerStageDescriptorInlineUniformBlocks = {};
66085     uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {};
66086     uint32_t maxDescriptorSetInlineUniformBlocks = {};
66087     uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {};
66088 
66089   };
66090   static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "struct and wrapper have different size!" );
66091   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
66092 
66093   template <>
66094   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT>
66095   {
66096     using Type = PhysicalDeviceInlineUniformBlockPropertiesEXT;
66097   };
66098 
66099   struct PhysicalDeviceLineRasterizationFeaturesEXT
66100   {
66101     static const bool allowDuplicate = false;
66102     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
66103 
66104 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66105     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
66106     : rectangularLines( rectangularLines_ ), bresenhamLines( bresenhamLines_ ), smoothLines( smoothLines_ ), stippledRectangularLines( stippledRectangularLines_ ), stippledBresenhamLines( stippledBresenhamLines_ ), stippledSmoothLines( stippledSmoothLines_ )
66107     {}
66108 
66109     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66110 
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66111     PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66112     {
66113       *this = rhs;
66114     }
66115 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66116 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66117     PhysicalDeviceLineRasterizationFeaturesEXT & operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66118     {
66119       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT const *>( &rhs );
66120       return *this;
66121     }
66122 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66123     PhysicalDeviceLineRasterizationFeaturesEXT & operator=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66124     {
66125       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) );
66126       return *this;
66127     }
66128 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66129     PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66130     {
66131       pNext = pNext_;
66132       return *this;
66133     }
66134 
setRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66135     PhysicalDeviceLineRasterizationFeaturesEXT & setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT
66136     {
66137       rectangularLines = rectangularLines_;
66138       return *this;
66139     }
66140 
setBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66141     PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT
66142     {
66143       bresenhamLines = bresenhamLines_;
66144       return *this;
66145     }
66146 
setSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66147     PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT
66148     {
66149       smoothLines = smoothLines_;
66150       return *this;
66151     }
66152 
setStippledRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66153     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT
66154     {
66155       stippledRectangularLines = stippledRectangularLines_;
66156       return *this;
66157     }
66158 
setStippledBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66159     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT
66160     {
66161       stippledBresenhamLines = stippledBresenhamLines_;
66162       return *this;
66163     }
66164 
setStippledSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66165     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT
66166     {
66167       stippledSmoothLines = stippledSmoothLines_;
66168       return *this;
66169     }
66170 
66171 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66172     operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66173     {
66174       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
66175     }
66176 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66177     operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66178     {
66179       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
66180     }
66181 
66182 
66183 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66184     auto operator<=>( PhysicalDeviceLineRasterizationFeaturesEXT const& ) const = default;
66185 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66186     bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66187     {
66188       return ( sType == rhs.sType )
66189           && ( pNext == rhs.pNext )
66190           && ( rectangularLines == rhs.rectangularLines )
66191           && ( bresenhamLines == rhs.bresenhamLines )
66192           && ( smoothLines == rhs.smoothLines )
66193           && ( stippledRectangularLines == rhs.stippledRectangularLines )
66194           && ( stippledBresenhamLines == rhs.stippledBresenhamLines )
66195           && ( stippledSmoothLines == rhs.stippledSmoothLines );
66196     }
66197 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66198     bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66199     {
66200       return !operator==( rhs );
66201     }
66202 #endif
66203 
66204 
66205 
66206   public:
66207     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
66208     void* pNext = {};
66209     VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {};
66210     VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {};
66211     VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {};
66212     VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {};
66213     VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {};
66214     VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {};
66215 
66216   };
66217   static_assert( sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationFeaturesEXT ), "struct and wrapper have different size!" );
66218   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66219 
66220   template <>
66221   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT>
66222   {
66223     using Type = PhysicalDeviceLineRasterizationFeaturesEXT;
66224   };
66225 
66226   struct PhysicalDeviceLineRasterizationPropertiesEXT
66227   {
66228     static const bool allowDuplicate = false;
66229     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
66230 
66231 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66232     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT(uint32_t lineSubPixelPrecisionBits_ = {}) VULKAN_HPP_NOEXCEPT
66233     : lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ )
66234     {}
66235 
66236     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66237 
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66238     PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66239     {
66240       *this = rhs;
66241     }
66242 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66243 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66244     PhysicalDeviceLineRasterizationPropertiesEXT & operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66245     {
66246       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT const *>( &rhs );
66247       return *this;
66248     }
66249 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66250     PhysicalDeviceLineRasterizationPropertiesEXT & operator=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66251     {
66252       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) );
66253       return *this;
66254     }
66255 
66256 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66257     operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
66258     {
66259       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
66260     }
66261 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66262     operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
66263     {
66264       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
66265     }
66266 
66267 
66268 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66269     auto operator<=>( PhysicalDeviceLineRasterizationPropertiesEXT const& ) const = default;
66270 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66271     bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66272     {
66273       return ( sType == rhs.sType )
66274           && ( pNext == rhs.pNext )
66275           && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits );
66276     }
66277 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66278     bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66279     {
66280       return !operator==( rhs );
66281     }
66282 #endif
66283 
66284 
66285 
66286   public:
66287     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
66288     void* pNext = {};
66289     uint32_t lineSubPixelPrecisionBits = {};
66290 
66291   };
66292   static_assert( sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
66293   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
66294 
66295   template <>
66296   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT>
66297   {
66298     using Type = PhysicalDeviceLineRasterizationPropertiesEXT;
66299   };
66300 
66301   struct PhysicalDeviceMaintenance3Properties
66302   {
66303     static const bool allowDuplicate = false;
66304     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance3Properties;
66305 
66306 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66307     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties(uint32_t maxPerSetDescriptors_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {}) VULKAN_HPP_NOEXCEPT
66308     : maxPerSetDescriptors( maxPerSetDescriptors_ ), maxMemoryAllocationSize( maxMemoryAllocationSize_ )
66309     {}
66310 
66311     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66312 
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66313     PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
66314     {
66315       *this = rhs;
66316     }
66317 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66318 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66319     PhysicalDeviceMaintenance3Properties & operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
66320     {
66321       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties const *>( &rhs );
66322       return *this;
66323     }
66324 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66325     PhysicalDeviceMaintenance3Properties & operator=( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
66326     {
66327       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMaintenance3Properties ) );
66328       return *this;
66329     }
66330 
66331 
operator VkPhysicalDeviceMaintenance3Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66332     operator VkPhysicalDeviceMaintenance3Properties const&() const VULKAN_HPP_NOEXCEPT
66333     {
66334       return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>( this );
66335     }
66336 
operator VkPhysicalDeviceMaintenance3Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66337     operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT
66338     {
66339       return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>( this );
66340     }
66341 
66342 
66343 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66344     auto operator<=>( PhysicalDeviceMaintenance3Properties const& ) const = default;
66345 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66346     bool operator==( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
66347     {
66348       return ( sType == rhs.sType )
66349           && ( pNext == rhs.pNext )
66350           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
66351           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
66352     }
66353 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66354     bool operator!=( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
66355     {
66356       return !operator==( rhs );
66357     }
66358 #endif
66359 
66360 
66361 
66362   public:
66363     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties;
66364     void* pNext = {};
66365     uint32_t maxPerSetDescriptors = {};
66366     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
66367 
66368   };
66369   static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), "struct and wrapper have different size!" );
66370   static_assert( std::is_standard_layout<PhysicalDeviceMaintenance3Properties>::value, "struct wrapper is not a standard layout!" );
66371 
66372   template <>
66373   struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance3Properties>
66374   {
66375     using Type = PhysicalDeviceMaintenance3Properties;
66376   };
66377   using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
66378 
66379   struct PhysicalDeviceMemoryBudgetPropertiesEXT
66380   {
66381     static const bool allowDuplicate = false;
66382     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
66383 
66384 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66385     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
66386     : heapBudget( heapBudget_ ), heapUsage( heapUsage_ )
66387     {}
66388 
66389     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66390 
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66391     PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66392     {
66393       *this = rhs;
66394     }
66395 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66396 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66397     PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66398     {
66399       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT const *>( &rhs );
66400       return *this;
66401     }
66402 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66403     PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66404     {
66405       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) );
66406       return *this;
66407     }
66408 
66409 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66410     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
66411     {
66412       return *reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
66413     }
66414 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66415     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT
66416     {
66417       return *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
66418     }
66419 
66420 
66421 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66422     auto operator<=>( PhysicalDeviceMemoryBudgetPropertiesEXT const& ) const = default;
66423 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66424     bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66425     {
66426       return ( sType == rhs.sType )
66427           && ( pNext == rhs.pNext )
66428           && ( heapBudget == rhs.heapBudget )
66429           && ( heapUsage == rhs.heapUsage );
66430     }
66431 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66432     bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66433     {
66434       return !operator==( rhs );
66435     }
66436 #endif
66437 
66438 
66439 
66440   public:
66441     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
66442     void* pNext = {};
66443     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapBudget = {};
66444     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapUsage = {};
66445 
66446   };
66447   static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), "struct and wrapper have different size!" );
66448   static_assert( std::is_standard_layout<PhysicalDeviceMemoryBudgetPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
66449 
66450   template <>
66451   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT>
66452   {
66453     using Type = PhysicalDeviceMemoryBudgetPropertiesEXT;
66454   };
66455 
66456   struct PhysicalDeviceMemoryPriorityFeaturesEXT
66457   {
66458     static const bool allowDuplicate = false;
66459     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
66460 
66461 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66462     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {}) VULKAN_HPP_NOEXCEPT
66463     : memoryPriority( memoryPriority_ )
66464     {}
66465 
66466     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66467 
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66468     PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66469     {
66470       *this = rhs;
66471     }
66472 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66473 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66474     PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66475     {
66476       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT const *>( &rhs );
66477       return *this;
66478     }
66479 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66480     PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66481     {
66482       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) );
66483       return *this;
66484     }
66485 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66486     PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66487     {
66488       pNext = pNext_;
66489       return *this;
66490     }
66491 
setMemoryPriorityVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66492     PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT
66493     {
66494       memoryPriority = memoryPriority_;
66495       return *this;
66496     }
66497 
66498 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66499     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66500     {
66501       return *reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
66502     }
66503 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66504     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66505     {
66506       return *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
66507     }
66508 
66509 
66510 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66511     auto operator<=>( PhysicalDeviceMemoryPriorityFeaturesEXT const& ) const = default;
66512 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66513     bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66514     {
66515       return ( sType == rhs.sType )
66516           && ( pNext == rhs.pNext )
66517           && ( memoryPriority == rhs.memoryPriority );
66518     }
66519 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66520     bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66521     {
66522       return !operator==( rhs );
66523     }
66524 #endif
66525 
66526 
66527 
66528   public:
66529     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
66530     void* pNext = {};
66531     VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {};
66532 
66533   };
66534   static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), "struct and wrapper have different size!" );
66535   static_assert( std::is_standard_layout<PhysicalDeviceMemoryPriorityFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66536 
66537   template <>
66538   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT>
66539   {
66540     using Type = PhysicalDeviceMemoryPriorityFeaturesEXT;
66541   };
66542 
66543   struct PhysicalDeviceMeshShaderFeaturesNV
66544   {
66545     static const bool allowDuplicate = false;
66546     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
66547 
66548 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66549     VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {}) VULKAN_HPP_NOEXCEPT
66550     : taskShader( taskShader_ ), meshShader( meshShader_ )
66551     {}
66552 
66553     VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66554 
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66555     PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66556     {
66557       *this = rhs;
66558     }
66559 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66560 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66561     PhysicalDeviceMeshShaderFeaturesNV & operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66562     {
66563       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV const *>( &rhs );
66564       return *this;
66565     }
66566 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66567     PhysicalDeviceMeshShaderFeaturesNV & operator=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66568     {
66569       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMeshShaderFeaturesNV ) );
66570       return *this;
66571     }
66572 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66573     PhysicalDeviceMeshShaderFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66574     {
66575       pNext = pNext_;
66576       return *this;
66577     }
66578 
setTaskShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66579     PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT
66580     {
66581       taskShader = taskShader_;
66582       return *this;
66583     }
66584 
setMeshShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66585     PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT
66586     {
66587       meshShader = meshShader_;
66588       return *this;
66589     }
66590 
66591 
operator VkPhysicalDeviceMeshShaderFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66592     operator VkPhysicalDeviceMeshShaderFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
66593     {
66594       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
66595     }
66596 
operator VkPhysicalDeviceMeshShaderFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66597     operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT
66598     {
66599       return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
66600     }
66601 
66602 
66603 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66604     auto operator<=>( PhysicalDeviceMeshShaderFeaturesNV const& ) const = default;
66605 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66606     bool operator==( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
66607     {
66608       return ( sType == rhs.sType )
66609           && ( pNext == rhs.pNext )
66610           && ( taskShader == rhs.taskShader )
66611           && ( meshShader == rhs.meshShader );
66612     }
66613 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66614     bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
66615     {
66616       return !operator==( rhs );
66617     }
66618 #endif
66619 
66620 
66621 
66622   public:
66623     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
66624     void* pNext = {};
66625     VULKAN_HPP_NAMESPACE::Bool32 taskShader = {};
66626     VULKAN_HPP_NAMESPACE::Bool32 meshShader = {};
66627 
66628   };
66629   static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "struct and wrapper have different size!" );
66630   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderFeaturesNV>::value, "struct wrapper is not a standard layout!" );
66631 
66632   template <>
66633   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderFeaturesNV>
66634   {
66635     using Type = PhysicalDeviceMeshShaderFeaturesNV;
66636   };
66637 
66638   struct PhysicalDeviceMeshShaderPropertiesNV
66639   {
66640     static const bool allowDuplicate = false;
66641     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
66642 
66643 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66644     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
66645     : 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_ )
66646     {}
66647 
66648     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66649 
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66650     PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66651     {
66652       *this = rhs;
66653     }
66654 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66655 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66656     PhysicalDeviceMeshShaderPropertiesNV & operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66657     {
66658       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV const *>( &rhs );
66659       return *this;
66660     }
66661 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66662     PhysicalDeviceMeshShaderPropertiesNV & operator=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66663     {
66664       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMeshShaderPropertiesNV ) );
66665       return *this;
66666     }
66667 
66668 
operator VkPhysicalDeviceMeshShaderPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66669     operator VkPhysicalDeviceMeshShaderPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
66670     {
66671       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
66672     }
66673 
operator VkPhysicalDeviceMeshShaderPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66674     operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT
66675     {
66676       return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
66677     }
66678 
66679 
66680 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66681     auto operator<=>( PhysicalDeviceMeshShaderPropertiesNV const& ) const = default;
66682 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66683     bool operator==( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
66684     {
66685       return ( sType == rhs.sType )
66686           && ( pNext == rhs.pNext )
66687           && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount )
66688           && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations )
66689           && ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize )
66690           && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize )
66691           && ( maxTaskOutputCount == rhs.maxTaskOutputCount )
66692           && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations )
66693           && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize )
66694           && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize )
66695           && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices )
66696           && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives )
66697           && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount )
66698           && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity )
66699           && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity );
66700     }
66701 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66702     bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
66703     {
66704       return !operator==( rhs );
66705     }
66706 #endif
66707 
66708 
66709 
66710   public:
66711     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
66712     void* pNext = {};
66713     uint32_t maxDrawMeshTasksCount = {};
66714     uint32_t maxTaskWorkGroupInvocations = {};
66715     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupSize = {};
66716     uint32_t maxTaskTotalMemorySize = {};
66717     uint32_t maxTaskOutputCount = {};
66718     uint32_t maxMeshWorkGroupInvocations = {};
66719     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupSize = {};
66720     uint32_t maxMeshTotalMemorySize = {};
66721     uint32_t maxMeshOutputVertices = {};
66722     uint32_t maxMeshOutputPrimitives = {};
66723     uint32_t maxMeshMultiviewViewCount = {};
66724     uint32_t meshOutputPerVertexGranularity = {};
66725     uint32_t meshOutputPerPrimitiveGranularity = {};
66726 
66727   };
66728   static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "struct and wrapper have different size!" );
66729   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderPropertiesNV>::value, "struct wrapper is not a standard layout!" );
66730 
66731   template <>
66732   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderPropertiesNV>
66733   {
66734     using Type = PhysicalDeviceMeshShaderPropertiesNV;
66735   };
66736 
66737   struct PhysicalDeviceMultiviewFeatures
66738   {
66739     static const bool allowDuplicate = false;
66740     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewFeatures;
66741 
66742 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66743     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures(VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}) VULKAN_HPP_NOEXCEPT
66744     : multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ )
66745     {}
66746 
66747     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66748 
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66749     PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66750     {
66751       *this = rhs;
66752     }
66753 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66754 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66755     PhysicalDeviceMultiviewFeatures & operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66756     {
66757       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures const *>( &rhs );
66758       return *this;
66759     }
66760 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66761     PhysicalDeviceMultiviewFeatures & operator=( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66762     {
66763       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMultiviewFeatures ) );
66764       return *this;
66765     }
66766 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66767     PhysicalDeviceMultiviewFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66768     {
66769       pNext = pNext_;
66770       return *this;
66771     }
66772 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66773     PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
66774     {
66775       multiview = multiview_;
66776       return *this;
66777     }
66778 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66779     PhysicalDeviceMultiviewFeatures & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
66780     {
66781       multiviewGeometryShader = multiviewGeometryShader_;
66782       return *this;
66783     }
66784 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66785     PhysicalDeviceMultiviewFeatures & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
66786     {
66787       multiviewTessellationShader = multiviewTessellationShader_;
66788       return *this;
66789     }
66790 
66791 
operator VkPhysicalDeviceMultiviewFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66792     operator VkPhysicalDeviceMultiviewFeatures const&() const VULKAN_HPP_NOEXCEPT
66793     {
66794       return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>( this );
66795     }
66796 
operator VkPhysicalDeviceMultiviewFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66797     operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT
66798     {
66799       return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>( this );
66800     }
66801 
66802 
66803 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66804     auto operator<=>( PhysicalDeviceMultiviewFeatures const& ) const = default;
66805 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66806     bool operator==( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
66807     {
66808       return ( sType == rhs.sType )
66809           && ( pNext == rhs.pNext )
66810           && ( multiview == rhs.multiview )
66811           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
66812           && ( multiviewTessellationShader == rhs.multiviewTessellationShader );
66813     }
66814 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66815     bool operator!=( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
66816     {
66817       return !operator==( rhs );
66818     }
66819 #endif
66820 
66821 
66822 
66823   public:
66824     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures;
66825     void* pNext = {};
66826     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
66827     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
66828     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
66829 
66830   };
66831   static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), "struct and wrapper have different size!" );
66832   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewFeatures>::value, "struct wrapper is not a standard layout!" );
66833 
66834   template <>
66835   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewFeatures>
66836   {
66837     using Type = PhysicalDeviceMultiviewFeatures;
66838   };
66839   using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
66840 
66841   struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
66842   {
66843     static const bool allowDuplicate = false;
66844     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
66845 
66846 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66847     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {}) VULKAN_HPP_NOEXCEPT
66848     : perViewPositionAllComponents( perViewPositionAllComponents_ )
66849     {}
66850 
66851     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66852 
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66853     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
66854     {
66855       *this = rhs;
66856     }
66857 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66858 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66859     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
66860     {
66861       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>( &rhs );
66862       return *this;
66863     }
66864 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66865     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
66866     {
66867       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) );
66868       return *this;
66869     }
66870 
66871 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66872     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT
66873     {
66874       return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
66875     }
66876 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66877     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT
66878     {
66879       return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
66880     }
66881 
66882 
66883 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66884     auto operator<=>( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& ) const = default;
66885 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66886     bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
66887     {
66888       return ( sType == rhs.sType )
66889           && ( pNext == rhs.pNext )
66890           && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents );
66891     }
66892 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66893     bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
66894     {
66895       return !operator==( rhs );
66896     }
66897 #endif
66898 
66899 
66900 
66901   public:
66902     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
66903     void* pNext = {};
66904     VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {};
66905 
66906   };
66907   static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), "struct and wrapper have different size!" );
66908   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>::value, "struct wrapper is not a standard layout!" );
66909 
66910   template <>
66911   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>
66912   {
66913     using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
66914   };
66915 
66916   struct PhysicalDeviceMultiviewProperties
66917   {
66918     static const bool allowDuplicate = false;
66919     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewProperties;
66920 
66921 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66922     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties(uint32_t maxMultiviewViewCount_ = {}, uint32_t maxMultiviewInstanceIndex_ = {}) VULKAN_HPP_NOEXCEPT
66923     : maxMultiviewViewCount( maxMultiviewViewCount_ ), maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
66924     {}
66925 
66926     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66927 
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66928     PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66929     {
66930       *this = rhs;
66931     }
66932 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66933 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66934     PhysicalDeviceMultiviewProperties & operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66935     {
66936       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties const *>( &rhs );
66937       return *this;
66938     }
66939 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66940     PhysicalDeviceMultiviewProperties & operator=( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66941     {
66942       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMultiviewProperties ) );
66943       return *this;
66944     }
66945 
66946 
operator VkPhysicalDeviceMultiviewProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66947     operator VkPhysicalDeviceMultiviewProperties const&() const VULKAN_HPP_NOEXCEPT
66948     {
66949       return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>( this );
66950     }
66951 
operator VkPhysicalDeviceMultiviewProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66952     operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT
66953     {
66954       return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>( this );
66955     }
66956 
66957 
66958 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66959     auto operator<=>( PhysicalDeviceMultiviewProperties const& ) const = default;
66960 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66961     bool operator==( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66962     {
66963       return ( sType == rhs.sType )
66964           && ( pNext == rhs.pNext )
66965           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
66966           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex );
66967     }
66968 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66969     bool operator!=( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66970     {
66971       return !operator==( rhs );
66972     }
66973 #endif
66974 
66975 
66976 
66977   public:
66978     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties;
66979     void* pNext = {};
66980     uint32_t maxMultiviewViewCount = {};
66981     uint32_t maxMultiviewInstanceIndex = {};
66982 
66983   };
66984   static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), "struct and wrapper have different size!" );
66985   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewProperties>::value, "struct wrapper is not a standard layout!" );
66986 
66987   template <>
66988   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewProperties>
66989   {
66990     using Type = PhysicalDeviceMultiviewProperties;
66991   };
66992   using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
66993 
66994   struct PhysicalDevicePCIBusInfoPropertiesEXT
66995   {
66996     static const bool allowDuplicate = false;
66997     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
66998 
66999 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67000     VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT(uint32_t pciDomain_ = {}, uint32_t pciBus_ = {}, uint32_t pciDevice_ = {}, uint32_t pciFunction_ = {}) VULKAN_HPP_NOEXCEPT
67001     : pciDomain( pciDomain_ ), pciBus( pciBus_ ), pciDevice( pciDevice_ ), pciFunction( pciFunction_ )
67002     {}
67003 
67004     VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67005 
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67006     PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67007     {
67008       *this = rhs;
67009     }
67010 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67011 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67012     PhysicalDevicePCIBusInfoPropertiesEXT & operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67013     {
67014       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT const *>( &rhs );
67015       return *this;
67016     }
67017 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67018     PhysicalDevicePCIBusInfoPropertiesEXT & operator=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67019     {
67020       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) );
67021       return *this;
67022     }
67023 
67024 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67025     operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
67026     {
67027       return *reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
67028     }
67029 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67030     operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT
67031     {
67032       return *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
67033     }
67034 
67035 
67036 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67037     auto operator<=>( PhysicalDevicePCIBusInfoPropertiesEXT const& ) const = default;
67038 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67039     bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67040     {
67041       return ( sType == rhs.sType )
67042           && ( pNext == rhs.pNext )
67043           && ( pciDomain == rhs.pciDomain )
67044           && ( pciBus == rhs.pciBus )
67045           && ( pciDevice == rhs.pciDevice )
67046           && ( pciFunction == rhs.pciFunction );
67047     }
67048 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67049     bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67050     {
67051       return !operator==( rhs );
67052     }
67053 #endif
67054 
67055 
67056 
67057   public:
67058     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
67059     void* pNext = {};
67060     uint32_t pciDomain = {};
67061     uint32_t pciBus = {};
67062     uint32_t pciDevice = {};
67063     uint32_t pciFunction = {};
67064 
67065   };
67066   static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), "struct and wrapper have different size!" );
67067   static_assert( std::is_standard_layout<PhysicalDevicePCIBusInfoPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
67068 
67069   template <>
67070   struct CppType<StructureType, StructureType::ePhysicalDevicePciBusInfoPropertiesEXT>
67071   {
67072     using Type = PhysicalDevicePCIBusInfoPropertiesEXT;
67073   };
67074 
67075   struct PhysicalDevicePerformanceQueryFeaturesKHR
67076   {
67077     static const bool allowDuplicate = false;
67078     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
67079 
67080 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67081     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {}) VULKAN_HPP_NOEXCEPT
67082     : performanceCounterQueryPools( performanceCounterQueryPools_ ), performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ )
67083     {}
67084 
67085     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67086 
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67087     PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67088     {
67089       *this = rhs;
67090     }
67091 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67092 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67093     PhysicalDevicePerformanceQueryFeaturesKHR & operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67094     {
67095       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR const *>( &rhs );
67096       return *this;
67097     }
67098 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67099     PhysicalDevicePerformanceQueryFeaturesKHR & operator=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67100     {
67101       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) );
67102       return *this;
67103     }
67104 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67105     PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67106     {
67107       pNext = pNext_;
67108       return *this;
67109     }
67110 
setPerformanceCounterQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67111     PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT
67112     {
67113       performanceCounterQueryPools = performanceCounterQueryPools_;
67114       return *this;
67115     }
67116 
setPerformanceCounterMultipleQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67117     PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT
67118     {
67119       performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_;
67120       return *this;
67121     }
67122 
67123 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67124     operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
67125     {
67126       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
67127     }
67128 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67129     operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
67130     {
67131       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
67132     }
67133 
67134 
67135 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67136     auto operator<=>( PhysicalDevicePerformanceQueryFeaturesKHR const& ) const = default;
67137 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67138     bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67139     {
67140       return ( sType == rhs.sType )
67141           && ( pNext == rhs.pNext )
67142           && ( performanceCounterQueryPools == rhs.performanceCounterQueryPools )
67143           && ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools );
67144     }
67145 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67146     bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67147     {
67148       return !operator==( rhs );
67149     }
67150 #endif
67151 
67152 
67153 
67154   public:
67155     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
67156     void* pNext = {};
67157     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {};
67158     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {};
67159 
67160   };
67161   static_assert( sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryFeaturesKHR ), "struct and wrapper have different size!" );
67162   static_assert( std::is_standard_layout<PhysicalDevicePerformanceQueryFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
67163 
67164   template <>
67165   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR>
67166   {
67167     using Type = PhysicalDevicePerformanceQueryFeaturesKHR;
67168   };
67169 
67170   struct PhysicalDevicePerformanceQueryPropertiesKHR
67171   {
67172     static const bool allowDuplicate = false;
67173     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
67174 
67175 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67176     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR(VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {}) VULKAN_HPP_NOEXCEPT
67177     : allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ )
67178     {}
67179 
67180     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67181 
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67182     PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67183     {
67184       *this = rhs;
67185     }
67186 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67187 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67188     PhysicalDevicePerformanceQueryPropertiesKHR & operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67189     {
67190       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR const *>( &rhs );
67191       return *this;
67192     }
67193 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67194     PhysicalDevicePerformanceQueryPropertiesKHR & operator=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67195     {
67196       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) );
67197       return *this;
67198     }
67199 
67200 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67201     operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
67202     {
67203       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
67204     }
67205 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67206     operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT
67207     {
67208       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
67209     }
67210 
67211 
67212 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67213     auto operator<=>( PhysicalDevicePerformanceQueryPropertiesKHR const& ) const = default;
67214 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67215     bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67216     {
67217       return ( sType == rhs.sType )
67218           && ( pNext == rhs.pNext )
67219           && ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies );
67220     }
67221 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67222     bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67223     {
67224       return !operator==( rhs );
67225     }
67226 #endif
67227 
67228 
67229 
67230   public:
67231     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
67232     void* pNext = {};
67233     VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {};
67234 
67235   };
67236   static_assert( sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryPropertiesKHR ), "struct and wrapper have different size!" );
67237   static_assert( std::is_standard_layout<PhysicalDevicePerformanceQueryPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
67238 
67239   template <>
67240   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR>
67241   {
67242     using Type = PhysicalDevicePerformanceQueryPropertiesKHR;
67243   };
67244 
67245   struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT
67246   {
67247     static const bool allowDuplicate = false;
67248     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT;
67249 
67250 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineCreationCacheControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67251     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {}) VULKAN_HPP_NOEXCEPT
67252     : pipelineCreationCacheControl( pipelineCreationCacheControl_ )
67253     {}
67254 
67255     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67256 
PhysicalDevicePipelineCreationCacheControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67257     PhysicalDevicePipelineCreationCacheControlFeaturesEXT( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67258     {
67259       *this = rhs;
67260     }
67261 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67262 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67263     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67264     {
67265       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT const *>( &rhs );
67266       return *this;
67267     }
67268 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67269     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67270     {
67271       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) );
67272       return *this;
67273     }
67274 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67275     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67276     {
67277       pNext = pNext_;
67278       return *this;
67279     }
67280 
setPipelineCreationCacheControlVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67281     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
67282     {
67283       pipelineCreationCacheControl = pipelineCreationCacheControl_;
67284       return *this;
67285     }
67286 
67287 
operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67288     operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
67289     {
67290       return *reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>( this );
67291     }
67292 
operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67293     operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
67294     {
67295       return *reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>( this );
67296     }
67297 
67298 
67299 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67300     auto operator<=>( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& ) const = default;
67301 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67302     bool operator==( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67303     {
67304       return ( sType == rhs.sType )
67305           && ( pNext == rhs.pNext )
67306           && ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl );
67307     }
67308 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67309     bool operator!=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67310     {
67311       return !operator==( rhs );
67312     }
67313 #endif
67314 
67315 
67316 
67317   public:
67318     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT;
67319     void* pNext = {};
67320     VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {};
67321 
67322   };
67323   static_assert( sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) == sizeof( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT ), "struct and wrapper have different size!" );
67324   static_assert( std::is_standard_layout<PhysicalDevicePipelineCreationCacheControlFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
67325 
67326   template <>
67327   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT>
67328   {
67329     using Type = PhysicalDevicePipelineCreationCacheControlFeaturesEXT;
67330   };
67331 
67332   struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
67333   {
67334     static const bool allowDuplicate = false;
67335     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
67336 
67337 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67338     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {}) VULKAN_HPP_NOEXCEPT
67339     : pipelineExecutableInfo( pipelineExecutableInfo_ )
67340     {}
67341 
67342     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67343 
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67344     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67345     {
67346       *this = rhs;
67347     }
67348 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67349 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67350     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67351     {
67352       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>( &rhs );
67353       return *this;
67354     }
67355 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67356     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67357     {
67358       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) );
67359       return *this;
67360     }
67361 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67362     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67363     {
67364       pNext = pNext_;
67365       return *this;
67366     }
67367 
setPipelineExecutableInfoVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67368     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT
67369     {
67370       pipelineExecutableInfo = pipelineExecutableInfo_;
67371       return *this;
67372     }
67373 
67374 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67375     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
67376     {
67377       return *reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
67378     }
67379 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67380     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT
67381     {
67382       return *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
67383     }
67384 
67385 
67386 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67387     auto operator<=>( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& ) const = default;
67388 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67389     bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67390     {
67391       return ( sType == rhs.sType )
67392           && ( pNext == rhs.pNext )
67393           && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo );
67394     }
67395 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67396     bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67397     {
67398       return !operator==( rhs );
67399     }
67400 #endif
67401 
67402 
67403 
67404   public:
67405     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
67406     void* pNext = {};
67407     VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {};
67408 
67409   };
67410   static_assert( sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) == sizeof( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR ), "struct and wrapper have different size!" );
67411   static_assert( std::is_standard_layout<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
67412 
67413   template <>
67414   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR>
67415   {
67416     using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
67417   };
67418 
67419   struct PhysicalDevicePointClippingProperties
67420   {
67421     static const bool allowDuplicate = false;
67422     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePointClippingProperties;
67423 
67424 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67425     VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties(VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes) VULKAN_HPP_NOEXCEPT
67426     : pointClippingBehavior( pointClippingBehavior_ )
67427     {}
67428 
67429     VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67430 
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67431     PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67432     {
67433       *this = rhs;
67434     }
67435 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67436 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67437     PhysicalDevicePointClippingProperties & operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67438     {
67439       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties const *>( &rhs );
67440       return *this;
67441     }
67442 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67443     PhysicalDevicePointClippingProperties & operator=( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67444     {
67445       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePointClippingProperties ) );
67446       return *this;
67447     }
67448 
67449 
operator VkPhysicalDevicePointClippingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67450     operator VkPhysicalDevicePointClippingProperties const&() const VULKAN_HPP_NOEXCEPT
67451     {
67452       return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>( this );
67453     }
67454 
operator VkPhysicalDevicePointClippingProperties&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67455     operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT
67456     {
67457       return *reinterpret_cast<VkPhysicalDevicePointClippingProperties*>( this );
67458     }
67459 
67460 
67461 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67462     auto operator<=>( PhysicalDevicePointClippingProperties const& ) const = default;
67463 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67464     bool operator==( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
67465     {
67466       return ( sType == rhs.sType )
67467           && ( pNext == rhs.pNext )
67468           && ( pointClippingBehavior == rhs.pointClippingBehavior );
67469     }
67470 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67471     bool operator!=( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
67472     {
67473       return !operator==( rhs );
67474     }
67475 #endif
67476 
67477 
67478 
67479   public:
67480     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties;
67481     void* pNext = {};
67482     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
67483 
67484   };
67485   static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), "struct and wrapper have different size!" );
67486   static_assert( std::is_standard_layout<PhysicalDevicePointClippingProperties>::value, "struct wrapper is not a standard layout!" );
67487 
67488   template <>
67489   struct CppType<StructureType, StructureType::ePhysicalDevicePointClippingProperties>
67490   {
67491     using Type = PhysicalDevicePointClippingProperties;
67492   };
67493   using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
67494 
67495 #ifdef VK_ENABLE_BETA_EXTENSIONS
67496   struct PhysicalDevicePortabilitySubsetFeaturesKHR
67497   {
67498     static const bool allowDuplicate = false;
67499     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
67500 
67501 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePortabilitySubsetFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67502     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
67503     : 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_ )
67504     {}
67505 
67506     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67507 
PhysicalDevicePortabilitySubsetFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67508     PhysicalDevicePortabilitySubsetFeaturesKHR( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67509     {
67510       *this = rhs;
67511     }
67512 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67513 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67514     PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67515     {
67516       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR const *>( &rhs );
67517       return *this;
67518     }
67519 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67520     PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67521     {
67522       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePortabilitySubsetFeaturesKHR ) );
67523       return *this;
67524     }
67525 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67526     PhysicalDevicePortabilitySubsetFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67527     {
67528       pNext = pNext_;
67529       return *this;
67530     }
67531 
setConstantAlphaColorBlendFactorsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67532     PhysicalDevicePortabilitySubsetFeaturesKHR & setConstantAlphaColorBlendFactors( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT
67533     {
67534       constantAlphaColorBlendFactors = constantAlphaColorBlendFactors_;
67535       return *this;
67536     }
67537 
setEventsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67538     PhysicalDevicePortabilitySubsetFeaturesKHR & setEvents( VULKAN_HPP_NAMESPACE::Bool32 events_ ) VULKAN_HPP_NOEXCEPT
67539     {
67540       events = events_;
67541       return *this;
67542     }
67543 
setImageViewFormatReinterpretationVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67544     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatReinterpretation( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT
67545     {
67546       imageViewFormatReinterpretation = imageViewFormatReinterpretation_;
67547       return *this;
67548     }
67549 
setImageViewFormatSwizzleVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67550     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT
67551     {
67552       imageViewFormatSwizzle = imageViewFormatSwizzle_;
67553       return *this;
67554     }
67555 
setImageView2DOn3DImageVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67556     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT
67557     {
67558       imageView2DOn3DImage = imageView2DOn3DImage_;
67559       return *this;
67560     }
67561 
setMultisampleArrayImageVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67562     PhysicalDevicePortabilitySubsetFeaturesKHR & setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT
67563     {
67564       multisampleArrayImage = multisampleArrayImage_;
67565       return *this;
67566     }
67567 
setMutableComparisonSamplersVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67568     PhysicalDevicePortabilitySubsetFeaturesKHR & setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT
67569     {
67570       mutableComparisonSamplers = mutableComparisonSamplers_;
67571       return *this;
67572     }
67573 
setPointPolygonsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67574     PhysicalDevicePortabilitySubsetFeaturesKHR & setPointPolygons( VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ ) VULKAN_HPP_NOEXCEPT
67575     {
67576       pointPolygons = pointPolygons_;
67577       return *this;
67578     }
67579 
setSamplerMipLodBiasVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67580     PhysicalDevicePortabilitySubsetFeaturesKHR & setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT
67581     {
67582       samplerMipLodBias = samplerMipLodBias_;
67583       return *this;
67584     }
67585 
setSeparateStencilMaskRefVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67586     PhysicalDevicePortabilitySubsetFeaturesKHR & setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT
67587     {
67588       separateStencilMaskRef = separateStencilMaskRef_;
67589       return *this;
67590     }
67591 
setShaderSampleRateInterpolationFunctionsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67592     PhysicalDevicePortabilitySubsetFeaturesKHR & setShaderSampleRateInterpolationFunctions( VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ ) VULKAN_HPP_NOEXCEPT
67593     {
67594       shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions_;
67595       return *this;
67596     }
67597 
setTessellationIsolinesVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67598     PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT
67599     {
67600       tessellationIsolines = tessellationIsolines_;
67601       return *this;
67602     }
67603 
setTessellationPointModeVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67604     PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT
67605     {
67606       tessellationPointMode = tessellationPointMode_;
67607       return *this;
67608     }
67609 
setTriangleFansVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67610     PhysicalDevicePortabilitySubsetFeaturesKHR & setTriangleFans( VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ ) VULKAN_HPP_NOEXCEPT
67611     {
67612       triangleFans = triangleFans_;
67613       return *this;
67614     }
67615 
setVertexAttributeAccessBeyondStrideVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67616     PhysicalDevicePortabilitySubsetFeaturesKHR & setVertexAttributeAccessBeyondStride( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT
67617     {
67618       vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_;
67619       return *this;
67620     }
67621 
67622 
operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67623     operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
67624     {
67625       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>( this );
67626     }
67627 
operator VkPhysicalDevicePortabilitySubsetFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67628     operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT
67629     {
67630       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>( this );
67631     }
67632 
67633 
67634 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67635     auto operator<=>( PhysicalDevicePortabilitySubsetFeaturesKHR const& ) const = default;
67636 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67637     bool operator==( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67638     {
67639       return ( sType == rhs.sType )
67640           && ( pNext == rhs.pNext )
67641           && ( constantAlphaColorBlendFactors == rhs.constantAlphaColorBlendFactors )
67642           && ( events == rhs.events )
67643           && ( imageViewFormatReinterpretation == rhs.imageViewFormatReinterpretation )
67644           && ( imageViewFormatSwizzle == rhs.imageViewFormatSwizzle )
67645           && ( imageView2DOn3DImage == rhs.imageView2DOn3DImage )
67646           && ( multisampleArrayImage == rhs.multisampleArrayImage )
67647           && ( mutableComparisonSamplers == rhs.mutableComparisonSamplers )
67648           && ( pointPolygons == rhs.pointPolygons )
67649           && ( samplerMipLodBias == rhs.samplerMipLodBias )
67650           && ( separateStencilMaskRef == rhs.separateStencilMaskRef )
67651           && ( shaderSampleRateInterpolationFunctions == rhs.shaderSampleRateInterpolationFunctions )
67652           && ( tessellationIsolines == rhs.tessellationIsolines )
67653           && ( tessellationPointMode == rhs.tessellationPointMode )
67654           && ( triangleFans == rhs.triangleFans )
67655           && ( vertexAttributeAccessBeyondStride == rhs.vertexAttributeAccessBeyondStride );
67656     }
67657 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67658     bool operator!=( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67659     {
67660       return !operator==( rhs );
67661     }
67662 #endif
67663 
67664 
67665 
67666   public:
67667     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
67668     void* pNext = {};
67669     VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors = {};
67670     VULKAN_HPP_NAMESPACE::Bool32 events = {};
67671     VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation = {};
67672     VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle = {};
67673     VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage = {};
67674     VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage = {};
67675     VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers = {};
67676     VULKAN_HPP_NAMESPACE::Bool32 pointPolygons = {};
67677     VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias = {};
67678     VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef = {};
67679     VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions = {};
67680     VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines = {};
67681     VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode = {};
67682     VULKAN_HPP_NAMESPACE::Bool32 triangleFans = {};
67683     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride = {};
67684 
67685   };
67686   static_assert( sizeof( PhysicalDevicePortabilitySubsetFeaturesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetFeaturesKHR ), "struct and wrapper have different size!" );
67687   static_assert( std::is_standard_layout<PhysicalDevicePortabilitySubsetFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
67688 
67689   template <>
67690   struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR>
67691   {
67692     using Type = PhysicalDevicePortabilitySubsetFeaturesKHR;
67693   };
67694 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
67695 
67696 #ifdef VK_ENABLE_BETA_EXTENSIONS
67697   struct PhysicalDevicePortabilitySubsetPropertiesKHR
67698   {
67699     static const bool allowDuplicate = false;
67700     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
67701 
67702 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePortabilitySubsetPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67703     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR(uint32_t minVertexInputBindingStrideAlignment_ = {}) VULKAN_HPP_NOEXCEPT
67704     : minVertexInputBindingStrideAlignment( minVertexInputBindingStrideAlignment_ )
67705     {}
67706 
67707     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67708 
PhysicalDevicePortabilitySubsetPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67709     PhysicalDevicePortabilitySubsetPropertiesKHR( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67710     {
67711       *this = rhs;
67712     }
67713 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67714 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67715     PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67716     {
67717       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR const *>( &rhs );
67718       return *this;
67719     }
67720 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67721     PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67722     {
67723       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePortabilitySubsetPropertiesKHR ) );
67724       return *this;
67725     }
67726 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67727     PhysicalDevicePortabilitySubsetPropertiesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67728     {
67729       pNext = pNext_;
67730       return *this;
67731     }
67732 
setMinVertexInputBindingStrideAlignmentVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67733     PhysicalDevicePortabilitySubsetPropertiesKHR & setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT
67734     {
67735       minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_;
67736       return *this;
67737     }
67738 
67739 
operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67740     operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
67741     {
67742       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>( this );
67743     }
67744 
operator VkPhysicalDevicePortabilitySubsetPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67745     operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT
67746     {
67747       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>( this );
67748     }
67749 
67750 
67751 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67752     auto operator<=>( PhysicalDevicePortabilitySubsetPropertiesKHR const& ) const = default;
67753 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67754     bool operator==( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67755     {
67756       return ( sType == rhs.sType )
67757           && ( pNext == rhs.pNext )
67758           && ( minVertexInputBindingStrideAlignment == rhs.minVertexInputBindingStrideAlignment );
67759     }
67760 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67761     bool operator!=( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67762     {
67763       return !operator==( rhs );
67764     }
67765 #endif
67766 
67767 
67768 
67769   public:
67770     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
67771     void* pNext = {};
67772     uint32_t minVertexInputBindingStrideAlignment = {};
67773 
67774   };
67775   static_assert( sizeof( PhysicalDevicePortabilitySubsetPropertiesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetPropertiesKHR ), "struct and wrapper have different size!" );
67776   static_assert( std::is_standard_layout<PhysicalDevicePortabilitySubsetPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
67777 
67778   template <>
67779   struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR>
67780   {
67781     using Type = PhysicalDevicePortabilitySubsetPropertiesKHR;
67782   };
67783 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
67784 
67785   struct PhysicalDevicePrivateDataFeaturesEXT
67786   {
67787     static const bool allowDuplicate = false;
67788     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT;
67789 
67790 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePrivateDataFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67791     VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {}) VULKAN_HPP_NOEXCEPT
67792     : privateData( privateData_ )
67793     {}
67794 
67795     VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67796 
PhysicalDevicePrivateDataFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67797     PhysicalDevicePrivateDataFeaturesEXT( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67798     {
67799       *this = rhs;
67800     }
67801 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67802 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67803     PhysicalDevicePrivateDataFeaturesEXT & operator=( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67804     {
67805       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT const *>( &rhs );
67806       return *this;
67807     }
67808 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67809     PhysicalDevicePrivateDataFeaturesEXT & operator=( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67810     {
67811       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePrivateDataFeaturesEXT ) );
67812       return *this;
67813     }
67814 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67815     PhysicalDevicePrivateDataFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67816     {
67817       pNext = pNext_;
67818       return *this;
67819     }
67820 
setPrivateDataVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67821     PhysicalDevicePrivateDataFeaturesEXT & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT
67822     {
67823       privateData = privateData_;
67824       return *this;
67825     }
67826 
67827 
operator VkPhysicalDevicePrivateDataFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67828     operator VkPhysicalDevicePrivateDataFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
67829     {
67830       return *reinterpret_cast<const VkPhysicalDevicePrivateDataFeaturesEXT*>( this );
67831     }
67832 
operator VkPhysicalDevicePrivateDataFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67833     operator VkPhysicalDevicePrivateDataFeaturesEXT &() VULKAN_HPP_NOEXCEPT
67834     {
67835       return *reinterpret_cast<VkPhysicalDevicePrivateDataFeaturesEXT*>( this );
67836     }
67837 
67838 
67839 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67840     auto operator<=>( PhysicalDevicePrivateDataFeaturesEXT const& ) const = default;
67841 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67842     bool operator==( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67843     {
67844       return ( sType == rhs.sType )
67845           && ( pNext == rhs.pNext )
67846           && ( privateData == rhs.privateData );
67847     }
67848 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67849     bool operator!=( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67850     {
67851       return !operator==( rhs );
67852     }
67853 #endif
67854 
67855 
67856 
67857   public:
67858     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT;
67859     void* pNext = {};
67860     VULKAN_HPP_NAMESPACE::Bool32 privateData = {};
67861 
67862   };
67863   static_assert( sizeof( PhysicalDevicePrivateDataFeaturesEXT ) == sizeof( VkPhysicalDevicePrivateDataFeaturesEXT ), "struct and wrapper have different size!" );
67864   static_assert( std::is_standard_layout<PhysicalDevicePrivateDataFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
67865 
67866   template <>
67867   struct CppType<StructureType, StructureType::ePhysicalDevicePrivateDataFeaturesEXT>
67868   {
67869     using Type = PhysicalDevicePrivateDataFeaturesEXT;
67870   };
67871 
67872   struct PhysicalDeviceProtectedMemoryFeatures
67873   {
67874     static const bool allowDuplicate = false;
67875     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
67876 
67877 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67878     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures(VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}) VULKAN_HPP_NOEXCEPT
67879     : protectedMemory( protectedMemory_ )
67880     {}
67881 
67882     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67883 
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67884     PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67885     {
67886       *this = rhs;
67887     }
67888 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67889 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67890     PhysicalDeviceProtectedMemoryFeatures & operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67891     {
67892       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures const *>( &rhs );
67893       return *this;
67894     }
67895 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67896     PhysicalDeviceProtectedMemoryFeatures & operator=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67897     {
67898       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProtectedMemoryFeatures ) );
67899       return *this;
67900     }
67901 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67902     PhysicalDeviceProtectedMemoryFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67903     {
67904       pNext = pNext_;
67905       return *this;
67906     }
67907 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67908     PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
67909     {
67910       protectedMemory = protectedMemory_;
67911       return *this;
67912     }
67913 
67914 
operator VkPhysicalDeviceProtectedMemoryFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67915     operator VkPhysicalDeviceProtectedMemoryFeatures const&() const VULKAN_HPP_NOEXCEPT
67916     {
67917       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>( this );
67918     }
67919 
operator VkPhysicalDeviceProtectedMemoryFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67920     operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT
67921     {
67922       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>( this );
67923     }
67924 
67925 
67926 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67927     auto operator<=>( PhysicalDeviceProtectedMemoryFeatures const& ) const = default;
67928 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67929     bool operator==( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
67930     {
67931       return ( sType == rhs.sType )
67932           && ( pNext == rhs.pNext )
67933           && ( protectedMemory == rhs.protectedMemory );
67934     }
67935 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67936     bool operator!=( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
67937     {
67938       return !operator==( rhs );
67939     }
67940 #endif
67941 
67942 
67943 
67944   public:
67945     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
67946     void* pNext = {};
67947     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
67948 
67949   };
67950   static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), "struct and wrapper have different size!" );
67951   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryFeatures>::value, "struct wrapper is not a standard layout!" );
67952 
67953   template <>
67954   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryFeatures>
67955   {
67956     using Type = PhysicalDeviceProtectedMemoryFeatures;
67957   };
67958 
67959   struct PhysicalDeviceProtectedMemoryProperties
67960   {
67961     static const bool allowDuplicate = false;
67962     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
67963 
67964 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67965     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties(VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}) VULKAN_HPP_NOEXCEPT
67966     : protectedNoFault( protectedNoFault_ )
67967     {}
67968 
67969     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67970 
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67971     PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67972     {
67973       *this = rhs;
67974     }
67975 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67976 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67977     PhysicalDeviceProtectedMemoryProperties & operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67978     {
67979       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties const *>( &rhs );
67980       return *this;
67981     }
67982 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67983     PhysicalDeviceProtectedMemoryProperties & operator=( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67984     {
67985       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProtectedMemoryProperties ) );
67986       return *this;
67987     }
67988 
67989 
operator VkPhysicalDeviceProtectedMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67990     operator VkPhysicalDeviceProtectedMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
67991     {
67992       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>( this );
67993     }
67994 
operator VkPhysicalDeviceProtectedMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67995     operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT
67996     {
67997       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>( this );
67998     }
67999 
68000 
68001 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68002     auto operator<=>( PhysicalDeviceProtectedMemoryProperties const& ) const = default;
68003 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68004     bool operator==( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68005     {
68006       return ( sType == rhs.sType )
68007           && ( pNext == rhs.pNext )
68008           && ( protectedNoFault == rhs.protectedNoFault );
68009     }
68010 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68011     bool operator!=( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68012     {
68013       return !operator==( rhs );
68014     }
68015 #endif
68016 
68017 
68018 
68019   public:
68020     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
68021     void* pNext = {};
68022     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
68023 
68024   };
68025   static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == sizeof( VkPhysicalDeviceProtectedMemoryProperties ), "struct and wrapper have different size!" );
68026   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryProperties>::value, "struct wrapper is not a standard layout!" );
68027 
68028   template <>
68029   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryProperties>
68030   {
68031     using Type = PhysicalDeviceProtectedMemoryProperties;
68032   };
68033 
68034   struct PhysicalDevicePushDescriptorPropertiesKHR
68035   {
68036     static const bool allowDuplicate = false;
68037     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
68038 
68039 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68040     VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR(uint32_t maxPushDescriptors_ = {}) VULKAN_HPP_NOEXCEPT
68041     : maxPushDescriptors( maxPushDescriptors_ )
68042     {}
68043 
68044     VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68045 
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68046     PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68047     {
68048       *this = rhs;
68049     }
68050 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68051 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68052     PhysicalDevicePushDescriptorPropertiesKHR & operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68053     {
68054       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR const *>( &rhs );
68055       return *this;
68056     }
68057 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68058     PhysicalDevicePushDescriptorPropertiesKHR & operator=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68059     {
68060       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) );
68061       return *this;
68062     }
68063 
68064 
operator VkPhysicalDevicePushDescriptorPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68065     operator VkPhysicalDevicePushDescriptorPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
68066     {
68067       return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
68068     }
68069 
operator VkPhysicalDevicePushDescriptorPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68070     operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT
68071     {
68072       return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
68073     }
68074 
68075 
68076 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68077     auto operator<=>( PhysicalDevicePushDescriptorPropertiesKHR const& ) const = default;
68078 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68079     bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68080     {
68081       return ( sType == rhs.sType )
68082           && ( pNext == rhs.pNext )
68083           && ( maxPushDescriptors == rhs.maxPushDescriptors );
68084     }
68085 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68086     bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68087     {
68088       return !operator==( rhs );
68089     }
68090 #endif
68091 
68092 
68093 
68094   public:
68095     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
68096     void* pNext = {};
68097     uint32_t maxPushDescriptors = {};
68098 
68099   };
68100   static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" );
68101   static_assert( std::is_standard_layout<PhysicalDevicePushDescriptorPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
68102 
68103   template <>
68104   struct CppType<StructureType, StructureType::ePhysicalDevicePushDescriptorPropertiesKHR>
68105   {
68106     using Type = PhysicalDevicePushDescriptorPropertiesKHR;
68107   };
68108 
68109 #ifdef VK_ENABLE_BETA_EXTENSIONS
68110   struct PhysicalDeviceRayTracingFeaturesKHR
68111   {
68112     static const bool allowDuplicate = false;
68113     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingFeaturesKHR;
68114 
68115 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68116     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayTracing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplayMixed_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingAccelerationStructureCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectTraceRays_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectAccelerationStructureBuild_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingHostAccelerationStructureCommands_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPrimitiveCulling_ = {}) VULKAN_HPP_NOEXCEPT
68117     : rayTracing( rayTracing_ ), rayTracingShaderGroupHandleCaptureReplay( rayTracingShaderGroupHandleCaptureReplay_ ), rayTracingShaderGroupHandleCaptureReplayMixed( rayTracingShaderGroupHandleCaptureReplayMixed_ ), rayTracingAccelerationStructureCaptureReplay( rayTracingAccelerationStructureCaptureReplay_ ), rayTracingIndirectTraceRays( rayTracingIndirectTraceRays_ ), rayTracingIndirectAccelerationStructureBuild( rayTracingIndirectAccelerationStructureBuild_ ), rayTracingHostAccelerationStructureCommands( rayTracingHostAccelerationStructureCommands_ ), rayQuery( rayQuery_ ), rayTracingPrimitiveCulling( rayTracingPrimitiveCulling_ )
68118     {}
68119 
68120     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingFeaturesKHR( PhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68121 
PhysicalDeviceRayTracingFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68122     PhysicalDeviceRayTracingFeaturesKHR( VkPhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68123     {
68124       *this = rhs;
68125     }
68126 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68127 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68128     PhysicalDeviceRayTracingFeaturesKHR & operator=( VkPhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68129     {
68130       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR const *>( &rhs );
68131       return *this;
68132     }
68133 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68134     PhysicalDeviceRayTracingFeaturesKHR & operator=( PhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68135     {
68136       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRayTracingFeaturesKHR ) );
68137       return *this;
68138     }
68139 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68140     PhysicalDeviceRayTracingFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68141     {
68142       pNext = pNext_;
68143       return *this;
68144     }
68145 
setRayTracingVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68146     PhysicalDeviceRayTracingFeaturesKHR & setRayTracing( VULKAN_HPP_NAMESPACE::Bool32 rayTracing_ ) VULKAN_HPP_NOEXCEPT
68147     {
68148       rayTracing = rayTracing_;
68149       return *this;
68150     }
68151 
setRayTracingShaderGroupHandleCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68152     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingShaderGroupHandleCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
68153     {
68154       rayTracingShaderGroupHandleCaptureReplay = rayTracingShaderGroupHandleCaptureReplay_;
68155       return *this;
68156     }
68157 
setRayTracingShaderGroupHandleCaptureReplayMixedVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68158     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingShaderGroupHandleCaptureReplayMixed( VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplayMixed_ ) VULKAN_HPP_NOEXCEPT
68159     {
68160       rayTracingShaderGroupHandleCaptureReplayMixed = rayTracingShaderGroupHandleCaptureReplayMixed_;
68161       return *this;
68162     }
68163 
setRayTracingAccelerationStructureCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68164     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingAccelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
68165     {
68166       rayTracingAccelerationStructureCaptureReplay = rayTracingAccelerationStructureCaptureReplay_;
68167       return *this;
68168     }
68169 
setRayTracingIndirectTraceRaysVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68170     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingIndirectTraceRays( VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectTraceRays_ ) VULKAN_HPP_NOEXCEPT
68171     {
68172       rayTracingIndirectTraceRays = rayTracingIndirectTraceRays_;
68173       return *this;
68174     }
68175 
setRayTracingIndirectAccelerationStructureBuildVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68176     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingIndirectAccelerationStructureBuild( VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectAccelerationStructureBuild_ ) VULKAN_HPP_NOEXCEPT
68177     {
68178       rayTracingIndirectAccelerationStructureBuild = rayTracingIndirectAccelerationStructureBuild_;
68179       return *this;
68180     }
68181 
setRayTracingHostAccelerationStructureCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68182     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingHostAccelerationStructureCommands( VULKAN_HPP_NAMESPACE::Bool32 rayTracingHostAccelerationStructureCommands_ ) VULKAN_HPP_NOEXCEPT
68183     {
68184       rayTracingHostAccelerationStructureCommands = rayTracingHostAccelerationStructureCommands_;
68185       return *this;
68186     }
68187 
setRayQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68188     PhysicalDeviceRayTracingFeaturesKHR & setRayQuery( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ ) VULKAN_HPP_NOEXCEPT
68189     {
68190       rayQuery = rayQuery_;
68191       return *this;
68192     }
68193 
setRayTracingPrimitiveCullingVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68194     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT
68195     {
68196       rayTracingPrimitiveCulling = rayTracingPrimitiveCulling_;
68197       return *this;
68198     }
68199 
68200 
operator VkPhysicalDeviceRayTracingFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68201     operator VkPhysicalDeviceRayTracingFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
68202     {
68203       return *reinterpret_cast<const VkPhysicalDeviceRayTracingFeaturesKHR*>( this );
68204     }
68205 
operator VkPhysicalDeviceRayTracingFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68206     operator VkPhysicalDeviceRayTracingFeaturesKHR &() VULKAN_HPP_NOEXCEPT
68207     {
68208       return *reinterpret_cast<VkPhysicalDeviceRayTracingFeaturesKHR*>( this );
68209     }
68210 
68211 
68212 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68213     auto operator<=>( PhysicalDeviceRayTracingFeaturesKHR const& ) const = default;
68214 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68215     bool operator==( PhysicalDeviceRayTracingFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68216     {
68217       return ( sType == rhs.sType )
68218           && ( pNext == rhs.pNext )
68219           && ( rayTracing == rhs.rayTracing )
68220           && ( rayTracingShaderGroupHandleCaptureReplay == rhs.rayTracingShaderGroupHandleCaptureReplay )
68221           && ( rayTracingShaderGroupHandleCaptureReplayMixed == rhs.rayTracingShaderGroupHandleCaptureReplayMixed )
68222           && ( rayTracingAccelerationStructureCaptureReplay == rhs.rayTracingAccelerationStructureCaptureReplay )
68223           && ( rayTracingIndirectTraceRays == rhs.rayTracingIndirectTraceRays )
68224           && ( rayTracingIndirectAccelerationStructureBuild == rhs.rayTracingIndirectAccelerationStructureBuild )
68225           && ( rayTracingHostAccelerationStructureCommands == rhs.rayTracingHostAccelerationStructureCommands )
68226           && ( rayQuery == rhs.rayQuery )
68227           && ( rayTracingPrimitiveCulling == rhs.rayTracingPrimitiveCulling );
68228     }
68229 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68230     bool operator!=( PhysicalDeviceRayTracingFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68231     {
68232       return !operator==( rhs );
68233     }
68234 #endif
68235 
68236 
68237 
68238   public:
68239     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingFeaturesKHR;
68240     void* pNext = {};
68241     VULKAN_HPP_NAMESPACE::Bool32 rayTracing = {};
68242     VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplay = {};
68243     VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplayMixed = {};
68244     VULKAN_HPP_NAMESPACE::Bool32 rayTracingAccelerationStructureCaptureReplay = {};
68245     VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectTraceRays = {};
68246     VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectAccelerationStructureBuild = {};
68247     VULKAN_HPP_NAMESPACE::Bool32 rayTracingHostAccelerationStructureCommands = {};
68248     VULKAN_HPP_NAMESPACE::Bool32 rayQuery = {};
68249     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPrimitiveCulling = {};
68250 
68251   };
68252   static_assert( sizeof( PhysicalDeviceRayTracingFeaturesKHR ) == sizeof( VkPhysicalDeviceRayTracingFeaturesKHR ), "struct and wrapper have different size!" );
68253   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
68254 
68255   template <>
68256   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingFeaturesKHR>
68257   {
68258     using Type = PhysicalDeviceRayTracingFeaturesKHR;
68259   };
68260 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
68261 
68262 #ifdef VK_ENABLE_BETA_EXTENSIONS
68263   struct PhysicalDeviceRayTracingPropertiesKHR
68264   {
68265     static const bool allowDuplicate = false;
68266     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesKHR;
68267 
68268 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68269     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesKHR(uint32_t shaderGroupHandleSize_ = {}, uint32_t maxRecursionDepth_ = {}, uint32_t maxShaderGroupStride_ = {}, uint32_t shaderGroupBaseAlignment_ = {}, uint64_t maxGeometryCount_ = {}, uint64_t maxInstanceCount_ = {}, uint64_t maxPrimitiveCount_ = {}, uint32_t maxDescriptorSetAccelerationStructures_ = {}, uint32_t shaderGroupHandleCaptureReplaySize_ = {}) VULKAN_HPP_NOEXCEPT
68270     : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRecursionDepth( maxRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxPrimitiveCount( maxPrimitiveCount_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ), shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ )
68271     {}
68272 
68273     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesKHR( PhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68274 
PhysicalDeviceRayTracingPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68275     PhysicalDeviceRayTracingPropertiesKHR( VkPhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68276     {
68277       *this = rhs;
68278     }
68279 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68280 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68281     PhysicalDeviceRayTracingPropertiesKHR & operator=( VkPhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68282     {
68283       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR const *>( &rhs );
68284       return *this;
68285     }
68286 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68287     PhysicalDeviceRayTracingPropertiesKHR & operator=( PhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68288     {
68289       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRayTracingPropertiesKHR ) );
68290       return *this;
68291     }
68292 
68293 
operator VkPhysicalDeviceRayTracingPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68294     operator VkPhysicalDeviceRayTracingPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
68295     {
68296       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesKHR*>( this );
68297     }
68298 
operator VkPhysicalDeviceRayTracingPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68299     operator VkPhysicalDeviceRayTracingPropertiesKHR &() VULKAN_HPP_NOEXCEPT
68300     {
68301       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesKHR*>( this );
68302     }
68303 
68304 
68305 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68306     auto operator<=>( PhysicalDeviceRayTracingPropertiesKHR const& ) const = default;
68307 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68308     bool operator==( PhysicalDeviceRayTracingPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68309     {
68310       return ( sType == rhs.sType )
68311           && ( pNext == rhs.pNext )
68312           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
68313           && ( maxRecursionDepth == rhs.maxRecursionDepth )
68314           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
68315           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
68316           && ( maxGeometryCount == rhs.maxGeometryCount )
68317           && ( maxInstanceCount == rhs.maxInstanceCount )
68318           && ( maxPrimitiveCount == rhs.maxPrimitiveCount )
68319           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures )
68320           && ( shaderGroupHandleCaptureReplaySize == rhs.shaderGroupHandleCaptureReplaySize );
68321     }
68322 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68323     bool operator!=( PhysicalDeviceRayTracingPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68324     {
68325       return !operator==( rhs );
68326     }
68327 #endif
68328 
68329 
68330 
68331   public:
68332     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesKHR;
68333     void* pNext = {};
68334     uint32_t shaderGroupHandleSize = {};
68335     uint32_t maxRecursionDepth = {};
68336     uint32_t maxShaderGroupStride = {};
68337     uint32_t shaderGroupBaseAlignment = {};
68338     uint64_t maxGeometryCount = {};
68339     uint64_t maxInstanceCount = {};
68340     uint64_t maxPrimitiveCount = {};
68341     uint32_t maxDescriptorSetAccelerationStructures = {};
68342     uint32_t shaderGroupHandleCaptureReplaySize = {};
68343 
68344   };
68345   static_assert( sizeof( PhysicalDeviceRayTracingPropertiesKHR ) == sizeof( VkPhysicalDeviceRayTracingPropertiesKHR ), "struct and wrapper have different size!" );
68346   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
68347 
68348   template <>
68349   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesKHR>
68350   {
68351     using Type = PhysicalDeviceRayTracingPropertiesKHR;
68352   };
68353 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
68354 
68355   struct PhysicalDeviceRayTracingPropertiesNV
68356   {
68357     static const bool allowDuplicate = false;
68358     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
68359 
68360 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68361     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
68362     : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRecursionDepth( maxRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxTriangleCount( maxTriangleCount_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
68363     {}
68364 
68365     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68366 
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68367     PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68368     {
68369       *this = rhs;
68370     }
68371 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68372 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68373     PhysicalDeviceRayTracingPropertiesNV & operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68374     {
68375       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const *>( &rhs );
68376       return *this;
68377     }
68378 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68379     PhysicalDeviceRayTracingPropertiesNV & operator=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68380     {
68381       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRayTracingPropertiesNV ) );
68382       return *this;
68383     }
68384 
68385 
operator VkPhysicalDeviceRayTracingPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68386     operator VkPhysicalDeviceRayTracingPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
68387     {
68388       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>( this );
68389     }
68390 
operator VkPhysicalDeviceRayTracingPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68391     operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT
68392     {
68393       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>( this );
68394     }
68395 
68396 
68397 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68398     auto operator<=>( PhysicalDeviceRayTracingPropertiesNV const& ) const = default;
68399 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68400     bool operator==( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
68401     {
68402       return ( sType == rhs.sType )
68403           && ( pNext == rhs.pNext )
68404           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
68405           && ( maxRecursionDepth == rhs.maxRecursionDepth )
68406           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
68407           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
68408           && ( maxGeometryCount == rhs.maxGeometryCount )
68409           && ( maxInstanceCount == rhs.maxInstanceCount )
68410           && ( maxTriangleCount == rhs.maxTriangleCount )
68411           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures );
68412     }
68413 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68414     bool operator!=( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
68415     {
68416       return !operator==( rhs );
68417     }
68418 #endif
68419 
68420 
68421 
68422   public:
68423     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
68424     void* pNext = {};
68425     uint32_t shaderGroupHandleSize = {};
68426     uint32_t maxRecursionDepth = {};
68427     uint32_t maxShaderGroupStride = {};
68428     uint32_t shaderGroupBaseAlignment = {};
68429     uint64_t maxGeometryCount = {};
68430     uint64_t maxInstanceCount = {};
68431     uint64_t maxTriangleCount = {};
68432     uint32_t maxDescriptorSetAccelerationStructures = {};
68433 
68434   };
68435   static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), "struct and wrapper have different size!" );
68436   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPropertiesNV>::value, "struct wrapper is not a standard layout!" );
68437 
68438   template <>
68439   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesNV>
68440   {
68441     using Type = PhysicalDeviceRayTracingPropertiesNV;
68442   };
68443 
68444   struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
68445   {
68446     static const bool allowDuplicate = false;
68447     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
68448 
68449 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68450     VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {}) VULKAN_HPP_NOEXCEPT
68451     : representativeFragmentTest( representativeFragmentTest_ )
68452     {}
68453 
68454     VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68455 
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68456     PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68457     {
68458       *this = rhs;
68459     }
68460 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68461 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68462     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68463     {
68464       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>( &rhs );
68465       return *this;
68466     }
68467 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68468     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68469     {
68470       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) );
68471       return *this;
68472     }
68473 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68474     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68475     {
68476       pNext = pNext_;
68477       return *this;
68478     }
68479 
setRepresentativeFragmentTestVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68480     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT
68481     {
68482       representativeFragmentTest = representativeFragmentTest_;
68483       return *this;
68484     }
68485 
68486 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68487     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
68488     {
68489       return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
68490     }
68491 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68492     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT
68493     {
68494       return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
68495     }
68496 
68497 
68498 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68499     auto operator<=>( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& ) const = default;
68500 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68501     bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
68502     {
68503       return ( sType == rhs.sType )
68504           && ( pNext == rhs.pNext )
68505           && ( representativeFragmentTest == rhs.representativeFragmentTest );
68506     }
68507 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68508     bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
68509     {
68510       return !operator==( rhs );
68511     }
68512 #endif
68513 
68514 
68515 
68516   public:
68517     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
68518     void* pNext = {};
68519     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {};
68520 
68521   };
68522   static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "struct and wrapper have different size!" );
68523   static_assert( std::is_standard_layout<PhysicalDeviceRepresentativeFragmentTestFeaturesNV>::value, "struct wrapper is not a standard layout!" );
68524 
68525   template <>
68526   struct CppType<StructureType, StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV>
68527   {
68528     using Type = PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
68529   };
68530 
68531   struct PhysicalDeviceRobustness2FeaturesEXT
68532   {
68533     static const bool allowDuplicate = false;
68534     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
68535 
68536 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68537     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {}) VULKAN_HPP_NOEXCEPT
68538     : robustBufferAccess2( robustBufferAccess2_ ), robustImageAccess2( robustImageAccess2_ ), nullDescriptor( nullDescriptor_ )
68539     {}
68540 
68541     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68542 
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68543     PhysicalDeviceRobustness2FeaturesEXT( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68544     {
68545       *this = rhs;
68546     }
68547 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68548 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68549     PhysicalDeviceRobustness2FeaturesEXT & operator=( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68550     {
68551       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT const *>( &rhs );
68552       return *this;
68553     }
68554 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68555     PhysicalDeviceRobustness2FeaturesEXT & operator=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68556     {
68557       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRobustness2FeaturesEXT ) );
68558       return *this;
68559     }
68560 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68561     PhysicalDeviceRobustness2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68562     {
68563       pNext = pNext_;
68564       return *this;
68565     }
68566 
setRobustBufferAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68567     PhysicalDeviceRobustness2FeaturesEXT & setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT
68568     {
68569       robustBufferAccess2 = robustBufferAccess2_;
68570       return *this;
68571     }
68572 
setRobustImageAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68573     PhysicalDeviceRobustness2FeaturesEXT & setRobustImageAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ ) VULKAN_HPP_NOEXCEPT
68574     {
68575       robustImageAccess2 = robustImageAccess2_;
68576       return *this;
68577     }
68578 
setNullDescriptorVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68579     PhysicalDeviceRobustness2FeaturesEXT & setNullDescriptor( VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ ) VULKAN_HPP_NOEXCEPT
68580     {
68581       nullDescriptor = nullDescriptor_;
68582       return *this;
68583     }
68584 
68585 
operator VkPhysicalDeviceRobustness2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68586     operator VkPhysicalDeviceRobustness2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
68587     {
68588       return *reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
68589     }
68590 
operator VkPhysicalDeviceRobustness2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68591     operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
68592     {
68593       return *reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
68594     }
68595 
68596 
68597 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68598     auto operator<=>( PhysicalDeviceRobustness2FeaturesEXT const& ) const = default;
68599 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68600     bool operator==( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68601     {
68602       return ( sType == rhs.sType )
68603           && ( pNext == rhs.pNext )
68604           && ( robustBufferAccess2 == rhs.robustBufferAccess2 )
68605           && ( robustImageAccess2 == rhs.robustImageAccess2 )
68606           && ( nullDescriptor == rhs.nullDescriptor );
68607     }
68608 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68609     bool operator!=( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68610     {
68611       return !operator==( rhs );
68612     }
68613 #endif
68614 
68615 
68616 
68617   public:
68618     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
68619     void* pNext = {};
68620     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2 = {};
68621     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2 = {};
68622     VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor = {};
68623 
68624   };
68625   static_assert( sizeof( PhysicalDeviceRobustness2FeaturesEXT ) == sizeof( VkPhysicalDeviceRobustness2FeaturesEXT ), "struct and wrapper have different size!" );
68626   static_assert( std::is_standard_layout<PhysicalDeviceRobustness2FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
68627 
68628   template <>
68629   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2FeaturesEXT>
68630   {
68631     using Type = PhysicalDeviceRobustness2FeaturesEXT;
68632   };
68633 
68634   struct PhysicalDeviceRobustness2PropertiesEXT
68635   {
68636     static const bool allowDuplicate = false;
68637     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
68638 
68639 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68640     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {}) VULKAN_HPP_NOEXCEPT
68641     : robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ ), robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ )
68642     {}
68643 
68644     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68645 
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68646     PhysicalDeviceRobustness2PropertiesEXT( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68647     {
68648       *this = rhs;
68649     }
68650 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68651 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68652     PhysicalDeviceRobustness2PropertiesEXT & operator=( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68653     {
68654       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT const *>( &rhs );
68655       return *this;
68656     }
68657 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68658     PhysicalDeviceRobustness2PropertiesEXT & operator=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68659     {
68660       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRobustness2PropertiesEXT ) );
68661       return *this;
68662     }
68663 
68664 
operator VkPhysicalDeviceRobustness2PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68665     operator VkPhysicalDeviceRobustness2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
68666     {
68667       return *reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
68668     }
68669 
operator VkPhysicalDeviceRobustness2PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68670     operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
68671     {
68672       return *reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
68673     }
68674 
68675 
68676 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68677     auto operator<=>( PhysicalDeviceRobustness2PropertiesEXT const& ) const = default;
68678 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68679     bool operator==( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68680     {
68681       return ( sType == rhs.sType )
68682           && ( pNext == rhs.pNext )
68683           && ( robustStorageBufferAccessSizeAlignment == rhs.robustStorageBufferAccessSizeAlignment )
68684           && ( robustUniformBufferAccessSizeAlignment == rhs.robustUniformBufferAccessSizeAlignment );
68685     }
68686 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68687     bool operator!=( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68688     {
68689       return !operator==( rhs );
68690     }
68691 #endif
68692 
68693 
68694 
68695   public:
68696     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
68697     void* pNext = {};
68698     VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment = {};
68699     VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment = {};
68700 
68701   };
68702   static_assert( sizeof( PhysicalDeviceRobustness2PropertiesEXT ) == sizeof( VkPhysicalDeviceRobustness2PropertiesEXT ), "struct and wrapper have different size!" );
68703   static_assert( std::is_standard_layout<PhysicalDeviceRobustness2PropertiesEXT>::value, "struct wrapper is not a standard layout!" );
68704 
68705   template <>
68706   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2PropertiesEXT>
68707   {
68708     using Type = PhysicalDeviceRobustness2PropertiesEXT;
68709   };
68710 
68711   struct PhysicalDeviceSampleLocationsPropertiesEXT
68712   {
68713     static const bool allowDuplicate = false;
68714     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
68715 
68716 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68717     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
68718     : sampleLocationSampleCounts( sampleLocationSampleCounts_ ), maxSampleLocationGridSize( maxSampleLocationGridSize_ ), sampleLocationCoordinateRange( sampleLocationCoordinateRange_ ), sampleLocationSubPixelBits( sampleLocationSubPixelBits_ ), variableSampleLocations( variableSampleLocations_ )
68719     {}
68720 
68721     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68722 
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68723     PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68724     {
68725       *this = rhs;
68726     }
68727 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68728 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68729     PhysicalDeviceSampleLocationsPropertiesEXT & operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68730     {
68731       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT const *>( &rhs );
68732       return *this;
68733     }
68734 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68735     PhysicalDeviceSampleLocationsPropertiesEXT & operator=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68736     {
68737       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) );
68738       return *this;
68739     }
68740 
68741 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68742     operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
68743     {
68744       return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
68745     }
68746 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68747     operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT
68748     {
68749       return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
68750     }
68751 
68752 
68753 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68754     auto operator<=>( PhysicalDeviceSampleLocationsPropertiesEXT const& ) const = default;
68755 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68756     bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68757     {
68758       return ( sType == rhs.sType )
68759           && ( pNext == rhs.pNext )
68760           && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts )
68761           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize )
68762           && ( sampleLocationCoordinateRange == rhs.sampleLocationCoordinateRange )
68763           && ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits )
68764           && ( variableSampleLocations == rhs.variableSampleLocations );
68765     }
68766 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68767     bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68768     {
68769       return !operator==( rhs );
68770     }
68771 #endif
68772 
68773 
68774 
68775   public:
68776     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
68777     void* pNext = {};
68778     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {};
68779     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
68780     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> sampleLocationCoordinateRange = {};
68781     uint32_t sampleLocationSubPixelBits = {};
68782     VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {};
68783 
68784   };
68785   static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), "struct and wrapper have different size!" );
68786   static_assert( std::is_standard_layout<PhysicalDeviceSampleLocationsPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
68787 
68788   template <>
68789   struct CppType<StructureType, StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT>
68790   {
68791     using Type = PhysicalDeviceSampleLocationsPropertiesEXT;
68792   };
68793 
68794   struct PhysicalDeviceSamplerFilterMinmaxProperties
68795   {
68796     static const bool allowDuplicate = false;
68797     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
68798 
68799 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68800     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties(VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}) VULKAN_HPP_NOEXCEPT
68801     : filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ), filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
68802     {}
68803 
68804     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68805 
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68806     PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68807     {
68808       *this = rhs;
68809     }
68810 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68811 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68812     PhysicalDeviceSamplerFilterMinmaxProperties & operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68813     {
68814       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties const *>( &rhs );
68815       return *this;
68816     }
68817 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68818     PhysicalDeviceSamplerFilterMinmaxProperties & operator=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68819     {
68820       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) );
68821       return *this;
68822     }
68823 
68824 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68825     operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&() const VULKAN_HPP_NOEXCEPT
68826     {
68827       return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
68828     }
68829 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68830     operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT
68831     {
68832       return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
68833     }
68834 
68835 
68836 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68837     auto operator<=>( PhysicalDeviceSamplerFilterMinmaxProperties const& ) const = default;
68838 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68839     bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68840     {
68841       return ( sType == rhs.sType )
68842           && ( pNext == rhs.pNext )
68843           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
68844           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping );
68845     }
68846 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68847     bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68848     {
68849       return !operator==( rhs );
68850     }
68851 #endif
68852 
68853 
68854 
68855   public:
68856     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
68857     void* pNext = {};
68858     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
68859     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
68860 
68861   };
68862   static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) == sizeof( VkPhysicalDeviceSamplerFilterMinmaxProperties ), "struct and wrapper have different size!" );
68863   static_assert( std::is_standard_layout<PhysicalDeviceSamplerFilterMinmaxProperties>::value, "struct wrapper is not a standard layout!" );
68864 
68865   template <>
68866   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties>
68867   {
68868     using Type = PhysicalDeviceSamplerFilterMinmaxProperties;
68869   };
68870   using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
68871 
68872   struct PhysicalDeviceSamplerYcbcrConversionFeatures
68873   {
68874     static const bool allowDuplicate = false;
68875     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
68876 
68877 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68878     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures(VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}) VULKAN_HPP_NOEXCEPT
68879     : samplerYcbcrConversion( samplerYcbcrConversion_ )
68880     {}
68881 
68882     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68883 
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68884     PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68885     {
68886       *this = rhs;
68887     }
68888 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68889 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68890     PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68891     {
68892       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures const *>( &rhs );
68893       return *this;
68894     }
68895 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68896     PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68897     {
68898       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) );
68899       return *this;
68900     }
68901 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68902     PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68903     {
68904       pNext = pNext_;
68905       return *this;
68906     }
68907 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68908     PhysicalDeviceSamplerYcbcrConversionFeatures & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
68909     {
68910       samplerYcbcrConversion = samplerYcbcrConversion_;
68911       return *this;
68912     }
68913 
68914 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68915     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&() const VULKAN_HPP_NOEXCEPT
68916     {
68917       return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
68918     }
68919 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68920     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT
68921     {
68922       return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
68923     }
68924 
68925 
68926 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68927     auto operator<=>( PhysicalDeviceSamplerYcbcrConversionFeatures const& ) const = default;
68928 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68929     bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68930     {
68931       return ( sType == rhs.sType )
68932           && ( pNext == rhs.pNext )
68933           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion );
68934     }
68935 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68936     bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68937     {
68938       return !operator==( rhs );
68939     }
68940 #endif
68941 
68942 
68943 
68944   public:
68945     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
68946     void* pNext = {};
68947     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
68948 
68949   };
68950   static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), "struct and wrapper have different size!" );
68951   static_assert( std::is_standard_layout<PhysicalDeviceSamplerYcbcrConversionFeatures>::value, "struct wrapper is not a standard layout!" );
68952 
68953   template <>
68954   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures>
68955   {
68956     using Type = PhysicalDeviceSamplerYcbcrConversionFeatures;
68957   };
68958   using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
68959 
68960   struct PhysicalDeviceScalarBlockLayoutFeatures
68961   {
68962     static const bool allowDuplicate = false;
68963     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
68964 
68965 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68966     VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}) VULKAN_HPP_NOEXCEPT
68967     : scalarBlockLayout( scalarBlockLayout_ )
68968     {}
68969 
68970     VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68971 
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68972     PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68973     {
68974       *this = rhs;
68975     }
68976 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68977 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68978     PhysicalDeviceScalarBlockLayoutFeatures & operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68979     {
68980       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures const *>( &rhs );
68981       return *this;
68982     }
68983 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68984     PhysicalDeviceScalarBlockLayoutFeatures & operator=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68985     {
68986       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) );
68987       return *this;
68988     }
68989 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68990     PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68991     {
68992       pNext = pNext_;
68993       return *this;
68994     }
68995 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68996     PhysicalDeviceScalarBlockLayoutFeatures & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
68997     {
68998       scalarBlockLayout = scalarBlockLayout_;
68999       return *this;
69000     }
69001 
69002 
operator VkPhysicalDeviceScalarBlockLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69003     operator VkPhysicalDeviceScalarBlockLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT
69004     {
69005       return *reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
69006     }
69007 
operator VkPhysicalDeviceScalarBlockLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69008     operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT
69009     {
69010       return *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
69011     }
69012 
69013 
69014 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69015     auto operator<=>( PhysicalDeviceScalarBlockLayoutFeatures const& ) const = default;
69016 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69017     bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69018     {
69019       return ( sType == rhs.sType )
69020           && ( pNext == rhs.pNext )
69021           && ( scalarBlockLayout == rhs.scalarBlockLayout );
69022     }
69023 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69024     bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69025     {
69026       return !operator==( rhs );
69027     }
69028 #endif
69029 
69030 
69031 
69032   public:
69033     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
69034     void* pNext = {};
69035     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
69036 
69037   };
69038   static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) == sizeof( VkPhysicalDeviceScalarBlockLayoutFeatures ), "struct and wrapper have different size!" );
69039   static_assert( std::is_standard_layout<PhysicalDeviceScalarBlockLayoutFeatures>::value, "struct wrapper is not a standard layout!" );
69040 
69041   template <>
69042   struct CppType<StructureType, StructureType::ePhysicalDeviceScalarBlockLayoutFeatures>
69043   {
69044     using Type = PhysicalDeviceScalarBlockLayoutFeatures;
69045   };
69046   using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
69047 
69048   struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures
69049   {
69050     static const bool allowDuplicate = false;
69051     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69052 
69053 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69054     VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures(VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}) VULKAN_HPP_NOEXCEPT
69055     : separateDepthStencilLayouts( separateDepthStencilLayouts_ )
69056     {}
69057 
69058     VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69059 
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69060     PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69061     {
69062       *this = rhs;
69063     }
69064 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69065 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69066     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69067     {
69068       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>( &rhs );
69069       return *this;
69070     }
69071 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69072     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69073     {
69074       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) );
69075       return *this;
69076     }
69077 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69078     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69079     {
69080       pNext = pNext_;
69081       return *this;
69082     }
69083 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69084     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
69085     {
69086       separateDepthStencilLayouts = separateDepthStencilLayouts_;
69087       return *this;
69088     }
69089 
69090 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69091     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&() const VULKAN_HPP_NOEXCEPT
69092     {
69093       return *reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
69094     }
69095 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69096     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT
69097     {
69098       return *reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
69099     }
69100 
69101 
69102 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69103     auto operator<=>( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& ) const = default;
69104 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69105     bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69106     {
69107       return ( sType == rhs.sType )
69108           && ( pNext == rhs.pNext )
69109           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts );
69110     }
69111 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69112     bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69113     {
69114       return !operator==( rhs );
69115     }
69116 #endif
69117 
69118 
69119 
69120   public:
69121     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69122     void* pNext = {};
69123     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
69124 
69125   };
69126   static_assert( sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) == sizeof( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures ), "struct and wrapper have different size!" );
69127   static_assert( std::is_standard_layout<PhysicalDeviceSeparateDepthStencilLayoutsFeatures>::value, "struct wrapper is not a standard layout!" );
69128 
69129   template <>
69130   struct CppType<StructureType, StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures>
69131   {
69132     using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69133   };
69134   using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69135 
69136   struct PhysicalDeviceShaderAtomicFloatFeaturesEXT
69137   {
69138     static const bool allowDuplicate = false;
69139     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
69140 
69141 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderAtomicFloatFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69142     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
69143     : shaderBufferFloat32Atomics( shaderBufferFloat32Atomics_ ), shaderBufferFloat32AtomicAdd( shaderBufferFloat32AtomicAdd_ ), shaderBufferFloat64Atomics( shaderBufferFloat64Atomics_ ), shaderBufferFloat64AtomicAdd( shaderBufferFloat64AtomicAdd_ ), shaderSharedFloat32Atomics( shaderSharedFloat32Atomics_ ), shaderSharedFloat32AtomicAdd( shaderSharedFloat32AtomicAdd_ ), shaderSharedFloat64Atomics( shaderSharedFloat64Atomics_ ), shaderSharedFloat64AtomicAdd( shaderSharedFloat64AtomicAdd_ ), shaderImageFloat32Atomics( shaderImageFloat32Atomics_ ), shaderImageFloat32AtomicAdd( shaderImageFloat32AtomicAdd_ ), sparseImageFloat32Atomics( sparseImageFloat32Atomics_ ), sparseImageFloat32AtomicAdd( sparseImageFloat32AtomicAdd_ )
69144     {}
69145 
69146     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69147 
PhysicalDeviceShaderAtomicFloatFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69148     PhysicalDeviceShaderAtomicFloatFeaturesEXT( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69149     {
69150       *this = rhs;
69151     }
69152 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69153 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69154     PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69155     {
69156       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT const *>( &rhs );
69157       return *this;
69158     }
69159 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69160     PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69161     {
69162       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderAtomicFloatFeaturesEXT ) );
69163       return *this;
69164     }
69165 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69166     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69167     {
69168       pNext = pNext_;
69169       return *this;
69170     }
69171 
setShaderBufferFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69172     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69173     {
69174       shaderBufferFloat32Atomics = shaderBufferFloat32Atomics_;
69175       return *this;
69176     }
69177 
setShaderBufferFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69178     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69179     {
69180       shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd_;
69181       return *this;
69182     }
69183 
setShaderBufferFloat64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69184     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
69185     {
69186       shaderBufferFloat64Atomics = shaderBufferFloat64Atomics_;
69187       return *this;
69188     }
69189 
setShaderBufferFloat64AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69190     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69191     {
69192       shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd_;
69193       return *this;
69194     }
69195 
setShaderSharedFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69196     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69197     {
69198       shaderSharedFloat32Atomics = shaderSharedFloat32Atomics_;
69199       return *this;
69200     }
69201 
setShaderSharedFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69202     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69203     {
69204       shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd_;
69205       return *this;
69206     }
69207 
setShaderSharedFloat64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69208     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
69209     {
69210       shaderSharedFloat64Atomics = shaderSharedFloat64Atomics_;
69211       return *this;
69212     }
69213 
setShaderSharedFloat64AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69214     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69215     {
69216       shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd_;
69217       return *this;
69218     }
69219 
setShaderImageFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69220     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69221     {
69222       shaderImageFloat32Atomics = shaderImageFloat32Atomics_;
69223       return *this;
69224     }
69225 
setShaderImageFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69226     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69227     {
69228       shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd_;
69229       return *this;
69230     }
69231 
setSparseImageFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69232     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69233     {
69234       sparseImageFloat32Atomics = sparseImageFloat32Atomics_;
69235       return *this;
69236     }
69237 
setSparseImageFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69238     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69239     {
69240       sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_;
69241       return *this;
69242     }
69243 
69244 
operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69245     operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
69246     {
69247       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>( this );
69248     }
69249 
operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69250     operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT
69251     {
69252       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>( this );
69253     }
69254 
69255 
69256 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69257     auto operator<=>( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& ) const = default;
69258 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69259     bool operator==( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69260     {
69261       return ( sType == rhs.sType )
69262           && ( pNext == rhs.pNext )
69263           && ( shaderBufferFloat32Atomics == rhs.shaderBufferFloat32Atomics )
69264           && ( shaderBufferFloat32AtomicAdd == rhs.shaderBufferFloat32AtomicAdd )
69265           && ( shaderBufferFloat64Atomics == rhs.shaderBufferFloat64Atomics )
69266           && ( shaderBufferFloat64AtomicAdd == rhs.shaderBufferFloat64AtomicAdd )
69267           && ( shaderSharedFloat32Atomics == rhs.shaderSharedFloat32Atomics )
69268           && ( shaderSharedFloat32AtomicAdd == rhs.shaderSharedFloat32AtomicAdd )
69269           && ( shaderSharedFloat64Atomics == rhs.shaderSharedFloat64Atomics )
69270           && ( shaderSharedFloat64AtomicAdd == rhs.shaderSharedFloat64AtomicAdd )
69271           && ( shaderImageFloat32Atomics == rhs.shaderImageFloat32Atomics )
69272           && ( shaderImageFloat32AtomicAdd == rhs.shaderImageFloat32AtomicAdd )
69273           && ( sparseImageFloat32Atomics == rhs.sparseImageFloat32Atomics )
69274           && ( sparseImageFloat32AtomicAdd == rhs.sparseImageFloat32AtomicAdd );
69275     }
69276 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69277     bool operator!=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69278     {
69279       return !operator==( rhs );
69280     }
69281 #endif
69282 
69283 
69284 
69285   public:
69286     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
69287     void* pNext = {};
69288     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics = {};
69289     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd = {};
69290     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics = {};
69291     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd = {};
69292     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics = {};
69293     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd = {};
69294     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics = {};
69295     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd = {};
69296     VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics = {};
69297     VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd = {};
69298     VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics = {};
69299     VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd = {};
69300 
69301   };
69302   static_assert( sizeof( PhysicalDeviceShaderAtomicFloatFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT ), "struct and wrapper have different size!" );
69303   static_assert( std::is_standard_layout<PhysicalDeviceShaderAtomicFloatFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
69304 
69305   template <>
69306   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT>
69307   {
69308     using Type = PhysicalDeviceShaderAtomicFloatFeaturesEXT;
69309   };
69310 
69311   struct PhysicalDeviceShaderAtomicInt64Features
69312   {
69313     static const bool allowDuplicate = false;
69314     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
69315 
69316 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69317     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT
69318     : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ), shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
69319     {}
69320 
69321     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69322 
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69323     PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
69324     {
69325       *this = rhs;
69326     }
69327 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69328 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69329     PhysicalDeviceShaderAtomicInt64Features & operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
69330     {
69331       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features const *>( &rhs );
69332       return *this;
69333     }
69334 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69335     PhysicalDeviceShaderAtomicInt64Features & operator=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
69336     {
69337       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderAtomicInt64Features ) );
69338       return *this;
69339     }
69340 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69341     PhysicalDeviceShaderAtomicInt64Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69342     {
69343       pNext = pNext_;
69344       return *this;
69345     }
69346 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69347     PhysicalDeviceShaderAtomicInt64Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
69348     {
69349       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
69350       return *this;
69351     }
69352 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69353     PhysicalDeviceShaderAtomicInt64Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
69354     {
69355       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
69356       return *this;
69357     }
69358 
69359 
operator VkPhysicalDeviceShaderAtomicInt64Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69360     operator VkPhysicalDeviceShaderAtomicInt64Features const&() const VULKAN_HPP_NOEXCEPT
69361     {
69362       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>( this );
69363     }
69364 
operator VkPhysicalDeviceShaderAtomicInt64Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69365     operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT
69366     {
69367       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>( this );
69368     }
69369 
69370 
69371 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69372     auto operator<=>( PhysicalDeviceShaderAtomicInt64Features const& ) const = default;
69373 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69374     bool operator==( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT
69375     {
69376       return ( sType == rhs.sType )
69377           && ( pNext == rhs.pNext )
69378           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
69379           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics );
69380     }
69381 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69382     bool operator!=( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT
69383     {
69384       return !operator==( rhs );
69385     }
69386 #endif
69387 
69388 
69389 
69390   public:
69391     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
69392     void* pNext = {};
69393     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
69394     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
69395 
69396   };
69397   static_assert( sizeof( PhysicalDeviceShaderAtomicInt64Features ) == sizeof( VkPhysicalDeviceShaderAtomicInt64Features ), "struct and wrapper have different size!" );
69398   static_assert( std::is_standard_layout<PhysicalDeviceShaderAtomicInt64Features>::value, "struct wrapper is not a standard layout!" );
69399 
69400   template <>
69401   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicInt64Features>
69402   {
69403     using Type = PhysicalDeviceShaderAtomicInt64Features;
69404   };
69405   using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
69406 
69407   struct PhysicalDeviceShaderClockFeaturesKHR
69408   {
69409     static const bool allowDuplicate = false;
69410     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
69411 
69412 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69413     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {}) VULKAN_HPP_NOEXCEPT
69414     : shaderSubgroupClock( shaderSubgroupClock_ ), shaderDeviceClock( shaderDeviceClock_ )
69415     {}
69416 
69417     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69418 
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69419     PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69420     {
69421       *this = rhs;
69422     }
69423 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69424 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69425     PhysicalDeviceShaderClockFeaturesKHR & operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69426     {
69427       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR const *>( &rhs );
69428       return *this;
69429     }
69430 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69431     PhysicalDeviceShaderClockFeaturesKHR & operator=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69432     {
69433       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderClockFeaturesKHR ) );
69434       return *this;
69435     }
69436 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69437     PhysicalDeviceShaderClockFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69438     {
69439       pNext = pNext_;
69440       return *this;
69441     }
69442 
setShaderSubgroupClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69443     PhysicalDeviceShaderClockFeaturesKHR & setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT
69444     {
69445       shaderSubgroupClock = shaderSubgroupClock_;
69446       return *this;
69447     }
69448 
setShaderDeviceClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69449     PhysicalDeviceShaderClockFeaturesKHR & setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT
69450     {
69451       shaderDeviceClock = shaderDeviceClock_;
69452       return *this;
69453     }
69454 
69455 
operator VkPhysicalDeviceShaderClockFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69456     operator VkPhysicalDeviceShaderClockFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
69457     {
69458       return *reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
69459     }
69460 
operator VkPhysicalDeviceShaderClockFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69461     operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT
69462     {
69463       return *reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
69464     }
69465 
69466 
69467 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69468     auto operator<=>( PhysicalDeviceShaderClockFeaturesKHR const& ) const = default;
69469 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69470     bool operator==( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69471     {
69472       return ( sType == rhs.sType )
69473           && ( pNext == rhs.pNext )
69474           && ( shaderSubgroupClock == rhs.shaderSubgroupClock )
69475           && ( shaderDeviceClock == rhs.shaderDeviceClock );
69476     }
69477 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69478     bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69479     {
69480       return !operator==( rhs );
69481     }
69482 #endif
69483 
69484 
69485 
69486   public:
69487     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
69488     void* pNext = {};
69489     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {};
69490     VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {};
69491 
69492   };
69493   static_assert( sizeof( PhysicalDeviceShaderClockFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderClockFeaturesKHR ), "struct and wrapper have different size!" );
69494   static_assert( std::is_standard_layout<PhysicalDeviceShaderClockFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
69495 
69496   template <>
69497   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderClockFeaturesKHR>
69498   {
69499     using Type = PhysicalDeviceShaderClockFeaturesKHR;
69500   };
69501 
69502   struct PhysicalDeviceShaderCoreProperties2AMD
69503   {
69504     static const bool allowDuplicate = false;
69505     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
69506 
69507 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69508     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD(VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {}, uint32_t activeComputeUnitCount_ = {}) VULKAN_HPP_NOEXCEPT
69509     : shaderCoreFeatures( shaderCoreFeatures_ ), activeComputeUnitCount( activeComputeUnitCount_ )
69510     {}
69511 
69512     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69513 
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69514     PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
69515     {
69516       *this = rhs;
69517     }
69518 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69519 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69520     PhysicalDeviceShaderCoreProperties2AMD & operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
69521     {
69522       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD const *>( &rhs );
69523       return *this;
69524     }
69525 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69526     PhysicalDeviceShaderCoreProperties2AMD & operator=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
69527     {
69528       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderCoreProperties2AMD ) );
69529       return *this;
69530     }
69531 
69532 
operator VkPhysicalDeviceShaderCoreProperties2AMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69533     operator VkPhysicalDeviceShaderCoreProperties2AMD const&() const VULKAN_HPP_NOEXCEPT
69534     {
69535       return *reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
69536     }
69537 
operator VkPhysicalDeviceShaderCoreProperties2AMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69538     operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT
69539     {
69540       return *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
69541     }
69542 
69543 
69544 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69545     auto operator<=>( PhysicalDeviceShaderCoreProperties2AMD const& ) const = default;
69546 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69547     bool operator==( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT
69548     {
69549       return ( sType == rhs.sType )
69550           && ( pNext == rhs.pNext )
69551           && ( shaderCoreFeatures == rhs.shaderCoreFeatures )
69552           && ( activeComputeUnitCount == rhs.activeComputeUnitCount );
69553     }
69554 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69555     bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT
69556     {
69557       return !operator==( rhs );
69558     }
69559 #endif
69560 
69561 
69562 
69563   public:
69564     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
69565     void* pNext = {};
69566     VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {};
69567     uint32_t activeComputeUnitCount = {};
69568 
69569   };
69570   static_assert( sizeof( PhysicalDeviceShaderCoreProperties2AMD ) == sizeof( VkPhysicalDeviceShaderCoreProperties2AMD ), "struct and wrapper have different size!" );
69571   static_assert( std::is_standard_layout<PhysicalDeviceShaderCoreProperties2AMD>::value, "struct wrapper is not a standard layout!" );
69572 
69573   template <>
69574   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreProperties2AMD>
69575   {
69576     using Type = PhysicalDeviceShaderCoreProperties2AMD;
69577   };
69578 
69579   struct PhysicalDeviceShaderCorePropertiesAMD
69580   {
69581     static const bool allowDuplicate = false;
69582     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
69583 
69584 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69585     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
69586     : 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_ )
69587     {}
69588 
69589     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69590 
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69591     PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
69592     {
69593       *this = rhs;
69594     }
69595 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69596 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69597     PhysicalDeviceShaderCorePropertiesAMD & operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
69598     {
69599       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD const *>( &rhs );
69600       return *this;
69601     }
69602 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69603     PhysicalDeviceShaderCorePropertiesAMD & operator=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
69604     {
69605       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderCorePropertiesAMD ) );
69606       return *this;
69607     }
69608 
69609 
operator VkPhysicalDeviceShaderCorePropertiesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69610     operator VkPhysicalDeviceShaderCorePropertiesAMD const&() const VULKAN_HPP_NOEXCEPT
69611     {
69612       return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
69613     }
69614 
operator VkPhysicalDeviceShaderCorePropertiesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69615     operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT
69616     {
69617       return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
69618     }
69619 
69620 
69621 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69622     auto operator<=>( PhysicalDeviceShaderCorePropertiesAMD const& ) const = default;
69623 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69624     bool operator==( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
69625     {
69626       return ( sType == rhs.sType )
69627           && ( pNext == rhs.pNext )
69628           && ( shaderEngineCount == rhs.shaderEngineCount )
69629           && ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount )
69630           && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray )
69631           && ( simdPerComputeUnit == rhs.simdPerComputeUnit )
69632           && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd )
69633           && ( wavefrontSize == rhs.wavefrontSize )
69634           && ( sgprsPerSimd == rhs.sgprsPerSimd )
69635           && ( minSgprAllocation == rhs.minSgprAllocation )
69636           && ( maxSgprAllocation == rhs.maxSgprAllocation )
69637           && ( sgprAllocationGranularity == rhs.sgprAllocationGranularity )
69638           && ( vgprsPerSimd == rhs.vgprsPerSimd )
69639           && ( minVgprAllocation == rhs.minVgprAllocation )
69640           && ( maxVgprAllocation == rhs.maxVgprAllocation )
69641           && ( vgprAllocationGranularity == rhs.vgprAllocationGranularity );
69642     }
69643 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69644     bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
69645     {
69646       return !operator==( rhs );
69647     }
69648 #endif
69649 
69650 
69651 
69652   public:
69653     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
69654     void* pNext = {};
69655     uint32_t shaderEngineCount = {};
69656     uint32_t shaderArraysPerEngineCount = {};
69657     uint32_t computeUnitsPerShaderArray = {};
69658     uint32_t simdPerComputeUnit = {};
69659     uint32_t wavefrontsPerSimd = {};
69660     uint32_t wavefrontSize = {};
69661     uint32_t sgprsPerSimd = {};
69662     uint32_t minSgprAllocation = {};
69663     uint32_t maxSgprAllocation = {};
69664     uint32_t sgprAllocationGranularity = {};
69665     uint32_t vgprsPerSimd = {};
69666     uint32_t minVgprAllocation = {};
69667     uint32_t maxVgprAllocation = {};
69668     uint32_t vgprAllocationGranularity = {};
69669 
69670   };
69671   static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), "struct and wrapper have different size!" );
69672   static_assert( std::is_standard_layout<PhysicalDeviceShaderCorePropertiesAMD>::value, "struct wrapper is not a standard layout!" );
69673 
69674   template <>
69675   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCorePropertiesAMD>
69676   {
69677     using Type = PhysicalDeviceShaderCorePropertiesAMD;
69678   };
69679 
69680   struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
69681   {
69682     static const bool allowDuplicate = false;
69683     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
69684 
69685 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69686     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {}) VULKAN_HPP_NOEXCEPT
69687     : shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
69688     {}
69689 
69690     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69691 
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69692     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69693     {
69694       *this = rhs;
69695     }
69696 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69697 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69698     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69699     {
69700       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const *>( &rhs );
69701       return *this;
69702     }
69703 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69704     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69705     {
69706       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) );
69707       return *this;
69708     }
69709 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69710     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69711     {
69712       pNext = pNext_;
69713       return *this;
69714     }
69715 
setShaderDemoteToHelperInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69716     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
69717     {
69718       shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
69719       return *this;
69720     }
69721 
69722 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69723     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
69724     {
69725       return *reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
69726     }
69727 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69728     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
69729     {
69730       return *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
69731     }
69732 
69733 
69734 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69735     auto operator<=>( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& ) const = default;
69736 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69737     bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69738     {
69739       return ( sType == rhs.sType )
69740           && ( pNext == rhs.pNext )
69741           && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation );
69742     }
69743 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69744     bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69745     {
69746       return !operator==( rhs );
69747     }
69748 #endif
69749 
69750 
69751 
69752   public:
69753     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
69754     void* pNext = {};
69755     VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {};
69756 
69757   };
69758   static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), "struct and wrapper have different size!" );
69759   static_assert( std::is_standard_layout<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
69760 
69761   template <>
69762   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>
69763   {
69764     using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
69765   };
69766 
69767   struct PhysicalDeviceShaderDrawParametersFeatures
69768   {
69769     static const bool allowDuplicate = false;
69770     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
69771 
69772 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69773     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {}) VULKAN_HPP_NOEXCEPT
69774     : shaderDrawParameters( shaderDrawParameters_ )
69775     {}
69776 
69777     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69778 
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69779     PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69780     {
69781       *this = rhs;
69782     }
69783 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69784 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69785     PhysicalDeviceShaderDrawParametersFeatures & operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69786     {
69787       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures const *>( &rhs );
69788       return *this;
69789     }
69790 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69791     PhysicalDeviceShaderDrawParametersFeatures & operator=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69792     {
69793       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderDrawParametersFeatures ) );
69794       return *this;
69795     }
69796 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69797     PhysicalDeviceShaderDrawParametersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69798     {
69799       pNext = pNext_;
69800       return *this;
69801     }
69802 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69803     PhysicalDeviceShaderDrawParametersFeatures & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
69804     {
69805       shaderDrawParameters = shaderDrawParameters_;
69806       return *this;
69807     }
69808 
69809 
operator VkPhysicalDeviceShaderDrawParametersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69810     operator VkPhysicalDeviceShaderDrawParametersFeatures const&() const VULKAN_HPP_NOEXCEPT
69811     {
69812       return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
69813     }
69814 
operator VkPhysicalDeviceShaderDrawParametersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69815     operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT
69816     {
69817       return *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
69818     }
69819 
69820 
69821 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69822     auto operator<=>( PhysicalDeviceShaderDrawParametersFeatures const& ) const = default;
69823 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69824     bool operator==( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69825     {
69826       return ( sType == rhs.sType )
69827           && ( pNext == rhs.pNext )
69828           && ( shaderDrawParameters == rhs.shaderDrawParameters );
69829     }
69830 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69831     bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69832     {
69833       return !operator==( rhs );
69834     }
69835 #endif
69836 
69837 
69838 
69839   public:
69840     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
69841     void* pNext = {};
69842     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
69843 
69844   };
69845   static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), "struct and wrapper have different size!" );
69846   static_assert( std::is_standard_layout<PhysicalDeviceShaderDrawParametersFeatures>::value, "struct wrapper is not a standard layout!" );
69847 
69848   template <>
69849   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDrawParametersFeatures>
69850   {
69851     using Type = PhysicalDeviceShaderDrawParametersFeatures;
69852   };
69853   using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
69854 
69855   struct PhysicalDeviceShaderFloat16Int8Features
69856   {
69857     static const bool allowDuplicate = false;
69858     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
69859 
69860 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69861     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features(VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}) VULKAN_HPP_NOEXCEPT
69862     : shaderFloat16( shaderFloat16_ ), shaderInt8( shaderInt8_ )
69863     {}
69864 
69865     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69866 
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69867     PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
69868     {
69869       *this = rhs;
69870     }
69871 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69872 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69873     PhysicalDeviceShaderFloat16Int8Features & operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
69874     {
69875       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features const *>( &rhs );
69876       return *this;
69877     }
69878 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69879     PhysicalDeviceShaderFloat16Int8Features & operator=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
69880     {
69881       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderFloat16Int8Features ) );
69882       return *this;
69883     }
69884 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69885     PhysicalDeviceShaderFloat16Int8Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69886     {
69887       pNext = pNext_;
69888       return *this;
69889     }
69890 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69891     PhysicalDeviceShaderFloat16Int8Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
69892     {
69893       shaderFloat16 = shaderFloat16_;
69894       return *this;
69895     }
69896 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69897     PhysicalDeviceShaderFloat16Int8Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
69898     {
69899       shaderInt8 = shaderInt8_;
69900       return *this;
69901     }
69902 
69903 
operator VkPhysicalDeviceShaderFloat16Int8Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69904     operator VkPhysicalDeviceShaderFloat16Int8Features const&() const VULKAN_HPP_NOEXCEPT
69905     {
69906       return *reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>( this );
69907     }
69908 
operator VkPhysicalDeviceShaderFloat16Int8Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69909     operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT
69910     {
69911       return *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>( this );
69912     }
69913 
69914 
69915 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69916     auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const& ) const = default;
69917 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69918     bool operator==( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT
69919     {
69920       return ( sType == rhs.sType )
69921           && ( pNext == rhs.pNext )
69922           && ( shaderFloat16 == rhs.shaderFloat16 )
69923           && ( shaderInt8 == rhs.shaderInt8 );
69924     }
69925 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69926     bool operator!=( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT
69927     {
69928       return !operator==( rhs );
69929     }
69930 #endif
69931 
69932 
69933 
69934   public:
69935     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
69936     void* pNext = {};
69937     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
69938     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
69939 
69940   };
69941   static_assert( sizeof( PhysicalDeviceShaderFloat16Int8Features ) == sizeof( VkPhysicalDeviceShaderFloat16Int8Features ), "struct and wrapper have different size!" );
69942   static_assert( std::is_standard_layout<PhysicalDeviceShaderFloat16Int8Features>::value, "struct wrapper is not a standard layout!" );
69943 
69944   template <>
69945   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderFloat16Int8Features>
69946   {
69947     using Type = PhysicalDeviceShaderFloat16Int8Features;
69948   };
69949   using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
69950   using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
69951 
69952   struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
69953   {
69954     static const bool allowDuplicate = false;
69955     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
69956 
69957 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderImageAtomicInt64FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69958     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT
69959     : shaderImageInt64Atomics( shaderImageInt64Atomics_ ), sparseImageInt64Atomics( sparseImageInt64Atomics_ )
69960     {}
69961 
69962     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69963 
PhysicalDeviceShaderImageAtomicInt64FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69964     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69965     {
69966       *this = rhs;
69967     }
69968 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69969 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69970     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69971     {
69972       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const *>( &rhs );
69973       return *this;
69974     }
69975 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69976     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69977     {
69978       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT ) );
69979       return *this;
69980     }
69981 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69982     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69983     {
69984       pNext = pNext_;
69985       return *this;
69986     }
69987 
setShaderImageInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69988     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
69989     {
69990       shaderImageInt64Atomics = shaderImageInt64Atomics_;
69991       return *this;
69992     }
69993 
setSparseImageInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69994     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
69995     {
69996       sparseImageInt64Atomics = sparseImageInt64Atomics_;
69997       return *this;
69998     }
69999 
70000 
operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70001     operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
70002     {
70003       return *reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>( this );
70004     }
70005 
operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70006     operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT
70007     {
70008       return *reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>( this );
70009     }
70010 
70011 
70012 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70013     auto operator<=>( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& ) const = default;
70014 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70015     bool operator==( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70016     {
70017       return ( sType == rhs.sType )
70018           && ( pNext == rhs.pNext )
70019           && ( shaderImageInt64Atomics == rhs.shaderImageInt64Atomics )
70020           && ( sparseImageInt64Atomics == rhs.sparseImageInt64Atomics );
70021     }
70022 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70023     bool operator!=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70024     {
70025       return !operator==( rhs );
70026     }
70027 #endif
70028 
70029 
70030 
70031   public:
70032     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
70033     void* pNext = {};
70034     VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics = {};
70035     VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics = {};
70036 
70037   };
70038   static_assert( sizeof( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT ) == sizeof( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT ), "struct and wrapper have different size!" );
70039   static_assert( std::is_standard_layout<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
70040 
70041   template <>
70042   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT>
70043   {
70044     using Type = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
70045   };
70046 
70047   struct PhysicalDeviceShaderImageFootprintFeaturesNV
70048   {
70049     static const bool allowDuplicate = false;
70050     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
70051 
70052 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70053     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {}) VULKAN_HPP_NOEXCEPT
70054     : imageFootprint( imageFootprint_ )
70055     {}
70056 
70057     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70058 
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70059     PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70060     {
70061       *this = rhs;
70062     }
70063 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70064 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70065     PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70066     {
70067       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV const *>( &rhs );
70068       return *this;
70069     }
70070 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70071     PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70072     {
70073       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) );
70074       return *this;
70075     }
70076 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70077     PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70078     {
70079       pNext = pNext_;
70080       return *this;
70081     }
70082 
setImageFootprintVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70083     PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT
70084     {
70085       imageFootprint = imageFootprint_;
70086       return *this;
70087     }
70088 
70089 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70090     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
70091     {
70092       return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
70093     }
70094 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70095     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT
70096     {
70097       return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
70098     }
70099 
70100 
70101 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70102     auto operator<=>( PhysicalDeviceShaderImageFootprintFeaturesNV const& ) const = default;
70103 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70104     bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70105     {
70106       return ( sType == rhs.sType )
70107           && ( pNext == rhs.pNext )
70108           && ( imageFootprint == rhs.imageFootprint );
70109     }
70110 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70111     bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70112     {
70113       return !operator==( rhs );
70114     }
70115 #endif
70116 
70117 
70118 
70119   public:
70120     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
70121     void* pNext = {};
70122     VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {};
70123 
70124   };
70125   static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "struct and wrapper have different size!" );
70126   static_assert( std::is_standard_layout<PhysicalDeviceShaderImageFootprintFeaturesNV>::value, "struct wrapper is not a standard layout!" );
70127 
70128   template <>
70129   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV>
70130   {
70131     using Type = PhysicalDeviceShaderImageFootprintFeaturesNV;
70132   };
70133 
70134   struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
70135   {
70136     static const bool allowDuplicate = false;
70137     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
70138 
70139 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70140     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {}) VULKAN_HPP_NOEXCEPT
70141     : shaderIntegerFunctions2( shaderIntegerFunctions2_ )
70142     {}
70143 
70144     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70145 
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70146     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
70147     {
70148       *this = rhs;
70149     }
70150 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70151 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70152     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
70153     {
70154       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>( &rhs );
70155       return *this;
70156     }
70157 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70158     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
70159     {
70160       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) );
70161       return *this;
70162     }
70163 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70164     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70165     {
70166       pNext = pNext_;
70167       return *this;
70168     }
70169 
setShaderIntegerFunctions2VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70170     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT
70171     {
70172       shaderIntegerFunctions2 = shaderIntegerFunctions2_;
70173       return *this;
70174     }
70175 
70176 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70177     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&() const VULKAN_HPP_NOEXCEPT
70178     {
70179       return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
70180     }
70181 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70182     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT
70183     {
70184       return *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
70185     }
70186 
70187 
70188 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70189     auto operator<=>( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& ) const = default;
70190 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70191     bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
70192     {
70193       return ( sType == rhs.sType )
70194           && ( pNext == rhs.pNext )
70195           && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 );
70196     }
70197 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70198     bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
70199     {
70200       return !operator==( rhs );
70201     }
70202 #endif
70203 
70204 
70205 
70206   public:
70207     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
70208     void* pNext = {};
70209     VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {};
70210 
70211   };
70212   static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) == sizeof( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ), "struct and wrapper have different size!" );
70213   static_assert( std::is_standard_layout<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>::value, "struct wrapper is not a standard layout!" );
70214 
70215   template <>
70216   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>
70217   {
70218     using Type = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
70219   };
70220 
70221   struct PhysicalDeviceShaderSMBuiltinsFeaturesNV
70222   {
70223     static const bool allowDuplicate = false;
70224     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
70225 
70226 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70227     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {}) VULKAN_HPP_NOEXCEPT
70228     : shaderSMBuiltins( shaderSMBuiltins_ )
70229     {}
70230 
70231     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70232 
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70233     PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70234     {
70235       *this = rhs;
70236     }
70237 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70238 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70239     PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70240     {
70241       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>( &rhs );
70242       return *this;
70243     }
70244 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70245     PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70246     {
70247       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) );
70248       return *this;
70249     }
70250 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70251     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70252     {
70253       pNext = pNext_;
70254       return *this;
70255     }
70256 
setShaderSMBuiltinsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70257     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT
70258     {
70259       shaderSMBuiltins = shaderSMBuiltins_;
70260       return *this;
70261     }
70262 
70263 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70264     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
70265     {
70266       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
70267     }
70268 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70269     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT
70270     {
70271       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
70272     }
70273 
70274 
70275 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70276     auto operator<=>( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& ) const = default;
70277 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70278     bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70279     {
70280       return ( sType == rhs.sType )
70281           && ( pNext == rhs.pNext )
70282           && ( shaderSMBuiltins == rhs.shaderSMBuiltins );
70283     }
70284 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70285     bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70286     {
70287       return !operator==( rhs );
70288     }
70289 #endif
70290 
70291 
70292 
70293   public:
70294     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
70295     void* pNext = {};
70296     VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {};
70297 
70298   };
70299   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), "struct and wrapper have different size!" );
70300   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
70301 
70302   template <>
70303   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV>
70304   {
70305     using Type = PhysicalDeviceShaderSMBuiltinsFeaturesNV;
70306   };
70307 
70308   struct PhysicalDeviceShaderSMBuiltinsPropertiesNV
70309   {
70310     static const bool allowDuplicate = false;
70311     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
70312 
70313 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70314     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV(uint32_t shaderSMCount_ = {}, uint32_t shaderWarpsPerSM_ = {}) VULKAN_HPP_NOEXCEPT
70315     : shaderSMCount( shaderSMCount_ ), shaderWarpsPerSM( shaderWarpsPerSM_ )
70316     {}
70317 
70318     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70319 
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70320     PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70321     {
70322       *this = rhs;
70323     }
70324 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70325 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70326     PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70327     {
70328       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>( &rhs );
70329       return *this;
70330     }
70331 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70332     PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70333     {
70334       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) );
70335       return *this;
70336     }
70337 
70338 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70339     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
70340     {
70341       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
70342     }
70343 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70344     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT
70345     {
70346       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
70347     }
70348 
70349 
70350 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70351     auto operator<=>( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& ) const = default;
70352 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70353     bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70354     {
70355       return ( sType == rhs.sType )
70356           && ( pNext == rhs.pNext )
70357           && ( shaderSMCount == rhs.shaderSMCount )
70358           && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM );
70359     }
70360 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70361     bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70362     {
70363       return !operator==( rhs );
70364     }
70365 #endif
70366 
70367 
70368 
70369   public:
70370     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
70371     void* pNext = {};
70372     uint32_t shaderSMCount = {};
70373     uint32_t shaderWarpsPerSM = {};
70374 
70375   };
70376   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), "struct and wrapper have different size!" );
70377   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
70378 
70379   template <>
70380   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV>
70381   {
70382     using Type = PhysicalDeviceShaderSMBuiltinsPropertiesNV;
70383   };
70384 
70385   struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures
70386   {
70387     static const bool allowDuplicate = false;
70388     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
70389 
70390 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70391     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}) VULKAN_HPP_NOEXCEPT
70392     : shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
70393     {}
70394 
70395     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70396 
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70397     PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70398     {
70399       *this = rhs;
70400     }
70401 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70402 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70403     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70404     {
70405       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>( &rhs );
70406       return *this;
70407     }
70408 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70409     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70410     {
70411       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) );
70412       return *this;
70413     }
70414 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70415     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70416     {
70417       pNext = pNext_;
70418       return *this;
70419     }
70420 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70421     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
70422     {
70423       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
70424       return *this;
70425     }
70426 
70427 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70428     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&() const VULKAN_HPP_NOEXCEPT
70429     {
70430       return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
70431     }
70432 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70433     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT
70434     {
70435       return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
70436     }
70437 
70438 
70439 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70440     auto operator<=>( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& ) const = default;
70441 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70442     bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70443     {
70444       return ( sType == rhs.sType )
70445           && ( pNext == rhs.pNext )
70446           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes );
70447     }
70448 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70449     bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70450     {
70451       return !operator==( rhs );
70452     }
70453 #endif
70454 
70455 
70456 
70457   public:
70458     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
70459     void* pNext = {};
70460     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
70461 
70462   };
70463   static_assert( sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) == sizeof( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures ), "struct and wrapper have different size!" );
70464   static_assert( std::is_standard_layout<PhysicalDeviceShaderSubgroupExtendedTypesFeatures>::value, "struct wrapper is not a standard layout!" );
70465 
70466   template <>
70467   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures>
70468   {
70469     using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
70470   };
70471   using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
70472 
70473   struct PhysicalDeviceShaderTerminateInvocationFeaturesKHR
70474   {
70475     static const bool allowDuplicate = false;
70476     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR;
70477 
70478 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderTerminateInvocationFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70479     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {}) VULKAN_HPP_NOEXCEPT
70480     : shaderTerminateInvocation( shaderTerminateInvocation_ )
70481     {}
70482 
70483     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70484 
PhysicalDeviceShaderTerminateInvocationFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70485     PhysicalDeviceShaderTerminateInvocationFeaturesKHR( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70486     {
70487       *this = rhs;
70488     }
70489 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70490 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70491     PhysicalDeviceShaderTerminateInvocationFeaturesKHR & operator=( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70492     {
70493       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR const *>( &rhs );
70494       return *this;
70495     }
70496 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70497     PhysicalDeviceShaderTerminateInvocationFeaturesKHR & operator=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70498     {
70499       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderTerminateInvocationFeaturesKHR ) );
70500       return *this;
70501     }
70502 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70503     PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70504     {
70505       pNext = pNext_;
70506       return *this;
70507     }
70508 
setShaderTerminateInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70509     PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
70510     {
70511       shaderTerminateInvocation = shaderTerminateInvocation_;
70512       return *this;
70513     }
70514 
70515 
operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70516     operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
70517     {
70518       return *reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>( this );
70519     }
70520 
operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70521     operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR &() VULKAN_HPP_NOEXCEPT
70522     {
70523       return *reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>( this );
70524     }
70525 
70526 
70527 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70528     auto operator<=>( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& ) const = default;
70529 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70530     bool operator==( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
70531     {
70532       return ( sType == rhs.sType )
70533           && ( pNext == rhs.pNext )
70534           && ( shaderTerminateInvocation == rhs.shaderTerminateInvocation );
70535     }
70536 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70537     bool operator!=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
70538     {
70539       return !operator==( rhs );
70540     }
70541 #endif
70542 
70543 
70544 
70545   public:
70546     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR;
70547     void* pNext = {};
70548     VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {};
70549 
70550   };
70551   static_assert( sizeof( PhysicalDeviceShaderTerminateInvocationFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR ), "struct and wrapper have different size!" );
70552   static_assert( std::is_standard_layout<PhysicalDeviceShaderTerminateInvocationFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
70553 
70554   template <>
70555   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR>
70556   {
70557     using Type = PhysicalDeviceShaderTerminateInvocationFeaturesKHR;
70558   };
70559 
70560   struct PhysicalDeviceShadingRateImageFeaturesNV
70561   {
70562     static const bool allowDuplicate = false;
70563     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
70564 
70565 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70566     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {}) VULKAN_HPP_NOEXCEPT
70567     : shadingRateImage( shadingRateImage_ ), shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ )
70568     {}
70569 
70570     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70571 
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70572     PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70573     {
70574       *this = rhs;
70575     }
70576 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70577 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70578     PhysicalDeviceShadingRateImageFeaturesNV & operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70579     {
70580       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV const *>( &rhs );
70581       return *this;
70582     }
70583 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70584     PhysicalDeviceShadingRateImageFeaturesNV & operator=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70585     {
70586       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) );
70587       return *this;
70588     }
70589 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70590     PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70591     {
70592       pNext = pNext_;
70593       return *this;
70594     }
70595 
setShadingRateImageVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70596     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT
70597     {
70598       shadingRateImage = shadingRateImage_;
70599       return *this;
70600     }
70601 
setShadingRateCoarseSampleOrderVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70602     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT
70603     {
70604       shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
70605       return *this;
70606     }
70607 
70608 
operator VkPhysicalDeviceShadingRateImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70609     operator VkPhysicalDeviceShadingRateImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
70610     {
70611       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
70612     }
70613 
operator VkPhysicalDeviceShadingRateImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70614     operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
70615     {
70616       return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
70617     }
70618 
70619 
70620 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70621     auto operator<=>( PhysicalDeviceShadingRateImageFeaturesNV const& ) const = default;
70622 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70623     bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70624     {
70625       return ( sType == rhs.sType )
70626           && ( pNext == rhs.pNext )
70627           && ( shadingRateImage == rhs.shadingRateImage )
70628           && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder );
70629     }
70630 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70631     bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70632     {
70633       return !operator==( rhs );
70634     }
70635 #endif
70636 
70637 
70638 
70639   public:
70640     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
70641     void* pNext = {};
70642     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {};
70643     VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {};
70644 
70645   };
70646   static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "struct and wrapper have different size!" );
70647   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
70648 
70649   template <>
70650   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImageFeaturesNV>
70651   {
70652     using Type = PhysicalDeviceShadingRateImageFeaturesNV;
70653   };
70654 
70655   struct PhysicalDeviceShadingRateImagePropertiesNV
70656   {
70657     static const bool allowDuplicate = false;
70658     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
70659 
70660 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV70661     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV(VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {}, uint32_t shadingRatePaletteSize_ = {}, uint32_t shadingRateMaxCoarseSamples_ = {}) VULKAN_HPP_NOEXCEPT
70662     : shadingRateTexelSize( shadingRateTexelSize_ ), shadingRatePaletteSize( shadingRatePaletteSize_ ), shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ )
70663     {}
70664 
70665     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70666 
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV70667     PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70668     {
70669       *this = rhs;
70670     }
70671 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70672 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV70673     PhysicalDeviceShadingRateImagePropertiesNV & operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70674     {
70675       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV const *>( &rhs );
70676       return *this;
70677     }
70678 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV70679     PhysicalDeviceShadingRateImagePropertiesNV & operator=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70680     {
70681       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) );
70682       return *this;
70683     }
70684 
70685 
operator VkPhysicalDeviceShadingRateImagePropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV70686     operator VkPhysicalDeviceShadingRateImagePropertiesNV const&() const VULKAN_HPP_NOEXCEPT
70687     {
70688       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
70689     }
70690 
operator VkPhysicalDeviceShadingRateImagePropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV70691     operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT
70692     {
70693       return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
70694     }
70695 
70696 
70697 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70698     auto operator<=>( PhysicalDeviceShadingRateImagePropertiesNV const& ) const = default;
70699 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV70700     bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70701     {
70702       return ( sType == rhs.sType )
70703           && ( pNext == rhs.pNext )
70704           && ( shadingRateTexelSize == rhs.shadingRateTexelSize )
70705           && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize )
70706           && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples );
70707     }
70708 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV70709     bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70710     {
70711       return !operator==( rhs );
70712     }
70713 #endif
70714 
70715 
70716 
70717   public:
70718     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
70719     void* pNext = {};
70720     VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {};
70721     uint32_t shadingRatePaletteSize = {};
70722     uint32_t shadingRateMaxCoarseSamples = {};
70723 
70724   };
70725   static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "struct and wrapper have different size!" );
70726   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImagePropertiesNV>::value, "struct wrapper is not a standard layout!" );
70727 
70728   template <>
70729   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImagePropertiesNV>
70730   {
70731     using Type = PhysicalDeviceShadingRateImagePropertiesNV;
70732   };
70733 
70734   struct PhysicalDeviceSubgroupProperties
70735   {
70736     static const bool allowDuplicate = false;
70737     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupProperties;
70738 
70739 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70740     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
70741     : subgroupSize( subgroupSize_ ), supportedStages( supportedStages_ ), supportedOperations( supportedOperations_ ), quadOperationsInAllStages( quadOperationsInAllStages_ )
70742     {}
70743 
70744     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70745 
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70746     PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70747     {
70748       *this = rhs;
70749     }
70750 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70751 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70752     PhysicalDeviceSubgroupProperties & operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70753     {
70754       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties const *>( &rhs );
70755       return *this;
70756     }
70757 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70758     PhysicalDeviceSubgroupProperties & operator=( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70759     {
70760       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSubgroupProperties ) );
70761       return *this;
70762     }
70763 
70764 
operator VkPhysicalDeviceSubgroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70765     operator VkPhysicalDeviceSubgroupProperties const&() const VULKAN_HPP_NOEXCEPT
70766     {
70767       return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>( this );
70768     }
70769 
operator VkPhysicalDeviceSubgroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70770     operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT
70771     {
70772       return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>( this );
70773     }
70774 
70775 
70776 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70777     auto operator<=>( PhysicalDeviceSubgroupProperties const& ) const = default;
70778 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70779     bool operator==( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
70780     {
70781       return ( sType == rhs.sType )
70782           && ( pNext == rhs.pNext )
70783           && ( subgroupSize == rhs.subgroupSize )
70784           && ( supportedStages == rhs.supportedStages )
70785           && ( supportedOperations == rhs.supportedOperations )
70786           && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages );
70787     }
70788 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70789     bool operator!=( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
70790     {
70791       return !operator==( rhs );
70792     }
70793 #endif
70794 
70795 
70796 
70797   public:
70798     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties;
70799     void* pNext = {};
70800     uint32_t subgroupSize = {};
70801     VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {};
70802     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {};
70803     VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {};
70804 
70805   };
70806   static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), "struct and wrapper have different size!" );
70807   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupProperties>::value, "struct wrapper is not a standard layout!" );
70808 
70809   template <>
70810   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupProperties>
70811   {
70812     using Type = PhysicalDeviceSubgroupProperties;
70813   };
70814 
70815   struct PhysicalDeviceSubgroupSizeControlFeaturesEXT
70816   {
70817     static const bool allowDuplicate = false;
70818     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT;
70819 
70820 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70821     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {}) VULKAN_HPP_NOEXCEPT
70822     : subgroupSizeControl( subgroupSizeControl_ ), computeFullSubgroups( computeFullSubgroups_ )
70823     {}
70824 
70825     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70826 
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70827     PhysicalDeviceSubgroupSizeControlFeaturesEXT( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70828     {
70829       *this = rhs;
70830     }
70831 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70832 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70833     PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70834     {
70835       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT const *>( &rhs );
70836       return *this;
70837     }
70838 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70839     PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70840     {
70841       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) );
70842       return *this;
70843     }
70844 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70845     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70846     {
70847       pNext = pNext_;
70848       return *this;
70849     }
70850 
setSubgroupSizeControlVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70851     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
70852     {
70853       subgroupSizeControl = subgroupSizeControl_;
70854       return *this;
70855     }
70856 
setComputeFullSubgroupsVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70857     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
70858     {
70859       computeFullSubgroups = computeFullSubgroups_;
70860       return *this;
70861     }
70862 
70863 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70864     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
70865     {
70866       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
70867     }
70868 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70869     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
70870     {
70871       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
70872     }
70873 
70874 
70875 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70876     auto operator<=>( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& ) const = default;
70877 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70878     bool operator==( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70879     {
70880       return ( sType == rhs.sType )
70881           && ( pNext == rhs.pNext )
70882           && ( subgroupSizeControl == rhs.subgroupSizeControl )
70883           && ( computeFullSubgroups == rhs.computeFullSubgroups );
70884     }
70885 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70886     bool operator!=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70887     {
70888       return !operator==( rhs );
70889     }
70890 #endif
70891 
70892 
70893 
70894   public:
70895     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT;
70896     void* pNext = {};
70897     VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {};
70898     VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {};
70899 
70900   };
70901   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT ), "struct and wrapper have different size!" );
70902   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
70903 
70904   template <>
70905   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT>
70906   {
70907     using Type = PhysicalDeviceSubgroupSizeControlFeaturesEXT;
70908   };
70909 
70910   struct PhysicalDeviceSubgroupSizeControlPropertiesEXT
70911   {
70912     static const bool allowDuplicate = false;
70913     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT;
70914 
70915 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70916     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT(uint32_t minSubgroupSize_ = {}, uint32_t maxSubgroupSize_ = {}, uint32_t maxComputeWorkgroupSubgroups_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {}) VULKAN_HPP_NOEXCEPT
70917     : minSubgroupSize( minSubgroupSize_ ), maxSubgroupSize( maxSubgroupSize_ ), maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ ), requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
70918     {}
70919 
70920     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70921 
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70922     PhysicalDeviceSubgroupSizeControlPropertiesEXT( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70923     {
70924       *this = rhs;
70925     }
70926 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70927 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70928     PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70929     {
70930       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT const *>( &rhs );
70931       return *this;
70932     }
70933 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70934     PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70935     {
70936       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) );
70937       return *this;
70938     }
70939 
70940 
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70941     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
70942     {
70943       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
70944     }
70945 
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70946     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &() VULKAN_HPP_NOEXCEPT
70947     {
70948       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
70949     }
70950 
70951 
70952 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70953     auto operator<=>( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& ) const = default;
70954 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70955     bool operator==( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70956     {
70957       return ( sType == rhs.sType )
70958           && ( pNext == rhs.pNext )
70959           && ( minSubgroupSize == rhs.minSubgroupSize )
70960           && ( maxSubgroupSize == rhs.maxSubgroupSize )
70961           && ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups )
70962           && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages );
70963     }
70964 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70965     bool operator!=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70966     {
70967       return !operator==( rhs );
70968     }
70969 #endif
70970 
70971 
70972 
70973   public:
70974     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT;
70975     void* pNext = {};
70976     uint32_t minSubgroupSize = {};
70977     uint32_t maxSubgroupSize = {};
70978     uint32_t maxComputeWorkgroupSubgroups = {};
70979     VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {};
70980 
70981   };
70982   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT ), "struct and wrapper have different size!" );
70983   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
70984 
70985   template <>
70986   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT>
70987   {
70988     using Type = PhysicalDeviceSubgroupSizeControlPropertiesEXT;
70989   };
70990 
70991   struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
70992   {
70993     static const bool allowDuplicate = false;
70994     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
70995 
70996 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT70997     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {}) VULKAN_HPP_NOEXCEPT
70998     : texelBufferAlignment( texelBufferAlignment_ )
70999     {}
71000 
71001     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71002 
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71003     PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71004     {
71005       *this = rhs;
71006     }
71007 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71008 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71009     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71010     {
71011       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>( &rhs );
71012       return *this;
71013     }
71014 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71015     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71016     {
71017       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) );
71018       return *this;
71019     }
71020 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71021     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71022     {
71023       pNext = pNext_;
71024       return *this;
71025     }
71026 
setTexelBufferAlignmentVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71027     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT
71028     {
71029       texelBufferAlignment = texelBufferAlignment_;
71030       return *this;
71031     }
71032 
71033 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71034     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71035     {
71036       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
71037     }
71038 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71039     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71040     {
71041       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
71042     }
71043 
71044 
71045 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71046     auto operator<=>( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& ) const = default;
71047 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71048     bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71049     {
71050       return ( sType == rhs.sType )
71051           && ( pNext == rhs.pNext )
71052           && ( texelBufferAlignment == rhs.texelBufferAlignment );
71053     }
71054 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71055     bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71056     {
71057       return !operator==( rhs );
71058     }
71059 #endif
71060 
71061 
71062 
71063   public:
71064     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
71065     void* pNext = {};
71066     VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {};
71067 
71068   };
71069   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), "struct and wrapper have different size!" );
71070   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71071 
71072   template <>
71073   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT>
71074   {
71075     using Type = PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
71076   };
71077 
71078   struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT
71079   {
71080     static const bool allowDuplicate = false;
71081     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
71082 
71083 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71084     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
71085     : storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ ), storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ ), uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ ), uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
71086     {}
71087 
71088     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71089 
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71090     PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71091     {
71092       *this = rhs;
71093     }
71094 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71095 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71096     PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71097     {
71098       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT const *>( &rhs );
71099       return *this;
71100     }
71101 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71102     PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71103     {
71104       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) );
71105       return *this;
71106     }
71107 
71108 
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71109     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
71110     {
71111       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
71112     }
71113 
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71114     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &() VULKAN_HPP_NOEXCEPT
71115     {
71116       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
71117     }
71118 
71119 
71120 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71121     auto operator<=>( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& ) const = default;
71122 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71123     bool operator==( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71124     {
71125       return ( sType == rhs.sType )
71126           && ( pNext == rhs.pNext )
71127           && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes )
71128           && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment )
71129           && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes )
71130           && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment );
71131     }
71132 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71133     bool operator!=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71134     {
71135       return !operator==( rhs );
71136     }
71137 #endif
71138 
71139 
71140 
71141   public:
71142     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
71143     void* pNext = {};
71144     VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {};
71145     VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {};
71146     VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {};
71147     VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {};
71148 
71149   };
71150   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), "struct and wrapper have different size!" );
71151   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
71152 
71153   template <>
71154   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT>
71155   {
71156     using Type = PhysicalDeviceTexelBufferAlignmentPropertiesEXT;
71157   };
71158 
71159   struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
71160   {
71161     static const bool allowDuplicate = false;
71162     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT;
71163 
71164 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71165     VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {}) VULKAN_HPP_NOEXCEPT
71166     : textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
71167     {}
71168 
71169     VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71170 
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71171     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71172     {
71173       *this = rhs;
71174     }
71175 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71176 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71177     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71178     {
71179       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const *>( &rhs );
71180       return *this;
71181     }
71182 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71183     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71184     {
71185       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) );
71186       return *this;
71187     }
71188 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71189     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71190     {
71191       pNext = pNext_;
71192       return *this;
71193     }
71194 
setTextureCompressionASTC_HDRVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71195     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
71196     {
71197       textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
71198       return *this;
71199     }
71200 
71201 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71202     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71203     {
71204       return *reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
71205     }
71206 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71207     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71208     {
71209       return *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
71210     }
71211 
71212 
71213 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71214     auto operator<=>( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& ) const = default;
71215 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71216     bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71217     {
71218       return ( sType == rhs.sType )
71219           && ( pNext == rhs.pNext )
71220           && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR );
71221     }
71222 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71223     bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71224     {
71225       return !operator==( rhs );
71226     }
71227 #endif
71228 
71229 
71230 
71231   public:
71232     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT;
71233     void* pNext = {};
71234     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {};
71235 
71236   };
71237   static_assert( sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) == sizeof( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ), "struct and wrapper have different size!" );
71238   static_assert( std::is_standard_layout<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71239 
71240   template <>
71241   struct CppType<StructureType, StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT>
71242   {
71243     using Type = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
71244   };
71245 
71246   struct PhysicalDeviceTimelineSemaphoreFeatures
71247   {
71248     static const bool allowDuplicate = false;
71249     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
71250 
71251 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71252     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures(VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}) VULKAN_HPP_NOEXCEPT
71253     : timelineSemaphore( timelineSemaphore_ )
71254     {}
71255 
71256     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71257 
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71258     PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71259     {
71260       *this = rhs;
71261     }
71262 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71263 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71264     PhysicalDeviceTimelineSemaphoreFeatures & operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71265     {
71266       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures const *>( &rhs );
71267       return *this;
71268     }
71269 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71270     PhysicalDeviceTimelineSemaphoreFeatures & operator=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71271     {
71272       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) );
71273       return *this;
71274     }
71275 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71276     PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71277     {
71278       pNext = pNext_;
71279       return *this;
71280     }
71281 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71282     PhysicalDeviceTimelineSemaphoreFeatures & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
71283     {
71284       timelineSemaphore = timelineSemaphore_;
71285       return *this;
71286     }
71287 
71288 
operator VkPhysicalDeviceTimelineSemaphoreFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71289     operator VkPhysicalDeviceTimelineSemaphoreFeatures const&() const VULKAN_HPP_NOEXCEPT
71290     {
71291       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
71292     }
71293 
operator VkPhysicalDeviceTimelineSemaphoreFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71294     operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT
71295     {
71296       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
71297     }
71298 
71299 
71300 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71301     auto operator<=>( PhysicalDeviceTimelineSemaphoreFeatures const& ) const = default;
71302 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71303     bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71304     {
71305       return ( sType == rhs.sType )
71306           && ( pNext == rhs.pNext )
71307           && ( timelineSemaphore == rhs.timelineSemaphore );
71308     }
71309 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71310     bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71311     {
71312       return !operator==( rhs );
71313     }
71314 #endif
71315 
71316 
71317 
71318   public:
71319     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
71320     void* pNext = {};
71321     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
71322 
71323   };
71324   static_assert( sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) == sizeof( VkPhysicalDeviceTimelineSemaphoreFeatures ), "struct and wrapper have different size!" );
71325   static_assert( std::is_standard_layout<PhysicalDeviceTimelineSemaphoreFeatures>::value, "struct wrapper is not a standard layout!" );
71326 
71327   template <>
71328   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreFeatures>
71329   {
71330     using Type = PhysicalDeviceTimelineSemaphoreFeatures;
71331   };
71332   using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
71333 
71334   struct PhysicalDeviceTimelineSemaphoreProperties
71335   {
71336     static const bool allowDuplicate = false;
71337     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
71338 
71339 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71340     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties(uint64_t maxTimelineSemaphoreValueDifference_ = {}) VULKAN_HPP_NOEXCEPT
71341     : maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
71342     {}
71343 
71344     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71345 
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71346     PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71347     {
71348       *this = rhs;
71349     }
71350 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71351 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71352     PhysicalDeviceTimelineSemaphoreProperties & operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71353     {
71354       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties const *>( &rhs );
71355       return *this;
71356     }
71357 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71358     PhysicalDeviceTimelineSemaphoreProperties & operator=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71359     {
71360       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTimelineSemaphoreProperties ) );
71361       return *this;
71362     }
71363 
71364 
operator VkPhysicalDeviceTimelineSemaphoreProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71365     operator VkPhysicalDeviceTimelineSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT
71366     {
71367       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
71368     }
71369 
operator VkPhysicalDeviceTimelineSemaphoreProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71370     operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
71371     {
71372       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
71373     }
71374 
71375 
71376 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71377     auto operator<=>( PhysicalDeviceTimelineSemaphoreProperties const& ) const = default;
71378 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71379     bool operator==( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
71380     {
71381       return ( sType == rhs.sType )
71382           && ( pNext == rhs.pNext )
71383           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference );
71384     }
71385 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71386     bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
71387     {
71388       return !operator==( rhs );
71389     }
71390 #endif
71391 
71392 
71393 
71394   public:
71395     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
71396     void* pNext = {};
71397     uint64_t maxTimelineSemaphoreValueDifference = {};
71398 
71399   };
71400   static_assert( sizeof( PhysicalDeviceTimelineSemaphoreProperties ) == sizeof( VkPhysicalDeviceTimelineSemaphoreProperties ), "struct and wrapper have different size!" );
71401   static_assert( std::is_standard_layout<PhysicalDeviceTimelineSemaphoreProperties>::value, "struct wrapper is not a standard layout!" );
71402 
71403   template <>
71404   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreProperties>
71405   {
71406     using Type = PhysicalDeviceTimelineSemaphoreProperties;
71407   };
71408   using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
71409 
71410   struct PhysicalDeviceTransformFeedbackFeaturesEXT
71411   {
71412     static const bool allowDuplicate = false;
71413     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
71414 
71415 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71416     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {}) VULKAN_HPP_NOEXCEPT
71417     : transformFeedback( transformFeedback_ ), geometryStreams( geometryStreams_ )
71418     {}
71419 
71420     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71421 
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71422     PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71423     {
71424       *this = rhs;
71425     }
71426 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71427 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71428     PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71429     {
71430       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT const *>( &rhs );
71431       return *this;
71432     }
71433 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71434     PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71435     {
71436       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) );
71437       return *this;
71438     }
71439 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71440     PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71441     {
71442       pNext = pNext_;
71443       return *this;
71444     }
71445 
setTransformFeedbackVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71446     PhysicalDeviceTransformFeedbackFeaturesEXT & setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT
71447     {
71448       transformFeedback = transformFeedback_;
71449       return *this;
71450     }
71451 
setGeometryStreamsVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71452     PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT
71453     {
71454       geometryStreams = geometryStreams_;
71455       return *this;
71456     }
71457 
71458 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71459     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71460     {
71461       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
71462     }
71463 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71464     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71465     {
71466       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
71467     }
71468 
71469 
71470 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71471     auto operator<=>( PhysicalDeviceTransformFeedbackFeaturesEXT const& ) const = default;
71472 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71473     bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71474     {
71475       return ( sType == rhs.sType )
71476           && ( pNext == rhs.pNext )
71477           && ( transformFeedback == rhs.transformFeedback )
71478           && ( geometryStreams == rhs.geometryStreams );
71479     }
71480 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71481     bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71482     {
71483       return !operator==( rhs );
71484     }
71485 #endif
71486 
71487 
71488 
71489   public:
71490     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
71491     void* pNext = {};
71492     VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {};
71493     VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {};
71494 
71495   };
71496   static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), "struct and wrapper have different size!" );
71497   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71498 
71499   template <>
71500   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT>
71501   {
71502     using Type = PhysicalDeviceTransformFeedbackFeaturesEXT;
71503   };
71504 
71505   struct PhysicalDeviceTransformFeedbackPropertiesEXT
71506   {
71507     static const bool allowDuplicate = false;
71508     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
71509 
71510 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71511     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
71512     : maxTransformFeedbackStreams( maxTransformFeedbackStreams_ ), maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ ), maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ ), maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ ), maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ ), maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ ), transformFeedbackQueries( transformFeedbackQueries_ ), transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ ), transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ ), transformFeedbackDraw( transformFeedbackDraw_ )
71513     {}
71514 
71515     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71516 
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71517     PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71518     {
71519       *this = rhs;
71520     }
71521 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71522 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71523     PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71524     {
71525       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT const *>( &rhs );
71526       return *this;
71527     }
71528 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71529     PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71530     {
71531       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) );
71532       return *this;
71533     }
71534 
71535 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71536     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
71537     {
71538       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
71539     }
71540 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71541     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT
71542     {
71543       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
71544     }
71545 
71546 
71547 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71548     auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const& ) const = default;
71549 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71550     bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71551     {
71552       return ( sType == rhs.sType )
71553           && ( pNext == rhs.pNext )
71554           && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams )
71555           && ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers )
71556           && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize )
71557           && ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize )
71558           && ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize )
71559           && ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride )
71560           && ( transformFeedbackQueries == rhs.transformFeedbackQueries )
71561           && ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles )
71562           && ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect )
71563           && ( transformFeedbackDraw == rhs.transformFeedbackDraw );
71564     }
71565 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71566     bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71567     {
71568       return !operator==( rhs );
71569     }
71570 #endif
71571 
71572 
71573 
71574   public:
71575     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
71576     void* pNext = {};
71577     uint32_t maxTransformFeedbackStreams = {};
71578     uint32_t maxTransformFeedbackBuffers = {};
71579     VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {};
71580     uint32_t maxTransformFeedbackStreamDataSize = {};
71581     uint32_t maxTransformFeedbackBufferDataSize = {};
71582     uint32_t maxTransformFeedbackBufferDataStride = {};
71583     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {};
71584     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {};
71585     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {};
71586     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {};
71587 
71588   };
71589   static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), "struct and wrapper have different size!" );
71590   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
71591 
71592   template <>
71593   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT>
71594   {
71595     using Type = PhysicalDeviceTransformFeedbackPropertiesEXT;
71596   };
71597 
71598   struct PhysicalDeviceUniformBufferStandardLayoutFeatures
71599   {
71600     static const bool allowDuplicate = false;
71601     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
71602 
71603 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71604     VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}) VULKAN_HPP_NOEXCEPT
71605     : uniformBufferStandardLayout( uniformBufferStandardLayout_ )
71606     {}
71607 
71608     VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71609 
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71610     PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71611     {
71612       *this = rhs;
71613     }
71614 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71615 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71616     PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71617     {
71618       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const *>( &rhs );
71619       return *this;
71620     }
71621 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71622     PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71623     {
71624       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) );
71625       return *this;
71626     }
71627 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71628     PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71629     {
71630       pNext = pNext_;
71631       return *this;
71632     }
71633 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71634     PhysicalDeviceUniformBufferStandardLayoutFeatures & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
71635     {
71636       uniformBufferStandardLayout = uniformBufferStandardLayout_;
71637       return *this;
71638     }
71639 
71640 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71641     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT
71642     {
71643       return *reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
71644     }
71645 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71646     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT
71647     {
71648       return *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
71649     }
71650 
71651 
71652 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71653     auto operator<=>( PhysicalDeviceUniformBufferStandardLayoutFeatures const& ) const = default;
71654 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71655     bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71656     {
71657       return ( sType == rhs.sType )
71658           && ( pNext == rhs.pNext )
71659           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout );
71660     }
71661 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71662     bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71663     {
71664       return !operator==( rhs );
71665     }
71666 #endif
71667 
71668 
71669 
71670   public:
71671     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
71672     void* pNext = {};
71673     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
71674 
71675   };
71676   static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) == sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeatures ), "struct and wrapper have different size!" );
71677   static_assert( std::is_standard_layout<PhysicalDeviceUniformBufferStandardLayoutFeatures>::value, "struct wrapper is not a standard layout!" );
71678 
71679   template <>
71680   struct CppType<StructureType, StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures>
71681   {
71682     using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures;
71683   };
71684   using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
71685 
71686   struct PhysicalDeviceVariablePointersFeatures
71687   {
71688     static const bool allowDuplicate = false;
71689     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVariablePointersFeatures;
71690 
71691 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71692     VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures(VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}) VULKAN_HPP_NOEXCEPT
71693     : variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ )
71694     {}
71695 
71696     VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71697 
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71698     PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71699     {
71700       *this = rhs;
71701     }
71702 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71703 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71704     PhysicalDeviceVariablePointersFeatures & operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71705     {
71706       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures const *>( &rhs );
71707       return *this;
71708     }
71709 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71710     PhysicalDeviceVariablePointersFeatures & operator=( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71711     {
71712       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVariablePointersFeatures ) );
71713       return *this;
71714     }
71715 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71716     PhysicalDeviceVariablePointersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71717     {
71718       pNext = pNext_;
71719       return *this;
71720     }
71721 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71722     PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
71723     {
71724       variablePointersStorageBuffer = variablePointersStorageBuffer_;
71725       return *this;
71726     }
71727 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71728     PhysicalDeviceVariablePointersFeatures & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
71729     {
71730       variablePointers = variablePointers_;
71731       return *this;
71732     }
71733 
71734 
operator VkPhysicalDeviceVariablePointersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71735     operator VkPhysicalDeviceVariablePointersFeatures const&() const VULKAN_HPP_NOEXCEPT
71736     {
71737       return *reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>( this );
71738     }
71739 
operator VkPhysicalDeviceVariablePointersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71740     operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT
71741     {
71742       return *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>( this );
71743     }
71744 
71745 
71746 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71747     auto operator<=>( PhysicalDeviceVariablePointersFeatures const& ) const = default;
71748 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71749     bool operator==( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71750     {
71751       return ( sType == rhs.sType )
71752           && ( pNext == rhs.pNext )
71753           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
71754           && ( variablePointers == rhs.variablePointers );
71755     }
71756 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71757     bool operator!=( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71758     {
71759       return !operator==( rhs );
71760     }
71761 #endif
71762 
71763 
71764 
71765   public:
71766     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures;
71767     void* pNext = {};
71768     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
71769     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
71770 
71771   };
71772   static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), "struct and wrapper have different size!" );
71773   static_assert( std::is_standard_layout<PhysicalDeviceVariablePointersFeatures>::value, "struct wrapper is not a standard layout!" );
71774 
71775   template <>
71776   struct CppType<StructureType, StructureType::ePhysicalDeviceVariablePointersFeatures>
71777   {
71778     using Type = PhysicalDeviceVariablePointersFeatures;
71779   };
71780   using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
71781   using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
71782   using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
71783 
71784   struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
71785   {
71786     static const bool allowDuplicate = false;
71787     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
71788 
71789 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71790     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {}) VULKAN_HPP_NOEXCEPT
71791     : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ ), vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ )
71792     {}
71793 
71794     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71795 
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71796     PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71797     {
71798       *this = rhs;
71799     }
71800 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71801 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71802     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71803     {
71804       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs );
71805       return *this;
71806     }
71807 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71808     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71809     {
71810       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) );
71811       return *this;
71812     }
71813 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71814     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71815     {
71816       pNext = pNext_;
71817       return *this;
71818     }
71819 
setVertexAttributeInstanceRateDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71820     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT
71821     {
71822       vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_;
71823       return *this;
71824     }
71825 
setVertexAttributeInstanceRateZeroDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71826     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT
71827     {
71828       vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
71829       return *this;
71830     }
71831 
71832 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71833     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71834     {
71835       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
71836     }
71837 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71838     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71839     {
71840       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
71841     }
71842 
71843 
71844 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71845     auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& ) const = default;
71846 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71847     bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71848     {
71849       return ( sType == rhs.sType )
71850           && ( pNext == rhs.pNext )
71851           && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor )
71852           && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor );
71853     }
71854 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71855     bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71856     {
71857       return !operator==( rhs );
71858     }
71859 #endif
71860 
71861 
71862 
71863   public:
71864     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
71865     void* pNext = {};
71866     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {};
71867     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {};
71868 
71869   };
71870   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "struct and wrapper have different size!" );
71871   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71872 
71873   template <>
71874   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT>
71875   {
71876     using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
71877   };
71878 
71879   struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
71880   {
71881     static const bool allowDuplicate = false;
71882     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
71883 
71884 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71885     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT(uint32_t maxVertexAttribDivisor_ = {}) VULKAN_HPP_NOEXCEPT
71886     : maxVertexAttribDivisor( maxVertexAttribDivisor_ )
71887     {}
71888 
71889     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71890 
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71891     PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71892     {
71893       *this = rhs;
71894     }
71895 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71896 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71897     PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71898     {
71899       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>( &rhs );
71900       return *this;
71901     }
71902 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71903     PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71904     {
71905       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) );
71906       return *this;
71907     }
71908 
71909 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71910     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
71911     {
71912       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
71913     }
71914 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71915     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
71916     {
71917       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
71918     }
71919 
71920 
71921 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71922     auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& ) const = default;
71923 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71924     bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71925     {
71926       return ( sType == rhs.sType )
71927           && ( pNext == rhs.pNext )
71928           && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor );
71929     }
71930 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71931     bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71932     {
71933       return !operator==( rhs );
71934     }
71935 #endif
71936 
71937 
71938 
71939   public:
71940     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
71941     void* pNext = {};
71942     uint32_t maxVertexAttribDivisor = {};
71943 
71944   };
71945   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "struct and wrapper have different size!" );
71946   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
71947 
71948   template <>
71949   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT>
71950   {
71951     using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
71952   };
71953 
71954   struct PhysicalDeviceVulkan11Features
71955   {
71956     static const bool allowDuplicate = false;
71957     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Features;
71958 
71959 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71960     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
71961     : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ ), multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ ), variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ ), protectedMemory( protectedMemory_ ), samplerYcbcrConversion( samplerYcbcrConversion_ ), shaderDrawParameters( shaderDrawParameters_ )
71962     {}
71963 
71964     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71965 
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71966     PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
71967     {
71968       *this = rhs;
71969     }
71970 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71971 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71972     PhysicalDeviceVulkan11Features & operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
71973     {
71974       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features const *>( &rhs );
71975       return *this;
71976     }
71977 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71978     PhysicalDeviceVulkan11Features & operator=( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
71979     {
71980       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan11Features ) );
71981       return *this;
71982     }
71983 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71984     PhysicalDeviceVulkan11Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71985     {
71986       pNext = pNext_;
71987       return *this;
71988     }
71989 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71990     PhysicalDeviceVulkan11Features & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
71991     {
71992       storageBuffer16BitAccess = storageBuffer16BitAccess_;
71993       return *this;
71994     }
71995 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71996     PhysicalDeviceVulkan11Features & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
71997     {
71998       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
71999       return *this;
72000     }
72001 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72002     PhysicalDeviceVulkan11Features & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
72003     {
72004       storagePushConstant16 = storagePushConstant16_;
72005       return *this;
72006     }
72007 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72008     PhysicalDeviceVulkan11Features & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
72009     {
72010       storageInputOutput16 = storageInputOutput16_;
72011       return *this;
72012     }
72013 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72014     PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
72015     {
72016       multiview = multiview_;
72017       return *this;
72018     }
72019 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72020     PhysicalDeviceVulkan11Features & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
72021     {
72022       multiviewGeometryShader = multiviewGeometryShader_;
72023       return *this;
72024     }
72025 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72026     PhysicalDeviceVulkan11Features & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
72027     {
72028       multiviewTessellationShader = multiviewTessellationShader_;
72029       return *this;
72030     }
72031 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72032     PhysicalDeviceVulkan11Features & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
72033     {
72034       variablePointersStorageBuffer = variablePointersStorageBuffer_;
72035       return *this;
72036     }
72037 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72038     PhysicalDeviceVulkan11Features & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
72039     {
72040       variablePointers = variablePointers_;
72041       return *this;
72042     }
72043 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72044     PhysicalDeviceVulkan11Features & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
72045     {
72046       protectedMemory = protectedMemory_;
72047       return *this;
72048     }
72049 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72050     PhysicalDeviceVulkan11Features & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
72051     {
72052       samplerYcbcrConversion = samplerYcbcrConversion_;
72053       return *this;
72054     }
72055 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72056     PhysicalDeviceVulkan11Features & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
72057     {
72058       shaderDrawParameters = shaderDrawParameters_;
72059       return *this;
72060     }
72061 
72062 
operator VkPhysicalDeviceVulkan11Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72063     operator VkPhysicalDeviceVulkan11Features const&() const VULKAN_HPP_NOEXCEPT
72064     {
72065       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>( this );
72066     }
72067 
operator VkPhysicalDeviceVulkan11Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72068     operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT
72069     {
72070       return *reinterpret_cast<VkPhysicalDeviceVulkan11Features*>( this );
72071     }
72072 
72073 
72074 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72075     auto operator<=>( PhysicalDeviceVulkan11Features const& ) const = default;
72076 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72077     bool operator==( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT
72078     {
72079       return ( sType == rhs.sType )
72080           && ( pNext == rhs.pNext )
72081           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
72082           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
72083           && ( storagePushConstant16 == rhs.storagePushConstant16 )
72084           && ( storageInputOutput16 == rhs.storageInputOutput16 )
72085           && ( multiview == rhs.multiview )
72086           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
72087           && ( multiviewTessellationShader == rhs.multiviewTessellationShader )
72088           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
72089           && ( variablePointers == rhs.variablePointers )
72090           && ( protectedMemory == rhs.protectedMemory )
72091           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion )
72092           && ( shaderDrawParameters == rhs.shaderDrawParameters );
72093     }
72094 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72095     bool operator!=( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT
72096     {
72097       return !operator==( rhs );
72098     }
72099 #endif
72100 
72101 
72102 
72103   public:
72104     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features;
72105     void* pNext = {};
72106     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
72107     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
72108     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
72109     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
72110     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
72111     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
72112     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
72113     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
72114     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
72115     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
72116     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
72117     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
72118 
72119   };
72120   static_assert( sizeof( PhysicalDeviceVulkan11Features ) == sizeof( VkPhysicalDeviceVulkan11Features ), "struct and wrapper have different size!" );
72121   static_assert( std::is_standard_layout<PhysicalDeviceVulkan11Features>::value, "struct wrapper is not a standard layout!" );
72122 
72123   template <>
72124   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Features>
72125   {
72126     using Type = PhysicalDeviceVulkan11Features;
72127   };
72128 
72129   struct PhysicalDeviceVulkan11Properties
72130   {
72131     static const bool allowDuplicate = false;
72132     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Properties;
72133 
72134 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72135     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
72136     : 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_ )
72137     {}
72138 
72139     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72140 
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72141     PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72142     {
72143       *this = rhs;
72144     }
72145 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72146 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72147     PhysicalDeviceVulkan11Properties & operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72148     {
72149       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties const *>( &rhs );
72150       return *this;
72151     }
72152 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72153     PhysicalDeviceVulkan11Properties & operator=( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72154     {
72155       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan11Properties ) );
72156       return *this;
72157     }
72158 
72159 
operator VkPhysicalDeviceVulkan11Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72160     operator VkPhysicalDeviceVulkan11Properties const&() const VULKAN_HPP_NOEXCEPT
72161     {
72162       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>( this );
72163     }
72164 
operator VkPhysicalDeviceVulkan11Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72165     operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT
72166     {
72167       return *reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>( this );
72168     }
72169 
72170 
72171 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72172     auto operator<=>( PhysicalDeviceVulkan11Properties const& ) const = default;
72173 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72174     bool operator==( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
72175     {
72176       return ( sType == rhs.sType )
72177           && ( pNext == rhs.pNext )
72178           && ( deviceUUID == rhs.deviceUUID )
72179           && ( driverUUID == rhs.driverUUID )
72180           && ( deviceLUID == rhs.deviceLUID )
72181           && ( deviceNodeMask == rhs.deviceNodeMask )
72182           && ( deviceLUIDValid == rhs.deviceLUIDValid )
72183           && ( subgroupSize == rhs.subgroupSize )
72184           && ( subgroupSupportedStages == rhs.subgroupSupportedStages )
72185           && ( subgroupSupportedOperations == rhs.subgroupSupportedOperations )
72186           && ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages )
72187           && ( pointClippingBehavior == rhs.pointClippingBehavior )
72188           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
72189           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex )
72190           && ( protectedNoFault == rhs.protectedNoFault )
72191           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
72192           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
72193     }
72194 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72195     bool operator!=( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
72196     {
72197       return !operator==( rhs );
72198     }
72199 #endif
72200 
72201 
72202 
72203   public:
72204     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties;
72205     void* pNext = {};
72206     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
72207     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
72208     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
72209     uint32_t deviceNodeMask = {};
72210     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
72211     uint32_t subgroupSize = {};
72212     VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {};
72213     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {};
72214     VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {};
72215     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
72216     uint32_t maxMultiviewViewCount = {};
72217     uint32_t maxMultiviewInstanceIndex = {};
72218     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
72219     uint32_t maxPerSetDescriptors = {};
72220     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
72221 
72222   };
72223   static_assert( sizeof( PhysicalDeviceVulkan11Properties ) == sizeof( VkPhysicalDeviceVulkan11Properties ), "struct and wrapper have different size!" );
72224   static_assert( std::is_standard_layout<PhysicalDeviceVulkan11Properties>::value, "struct wrapper is not a standard layout!" );
72225 
72226   template <>
72227   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Properties>
72228   {
72229     using Type = PhysicalDeviceVulkan11Properties;
72230   };
72231 
72232   struct PhysicalDeviceVulkan12Features
72233   {
72234     static const bool allowDuplicate = false;
72235     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Features;
72236 
72237 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72238     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
72239     : 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_ )
72240     {}
72241 
72242     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72243 
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72244     PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
72245     {
72246       *this = rhs;
72247     }
72248 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72249 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72250     PhysicalDeviceVulkan12Features & operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
72251     {
72252       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features const *>( &rhs );
72253       return *this;
72254     }
72255 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72256     PhysicalDeviceVulkan12Features & operator=( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
72257     {
72258       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan12Features ) );
72259       return *this;
72260     }
72261 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72262     PhysicalDeviceVulkan12Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72263     {
72264       pNext = pNext_;
72265       return *this;
72266     }
72267 
setSamplerMirrorClampToEdgeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72268     PhysicalDeviceVulkan12Features & setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT
72269     {
72270       samplerMirrorClampToEdge = samplerMirrorClampToEdge_;
72271       return *this;
72272     }
72273 
setDrawIndirectCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72274     PhysicalDeviceVulkan12Features & setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT
72275     {
72276       drawIndirectCount = drawIndirectCount_;
72277       return *this;
72278     }
72279 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72280     PhysicalDeviceVulkan12Features & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
72281     {
72282       storageBuffer8BitAccess = storageBuffer8BitAccess_;
72283       return *this;
72284     }
72285 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72286     PhysicalDeviceVulkan12Features & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
72287     {
72288       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
72289       return *this;
72290     }
72291 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72292     PhysicalDeviceVulkan12Features & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
72293     {
72294       storagePushConstant8 = storagePushConstant8_;
72295       return *this;
72296     }
72297 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72298     PhysicalDeviceVulkan12Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
72299     {
72300       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
72301       return *this;
72302     }
72303 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72304     PhysicalDeviceVulkan12Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
72305     {
72306       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
72307       return *this;
72308     }
72309 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72310     PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
72311     {
72312       shaderFloat16 = shaderFloat16_;
72313       return *this;
72314     }
72315 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72316     PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
72317     {
72318       shaderInt8 = shaderInt8_;
72319       return *this;
72320     }
72321 
setDescriptorIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72322     PhysicalDeviceVulkan12Features & setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT
72323     {
72324       descriptorIndexing = descriptorIndexing_;
72325       return *this;
72326     }
72327 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72328     PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
72329     {
72330       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
72331       return *this;
72332     }
72333 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72334     PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
72335     {
72336       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
72337       return *this;
72338     }
72339 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72340     PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
72341     {
72342       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
72343       return *this;
72344     }
72345 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72346     PhysicalDeviceVulkan12Features & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72347     {
72348       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
72349       return *this;
72350     }
72351 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72352     PhysicalDeviceVulkan12Features & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72353     {
72354       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
72355       return *this;
72356     }
72357 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72358     PhysicalDeviceVulkan12Features & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72359     {
72360       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
72361       return *this;
72362     }
72363 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72364     PhysicalDeviceVulkan12Features & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72365     {
72366       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
72367       return *this;
72368     }
72369 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72370     PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72371     {
72372       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
72373       return *this;
72374     }
72375 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72376     PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72377     {
72378       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
72379       return *this;
72380     }
72381 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72382     PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72383     {
72384       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
72385       return *this;
72386     }
72387 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72388     PhysicalDeviceVulkan12Features & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72389     {
72390       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
72391       return *this;
72392     }
72393 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72394     PhysicalDeviceVulkan12Features & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72395     {
72396       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
72397       return *this;
72398     }
72399 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72400     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72401     {
72402       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
72403       return *this;
72404     }
72405 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72406     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72407     {
72408       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
72409       return *this;
72410     }
72411 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72412     PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72413     {
72414       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
72415       return *this;
72416     }
72417 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72418     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72419     {
72420       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
72421       return *this;
72422     }
72423 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72424     PhysicalDeviceVulkan12Features & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
72425     {
72426       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
72427       return *this;
72428     }
72429 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72430     PhysicalDeviceVulkan12Features & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
72431     {
72432       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
72433       return *this;
72434     }
72435 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72436     PhysicalDeviceVulkan12Features & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
72437     {
72438       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
72439       return *this;
72440     }
72441 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72442     PhysicalDeviceVulkan12Features & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
72443     {
72444       runtimeDescriptorArray = runtimeDescriptorArray_;
72445       return *this;
72446     }
72447 
setSamplerFilterMinmaxVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72448     PhysicalDeviceVulkan12Features & setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT
72449     {
72450       samplerFilterMinmax = samplerFilterMinmax_;
72451       return *this;
72452     }
72453 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72454     PhysicalDeviceVulkan12Features & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
72455     {
72456       scalarBlockLayout = scalarBlockLayout_;
72457       return *this;
72458     }
72459 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72460     PhysicalDeviceVulkan12Features & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
72461     {
72462       imagelessFramebuffer = imagelessFramebuffer_;
72463       return *this;
72464     }
72465 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72466     PhysicalDeviceVulkan12Features & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
72467     {
72468       uniformBufferStandardLayout = uniformBufferStandardLayout_;
72469       return *this;
72470     }
72471 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72472     PhysicalDeviceVulkan12Features & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
72473     {
72474       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
72475       return *this;
72476     }
72477 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72478     PhysicalDeviceVulkan12Features & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
72479     {
72480       separateDepthStencilLayouts = separateDepthStencilLayouts_;
72481       return *this;
72482     }
72483 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72484     PhysicalDeviceVulkan12Features & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
72485     {
72486       hostQueryReset = hostQueryReset_;
72487       return *this;
72488     }
72489 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72490     PhysicalDeviceVulkan12Features & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
72491     {
72492       timelineSemaphore = timelineSemaphore_;
72493       return *this;
72494     }
72495 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72496     PhysicalDeviceVulkan12Features & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
72497     {
72498       bufferDeviceAddress = bufferDeviceAddress_;
72499       return *this;
72500     }
72501 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72502     PhysicalDeviceVulkan12Features & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
72503     {
72504       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
72505       return *this;
72506     }
72507 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72508     PhysicalDeviceVulkan12Features & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
72509     {
72510       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
72511       return *this;
72512     }
72513 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72514     PhysicalDeviceVulkan12Features & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
72515     {
72516       vulkanMemoryModel = vulkanMemoryModel_;
72517       return *this;
72518     }
72519 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72520     PhysicalDeviceVulkan12Features & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
72521     {
72522       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
72523       return *this;
72524     }
72525 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72526     PhysicalDeviceVulkan12Features & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
72527     {
72528       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
72529       return *this;
72530     }
72531 
setShaderOutputViewportIndexVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72532     PhysicalDeviceVulkan12Features & setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT
72533     {
72534       shaderOutputViewportIndex = shaderOutputViewportIndex_;
72535       return *this;
72536     }
72537 
setShaderOutputLayerVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72538     PhysicalDeviceVulkan12Features & setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT
72539     {
72540       shaderOutputLayer = shaderOutputLayer_;
72541       return *this;
72542     }
72543 
setSubgroupBroadcastDynamicIdVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72544     PhysicalDeviceVulkan12Features & setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT
72545     {
72546       subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_;
72547       return *this;
72548     }
72549 
72550 
operator VkPhysicalDeviceVulkan12Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72551     operator VkPhysicalDeviceVulkan12Features const&() const VULKAN_HPP_NOEXCEPT
72552     {
72553       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>( this );
72554     }
72555 
operator VkPhysicalDeviceVulkan12Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72556     operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT
72557     {
72558       return *reinterpret_cast<VkPhysicalDeviceVulkan12Features*>( this );
72559     }
72560 
72561 
72562 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72563     auto operator<=>( PhysicalDeviceVulkan12Features const& ) const = default;
72564 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72565     bool operator==( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT
72566     {
72567       return ( sType == rhs.sType )
72568           && ( pNext == rhs.pNext )
72569           && ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge )
72570           && ( drawIndirectCount == rhs.drawIndirectCount )
72571           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
72572           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
72573           && ( storagePushConstant8 == rhs.storagePushConstant8 )
72574           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
72575           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics )
72576           && ( shaderFloat16 == rhs.shaderFloat16 )
72577           && ( shaderInt8 == rhs.shaderInt8 )
72578           && ( descriptorIndexing == rhs.descriptorIndexing )
72579           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
72580           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
72581           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
72582           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
72583           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
72584           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
72585           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
72586           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
72587           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
72588           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
72589           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
72590           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
72591           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
72592           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
72593           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
72594           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
72595           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
72596           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
72597           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
72598           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray )
72599           && ( samplerFilterMinmax == rhs.samplerFilterMinmax )
72600           && ( scalarBlockLayout == rhs.scalarBlockLayout )
72601           && ( imagelessFramebuffer == rhs.imagelessFramebuffer )
72602           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout )
72603           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes )
72604           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts )
72605           && ( hostQueryReset == rhs.hostQueryReset )
72606           && ( timelineSemaphore == rhs.timelineSemaphore )
72607           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
72608           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
72609           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice )
72610           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
72611           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
72612           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains )
72613           && ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex )
72614           && ( shaderOutputLayer == rhs.shaderOutputLayer )
72615           && ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId );
72616     }
72617 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72618     bool operator!=( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT
72619     {
72620       return !operator==( rhs );
72621     }
72622 #endif
72623 
72624 
72625 
72626   public:
72627     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features;
72628     void* pNext = {};
72629     VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {};
72630     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {};
72631     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
72632     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
72633     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
72634     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
72635     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
72636     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
72637     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
72638     VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {};
72639     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
72640     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
72641     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
72642     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
72643     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
72644     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
72645     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
72646     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
72647     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
72648     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
72649     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
72650     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
72651     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
72652     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
72653     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
72654     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
72655     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
72656     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
72657     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
72658     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
72659     VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {};
72660     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
72661     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
72662     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
72663     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
72664     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
72665     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
72666     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
72667     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
72668     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
72669     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
72670     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
72671     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
72672     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
72673     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {};
72674     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {};
72675     VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {};
72676 
72677   };
72678   static_assert( sizeof( PhysicalDeviceVulkan12Features ) == sizeof( VkPhysicalDeviceVulkan12Features ), "struct and wrapper have different size!" );
72679   static_assert( std::is_standard_layout<PhysicalDeviceVulkan12Features>::value, "struct wrapper is not a standard layout!" );
72680 
72681   template <>
72682   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Features>
72683   {
72684     using Type = PhysicalDeviceVulkan12Features;
72685   };
72686 
72687   struct PhysicalDeviceVulkan12Properties
72688   {
72689     static const bool allowDuplicate = false;
72690     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Properties;
72691 
72692 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72693     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
72694     : 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_ )
72695     {}
72696 
72697     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72698 
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72699     PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72700     {
72701       *this = rhs;
72702     }
72703 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72704 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72705     PhysicalDeviceVulkan12Properties & operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72706     {
72707       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties const *>( &rhs );
72708       return *this;
72709     }
72710 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72711     PhysicalDeviceVulkan12Properties & operator=( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72712     {
72713       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan12Properties ) );
72714       return *this;
72715     }
72716 
72717 
operator VkPhysicalDeviceVulkan12Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72718     operator VkPhysicalDeviceVulkan12Properties const&() const VULKAN_HPP_NOEXCEPT
72719     {
72720       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>( this );
72721     }
72722 
operator VkPhysicalDeviceVulkan12Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72723     operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT
72724     {
72725       return *reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>( this );
72726     }
72727 
72728 
72729 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72730     auto operator<=>( PhysicalDeviceVulkan12Properties const& ) const = default;
72731 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72732     bool operator==( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
72733     {
72734       return ( sType == rhs.sType )
72735           && ( pNext == rhs.pNext )
72736           && ( driverID == rhs.driverID )
72737           && ( driverName == rhs.driverName )
72738           && ( driverInfo == rhs.driverInfo )
72739           && ( conformanceVersion == rhs.conformanceVersion )
72740           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
72741           && ( roundingModeIndependence == rhs.roundingModeIndependence )
72742           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
72743           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
72744           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
72745           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
72746           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
72747           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
72748           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
72749           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
72750           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
72751           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
72752           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
72753           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
72754           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
72755           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
72756           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 )
72757           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
72758           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
72759           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
72760           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
72761           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
72762           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
72763           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
72764           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
72765           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
72766           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
72767           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
72768           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
72769           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
72770           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
72771           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
72772           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
72773           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
72774           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
72775           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
72776           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
72777           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
72778           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
72779           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments )
72780           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
72781           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
72782           && ( independentResolveNone == rhs.independentResolveNone )
72783           && ( independentResolve == rhs.independentResolve )
72784           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
72785           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping )
72786           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference )
72787           && ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts );
72788     }
72789 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72790     bool operator!=( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
72791     {
72792       return !operator==( rhs );
72793     }
72794 #endif
72795 
72796 
72797 
72798   public:
72799     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties;
72800     void* pNext = {};
72801     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
72802     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
72803     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
72804     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
72805     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
72806     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
72807     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
72808     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
72809     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
72810     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
72811     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
72812     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
72813     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
72814     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
72815     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
72816     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
72817     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
72818     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
72819     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
72820     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
72821     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
72822     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
72823     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
72824     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
72825     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
72826     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
72827     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
72828     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
72829     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
72830     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
72831     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
72832     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
72833     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
72834     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
72835     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
72836     uint32_t maxPerStageUpdateAfterBindResources = {};
72837     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
72838     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
72839     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
72840     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
72841     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
72842     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
72843     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
72844     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
72845     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
72846     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
72847     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
72848     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
72849     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
72850     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
72851     uint64_t maxTimelineSemaphoreValueDifference = {};
72852     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {};
72853 
72854   };
72855   static_assert( sizeof( PhysicalDeviceVulkan12Properties ) == sizeof( VkPhysicalDeviceVulkan12Properties ), "struct and wrapper have different size!" );
72856   static_assert( std::is_standard_layout<PhysicalDeviceVulkan12Properties>::value, "struct wrapper is not a standard layout!" );
72857 
72858   template <>
72859   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Properties>
72860   {
72861     using Type = PhysicalDeviceVulkan12Properties;
72862   };
72863 
72864   struct PhysicalDeviceVulkanMemoryModelFeatures
72865   {
72866     static const bool allowDuplicate = false;
72867     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
72868 
72869 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72870     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures(VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}) VULKAN_HPP_NOEXCEPT
72871     : vulkanMemoryModel( vulkanMemoryModel_ ), vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ), vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
72872     {}
72873 
72874     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72875 
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72876     PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72877     {
72878       *this = rhs;
72879     }
72880 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72881 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72882     PhysicalDeviceVulkanMemoryModelFeatures & operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72883     {
72884       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures const *>( &rhs );
72885       return *this;
72886     }
72887 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72888     PhysicalDeviceVulkanMemoryModelFeatures & operator=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72889     {
72890       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) );
72891       return *this;
72892     }
72893 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72894     PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72895     {
72896       pNext = pNext_;
72897       return *this;
72898     }
72899 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72900     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
72901     {
72902       vulkanMemoryModel = vulkanMemoryModel_;
72903       return *this;
72904     }
72905 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72906     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
72907     {
72908       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
72909       return *this;
72910     }
72911 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72912     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
72913     {
72914       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
72915       return *this;
72916     }
72917 
72918 
operator VkPhysicalDeviceVulkanMemoryModelFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72919     operator VkPhysicalDeviceVulkanMemoryModelFeatures const&() const VULKAN_HPP_NOEXCEPT
72920     {
72921       return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
72922     }
72923 
operator VkPhysicalDeviceVulkanMemoryModelFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72924     operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT
72925     {
72926       return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
72927     }
72928 
72929 
72930 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72931     auto operator<=>( PhysicalDeviceVulkanMemoryModelFeatures const& ) const = default;
72932 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72933     bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72934     {
72935       return ( sType == rhs.sType )
72936           && ( pNext == rhs.pNext )
72937           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
72938           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
72939           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains );
72940     }
72941 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72942     bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72943     {
72944       return !operator==( rhs );
72945     }
72946 #endif
72947 
72948 
72949 
72950   public:
72951     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
72952     void* pNext = {};
72953     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
72954     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
72955     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
72956 
72957   };
72958   static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeatures ), "struct and wrapper have different size!" );
72959   static_assert( std::is_standard_layout<PhysicalDeviceVulkanMemoryModelFeatures>::value, "struct wrapper is not a standard layout!" );
72960 
72961   template <>
72962   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkanMemoryModelFeatures>
72963   {
72964     using Type = PhysicalDeviceVulkanMemoryModelFeatures;
72965   };
72966   using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
72967 
72968   struct PhysicalDeviceYcbcrImageArraysFeaturesEXT
72969   {
72970     static const bool allowDuplicate = false;
72971     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
72972 
72973 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72974     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {}) VULKAN_HPP_NOEXCEPT
72975     : ycbcrImageArrays( ycbcrImageArrays_ )
72976     {}
72977 
72978     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72979 
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72980     PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72981     {
72982       *this = rhs;
72983     }
72984 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72985 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72986     PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72987     {
72988       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>( &rhs );
72989       return *this;
72990     }
72991 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72992     PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72993     {
72994       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) );
72995       return *this;
72996     }
72997 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72998     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72999     {
73000       pNext = pNext_;
73001       return *this;
73002     }
73003 
setYcbcrImageArraysVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73004     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT
73005     {
73006       ycbcrImageArrays = ycbcrImageArrays_;
73007       return *this;
73008     }
73009 
73010 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73011     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
73012     {
73013       return *reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
73014     }
73015 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73016     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT
73017     {
73018       return *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
73019     }
73020 
73021 
73022 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73023     auto operator<=>( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& ) const = default;
73024 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73025     bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73026     {
73027       return ( sType == rhs.sType )
73028           && ( pNext == rhs.pNext )
73029           && ( ycbcrImageArrays == rhs.ycbcrImageArrays );
73030     }
73031 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73032     bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73033     {
73034       return !operator==( rhs );
73035     }
73036 #endif
73037 
73038 
73039 
73040   public:
73041     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
73042     void* pNext = {};
73043     VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {};
73044 
73045   };
73046   static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), "struct and wrapper have different size!" );
73047   static_assert( std::is_standard_layout<PhysicalDeviceYcbcrImageArraysFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
73048 
73049   template <>
73050   struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT>
73051   {
73052     using Type = PhysicalDeviceYcbcrImageArraysFeaturesEXT;
73053   };
73054 
73055   struct PipelineColorBlendAdvancedStateCreateInfoEXT
73056   {
73057     static const bool allowDuplicate = false;
73058     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
73059 
73060 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73061     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
73062     : srcPremultiplied( srcPremultiplied_ ), dstPremultiplied( dstPremultiplied_ ), blendOverlap( blendOverlap_ )
73063     {}
73064 
73065     VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73066 
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73067     PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73068     {
73069       *this = rhs;
73070     }
73071 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73072 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73073     PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73074     {
73075       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT const *>( &rhs );
73076       return *this;
73077     }
73078 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73079     PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73080     {
73081       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) );
73082       return *this;
73083     }
73084 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73085     PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73086     {
73087       pNext = pNext_;
73088       return *this;
73089     }
73090 
setSrcPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73091     PipelineColorBlendAdvancedStateCreateInfoEXT & setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
73092     {
73093       srcPremultiplied = srcPremultiplied_;
73094       return *this;
73095     }
73096 
setDstPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73097     PipelineColorBlendAdvancedStateCreateInfoEXT & setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
73098     {
73099       dstPremultiplied = dstPremultiplied_;
73100       return *this;
73101     }
73102 
setBlendOverlapVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73103     PipelineColorBlendAdvancedStateCreateInfoEXT & setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
73104     {
73105       blendOverlap = blendOverlap_;
73106       return *this;
73107     }
73108 
73109 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73110     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73111     {
73112       return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
73113     }
73114 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73115     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73116     {
73117       return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
73118     }
73119 
73120 
73121 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73122     auto operator<=>( PipelineColorBlendAdvancedStateCreateInfoEXT const& ) const = default;
73123 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73124     bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73125     {
73126       return ( sType == rhs.sType )
73127           && ( pNext == rhs.pNext )
73128           && ( srcPremultiplied == rhs.srcPremultiplied )
73129           && ( dstPremultiplied == rhs.dstPremultiplied )
73130           && ( blendOverlap == rhs.blendOverlap );
73131     }
73132 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73133     bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73134     {
73135       return !operator==( rhs );
73136     }
73137 #endif
73138 
73139 
73140 
73141   public:
73142     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
73143     const void* pNext = {};
73144     VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {};
73145     VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {};
73146     VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated;
73147 
73148   };
73149   static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), "struct and wrapper have different size!" );
73150   static_assert( std::is_standard_layout<PipelineColorBlendAdvancedStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73151 
73152   template <>
73153   struct CppType<StructureType, StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT>
73154   {
73155     using Type = PipelineColorBlendAdvancedStateCreateInfoEXT;
73156   };
73157 
73158   struct PipelineCompilerControlCreateInfoAMD
73159   {
73160     static const bool allowDuplicate = false;
73161     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCompilerControlCreateInfoAMD;
73162 
73163 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73164     VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD(VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {}) VULKAN_HPP_NOEXCEPT
73165     : compilerControlFlags( compilerControlFlags_ )
73166     {}
73167 
73168     VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73169 
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73170     PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
73171     {
73172       *this = rhs;
73173     }
73174 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73175 
operator =VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73176     PipelineCompilerControlCreateInfoAMD & operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
73177     {
73178       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD const *>( &rhs );
73179       return *this;
73180     }
73181 
operator =VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73182     PipelineCompilerControlCreateInfoAMD & operator=( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
73183     {
73184       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCompilerControlCreateInfoAMD ) );
73185       return *this;
73186     }
73187 
setPNextVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73188     PipelineCompilerControlCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73189     {
73190       pNext = pNext_;
73191       return *this;
73192     }
73193 
setCompilerControlFlagsVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73194     PipelineCompilerControlCreateInfoAMD & setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT
73195     {
73196       compilerControlFlags = compilerControlFlags_;
73197       return *this;
73198     }
73199 
73200 
operator VkPipelineCompilerControlCreateInfoAMD const&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73201     operator VkPipelineCompilerControlCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
73202     {
73203       return *reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>( this );
73204     }
73205 
operator VkPipelineCompilerControlCreateInfoAMD&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73206     operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
73207     {
73208       return *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>( this );
73209     }
73210 
73211 
73212 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73213     auto operator<=>( PipelineCompilerControlCreateInfoAMD const& ) const = default;
73214 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73215     bool operator==( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
73216     {
73217       return ( sType == rhs.sType )
73218           && ( pNext == rhs.pNext )
73219           && ( compilerControlFlags == rhs.compilerControlFlags );
73220     }
73221 
operator !=VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73222     bool operator!=( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
73223     {
73224       return !operator==( rhs );
73225     }
73226 #endif
73227 
73228 
73229 
73230   public:
73231     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD;
73232     const void* pNext = {};
73233     VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {};
73234 
73235   };
73236   static_assert( sizeof( PipelineCompilerControlCreateInfoAMD ) == sizeof( VkPipelineCompilerControlCreateInfoAMD ), "struct and wrapper have different size!" );
73237   static_assert( std::is_standard_layout<PipelineCompilerControlCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
73238 
73239   template <>
73240   struct CppType<StructureType, StructureType::ePipelineCompilerControlCreateInfoAMD>
73241   {
73242     using Type = PipelineCompilerControlCreateInfoAMD;
73243   };
73244 
73245   struct PipelineCoverageModulationStateCreateInfoNV
73246   {
73247     static const bool allowDuplicate = false;
73248     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
73249 
73250 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73251     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
73252     : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( coverageModulationTableCount_ ), pCoverageModulationTable( pCoverageModulationTable_ )
73253     {}
73254 
73255     VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73256 
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73257     PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73258     {
73259       *this = rhs;
73260     }
73261 
73262 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73263     PipelineCoverageModulationStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_, VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ )
73264     : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( static_cast<uint32_t>( coverageModulationTable_.size() ) ), pCoverageModulationTable( coverageModulationTable_.data() )
73265     {}
73266 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
73267 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73268 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73269     PipelineCoverageModulationStateCreateInfoNV & operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73270     {
73271       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV const *>( &rhs );
73272       return *this;
73273     }
73274 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73275     PipelineCoverageModulationStateCreateInfoNV & operator=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73276     {
73277       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCoverageModulationStateCreateInfoNV ) );
73278       return *this;
73279     }
73280 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73281     PipelineCoverageModulationStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73282     {
73283       pNext = pNext_;
73284       return *this;
73285     }
73286 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73287     PipelineCoverageModulationStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
73288     {
73289       flags = flags_;
73290       return *this;
73291     }
73292 
setCoverageModulationModeVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73293     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
73294     {
73295       coverageModulationMode = coverageModulationMode_;
73296       return *this;
73297     }
73298 
setCoverageModulationTableEnableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73299     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
73300     {
73301       coverageModulationTableEnable = coverageModulationTableEnable_;
73302       return *this;
73303     }
73304 
setCoverageModulationTableCountVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73305     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT
73306     {
73307       coverageModulationTableCount = coverageModulationTableCount_;
73308       return *this;
73309     }
73310 
setPCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73311     PipelineCoverageModulationStateCreateInfoNV & setPCoverageModulationTable( const float* pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
73312     {
73313       pCoverageModulationTable = pCoverageModulationTable_;
73314       return *this;
73315     }
73316 
73317 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73318     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTable( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
73319     {
73320       coverageModulationTableCount = static_cast<uint32_t>( coverageModulationTable_.size() );
73321       pCoverageModulationTable = coverageModulationTable_.data();
73322       return *this;
73323     }
73324 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
73325 
73326 
operator VkPipelineCoverageModulationStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73327     operator VkPipelineCoverageModulationStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
73328     {
73329       return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>( this );
73330     }
73331 
operator VkPipelineCoverageModulationStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73332     operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
73333     {
73334       return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>( this );
73335     }
73336 
73337 
73338 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73339     auto operator<=>( PipelineCoverageModulationStateCreateInfoNV const& ) const = default;
73340 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73341     bool operator==( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73342     {
73343       return ( sType == rhs.sType )
73344           && ( pNext == rhs.pNext )
73345           && ( flags == rhs.flags )
73346           && ( coverageModulationMode == rhs.coverageModulationMode )
73347           && ( coverageModulationTableEnable == rhs.coverageModulationTableEnable )
73348           && ( coverageModulationTableCount == rhs.coverageModulationTableCount )
73349           && ( pCoverageModulationTable == rhs.pCoverageModulationTable );
73350     }
73351 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73352     bool operator!=( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73353     {
73354       return !operator==( rhs );
73355     }
73356 #endif
73357 
73358 
73359 
73360   public:
73361     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
73362     const void* pNext = {};
73363     VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {};
73364     VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone;
73365     VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {};
73366     uint32_t coverageModulationTableCount = {};
73367     const float* pCoverageModulationTable = {};
73368 
73369   };
73370   static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), "struct and wrapper have different size!" );
73371   static_assert( std::is_standard_layout<PipelineCoverageModulationStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
73372 
73373   template <>
73374   struct CppType<StructureType, StructureType::ePipelineCoverageModulationStateCreateInfoNV>
73375   {
73376     using Type = PipelineCoverageModulationStateCreateInfoNV;
73377   };
73378 
73379   struct PipelineCoverageReductionStateCreateInfoNV
73380   {
73381     static const bool allowDuplicate = false;
73382     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
73383 
73384 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73385     VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge) VULKAN_HPP_NOEXCEPT
73386     : flags( flags_ ), coverageReductionMode( coverageReductionMode_ )
73387     {}
73388 
73389     VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73390 
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73391     PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73392     {
73393       *this = rhs;
73394     }
73395 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73396 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73397     PipelineCoverageReductionStateCreateInfoNV & operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73398     {
73399       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV const *>( &rhs );
73400       return *this;
73401     }
73402 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73403     PipelineCoverageReductionStateCreateInfoNV & operator=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73404     {
73405       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCoverageReductionStateCreateInfoNV ) );
73406       return *this;
73407     }
73408 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73409     PipelineCoverageReductionStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73410     {
73411       pNext = pNext_;
73412       return *this;
73413     }
73414 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73415     PipelineCoverageReductionStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
73416     {
73417       flags = flags_;
73418       return *this;
73419     }
73420 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73421     PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
73422     {
73423       coverageReductionMode = coverageReductionMode_;
73424       return *this;
73425     }
73426 
73427 
operator VkPipelineCoverageReductionStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73428     operator VkPipelineCoverageReductionStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
73429     {
73430       return *reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>( this );
73431     }
73432 
operator VkPipelineCoverageReductionStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73433     operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
73434     {
73435       return *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>( this );
73436     }
73437 
73438 
73439 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73440     auto operator<=>( PipelineCoverageReductionStateCreateInfoNV const& ) const = default;
73441 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73442     bool operator==( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73443     {
73444       return ( sType == rhs.sType )
73445           && ( pNext == rhs.pNext )
73446           && ( flags == rhs.flags )
73447           && ( coverageReductionMode == rhs.coverageReductionMode );
73448     }
73449 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73450     bool operator!=( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73451     {
73452       return !operator==( rhs );
73453     }
73454 #endif
73455 
73456 
73457 
73458   public:
73459     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
73460     const void* pNext = {};
73461     VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {};
73462     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
73463 
73464   };
73465   static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), "struct and wrapper have different size!" );
73466   static_assert( std::is_standard_layout<PipelineCoverageReductionStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
73467 
73468   template <>
73469   struct CppType<StructureType, StructureType::ePipelineCoverageReductionStateCreateInfoNV>
73470   {
73471     using Type = PipelineCoverageReductionStateCreateInfoNV;
73472   };
73473 
73474   struct PipelineCoverageToColorStateCreateInfoNV
73475   {
73476     static const bool allowDuplicate = false;
73477     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
73478 
73479 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73480     VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {}, uint32_t coverageToColorLocation_ = {}) VULKAN_HPP_NOEXCEPT
73481     : flags( flags_ ), coverageToColorEnable( coverageToColorEnable_ ), coverageToColorLocation( coverageToColorLocation_ )
73482     {}
73483 
73484     VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73485 
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73486     PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73487     {
73488       *this = rhs;
73489     }
73490 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73491 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73492     PipelineCoverageToColorStateCreateInfoNV & operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73493     {
73494       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV const *>( &rhs );
73495       return *this;
73496     }
73497 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73498     PipelineCoverageToColorStateCreateInfoNV & operator=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73499     {
73500       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCoverageToColorStateCreateInfoNV ) );
73501       return *this;
73502     }
73503 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73504     PipelineCoverageToColorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73505     {
73506       pNext = pNext_;
73507       return *this;
73508     }
73509 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73510     PipelineCoverageToColorStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
73511     {
73512       flags = flags_;
73513       return *this;
73514     }
73515 
setCoverageToColorEnableVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73516     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
73517     {
73518       coverageToColorEnable = coverageToColorEnable_;
73519       return *this;
73520     }
73521 
setCoverageToColorLocationVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73522     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT
73523     {
73524       coverageToColorLocation = coverageToColorLocation_;
73525       return *this;
73526     }
73527 
73528 
operator VkPipelineCoverageToColorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73529     operator VkPipelineCoverageToColorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
73530     {
73531       return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>( this );
73532     }
73533 
operator VkPipelineCoverageToColorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73534     operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
73535     {
73536       return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>( this );
73537     }
73538 
73539 
73540 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73541     auto operator<=>( PipelineCoverageToColorStateCreateInfoNV const& ) const = default;
73542 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73543     bool operator==( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73544     {
73545       return ( sType == rhs.sType )
73546           && ( pNext == rhs.pNext )
73547           && ( flags == rhs.flags )
73548           && ( coverageToColorEnable == rhs.coverageToColorEnable )
73549           && ( coverageToColorLocation == rhs.coverageToColorLocation );
73550     }
73551 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73552     bool operator!=( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73553     {
73554       return !operator==( rhs );
73555     }
73556 #endif
73557 
73558 
73559 
73560   public:
73561     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
73562     const void* pNext = {};
73563     VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {};
73564     VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {};
73565     uint32_t coverageToColorLocation = {};
73566 
73567   };
73568   static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), "struct and wrapper have different size!" );
73569   static_assert( std::is_standard_layout<PipelineCoverageToColorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
73570 
73571   template <>
73572   struct CppType<StructureType, StructureType::ePipelineCoverageToColorStateCreateInfoNV>
73573   {
73574     using Type = PipelineCoverageToColorStateCreateInfoNV;
73575   };
73576 
73577   struct PipelineCreationFeedbackEXT
73578   {
73579 
73580 
73581 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCreationFeedbackEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73582     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags_ = {}, uint64_t duration_ = {}) VULKAN_HPP_NOEXCEPT
73583     : flags( flags_ ), duration( duration_ )
73584     {}
73585 
73586     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73587 
PipelineCreationFeedbackEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73588     PipelineCreationFeedbackEXT( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73589     {
73590       *this = rhs;
73591     }
73592 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73593 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73594     PipelineCreationFeedbackEXT & operator=( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73595     {
73596       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT const *>( &rhs );
73597       return *this;
73598     }
73599 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73600     PipelineCreationFeedbackEXT & operator=( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73601     {
73602       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCreationFeedbackEXT ) );
73603       return *this;
73604     }
73605 
73606 
operator VkPipelineCreationFeedbackEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73607     operator VkPipelineCreationFeedbackEXT const&() const VULKAN_HPP_NOEXCEPT
73608     {
73609       return *reinterpret_cast<const VkPipelineCreationFeedbackEXT*>( this );
73610     }
73611 
operator VkPipelineCreationFeedbackEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73612     operator VkPipelineCreationFeedbackEXT &() VULKAN_HPP_NOEXCEPT
73613     {
73614       return *reinterpret_cast<VkPipelineCreationFeedbackEXT*>( this );
73615     }
73616 
73617 
73618 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73619     auto operator<=>( PipelineCreationFeedbackEXT const& ) const = default;
73620 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73621     bool operator==( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73622     {
73623       return ( flags == rhs.flags )
73624           && ( duration == rhs.duration );
73625     }
73626 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73627     bool operator!=( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73628     {
73629       return !operator==( rhs );
73630     }
73631 #endif
73632 
73633 
73634 
73635   public:
73636     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags = {};
73637     uint64_t duration = {};
73638 
73639   };
73640   static_assert( sizeof( PipelineCreationFeedbackEXT ) == sizeof( VkPipelineCreationFeedbackEXT ), "struct and wrapper have different size!" );
73641   static_assert( std::is_standard_layout<PipelineCreationFeedbackEXT>::value, "struct wrapper is not a standard layout!" );
73642 
73643   struct PipelineCreationFeedbackCreateInfoEXT
73644   {
73645     static const bool allowDuplicate = false;
73646     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
73647 
73648 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73649     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ = {}, uint32_t pipelineStageCreationFeedbackCount_ = {}, VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ = {}) VULKAN_HPP_NOEXCEPT
73650     : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ ), pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ )
73651     {}
73652 
73653     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73654 
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73655     PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73656     {
73657       *this = rhs;
73658     }
73659 
73660 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73661     PipelineCreationFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT> const & pipelineStageCreationFeedbacks_ )
73662     : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() ) ), pPipelineStageCreationFeedbacks( pipelineStageCreationFeedbacks_.data() )
73663     {}
73664 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
73665 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73666 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73667     PipelineCreationFeedbackCreateInfoEXT & operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73668     {
73669       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT const *>( &rhs );
73670       return *this;
73671     }
73672 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73673     PipelineCreationFeedbackCreateInfoEXT & operator=( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73674     {
73675       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCreationFeedbackCreateInfoEXT ) );
73676       return *this;
73677     }
73678 
setPNextVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73679     PipelineCreationFeedbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73680     {
73681       pNext = pNext_;
73682       return *this;
73683     }
73684 
setPPipelineCreationFeedbackVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73685     PipelineCreationFeedbackCreateInfoEXT & setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT
73686     {
73687       pPipelineCreationFeedback = pPipelineCreationFeedback_;
73688       return *this;
73689     }
73690 
setPipelineStageCreationFeedbackCountVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73691     PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT
73692     {
73693       pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_;
73694       return *this;
73695     }
73696 
setPPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73697     PipelineCreationFeedbackCreateInfoEXT & setPPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
73698     {
73699       pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_;
73700       return *this;
73701     }
73702 
73703 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73704     PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT> const & pipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
73705     {
73706       pipelineStageCreationFeedbackCount = static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() );
73707       pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks_.data();
73708       return *this;
73709     }
73710 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
73711 
73712 
operator VkPipelineCreationFeedbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73713     operator VkPipelineCreationFeedbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73714     {
73715       return *reinterpret_cast<const VkPipelineCreationFeedbackCreateInfoEXT*>( this );
73716     }
73717 
operator VkPipelineCreationFeedbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73718     operator VkPipelineCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73719     {
73720       return *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>( this );
73721     }
73722 
73723 
73724 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73725     auto operator<=>( PipelineCreationFeedbackCreateInfoEXT const& ) const = default;
73726 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73727     bool operator==( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73728     {
73729       return ( sType == rhs.sType )
73730           && ( pNext == rhs.pNext )
73731           && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback )
73732           && ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount )
73733           && ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks );
73734     }
73735 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73736     bool operator!=( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73737     {
73738       return !operator==( rhs );
73739     }
73740 #endif
73741 
73742 
73743 
73744   public:
73745     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
73746     const void* pNext = {};
73747     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback = {};
73748     uint32_t pipelineStageCreationFeedbackCount = {};
73749     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks = {};
73750 
73751   };
73752   static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), "struct and wrapper have different size!" );
73753   static_assert( std::is_standard_layout<PipelineCreationFeedbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73754 
73755   template <>
73756   struct CppType<StructureType, StructureType::ePipelineCreationFeedbackCreateInfoEXT>
73757   {
73758     using Type = PipelineCreationFeedbackCreateInfoEXT;
73759   };
73760 
73761   struct PipelineDiscardRectangleStateCreateInfoEXT
73762   {
73763     static const bool allowDuplicate = false;
73764     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
73765 
73766 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73767     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
73768     : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( discardRectangleCount_ ), pDiscardRectangles( pDiscardRectangles_ )
73769     {}
73770 
73771     VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73772 
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73773     PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73774     {
73775       *this = rhs;
73776     }
73777 
73778 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73779     PipelineDiscardRectangleStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ )
73780     : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( static_cast<uint32_t>( discardRectangles_.size() ) ), pDiscardRectangles( discardRectangles_.data() )
73781     {}
73782 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
73783 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73784 
operator =VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73785     PipelineDiscardRectangleStateCreateInfoEXT & operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73786     {
73787       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT const *>( &rhs );
73788       return *this;
73789     }
73790 
operator =VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73791     PipelineDiscardRectangleStateCreateInfoEXT & operator=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73792     {
73793       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) );
73794       return *this;
73795     }
73796 
setPNextVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73797     PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73798     {
73799       pNext = pNext_;
73800       return *this;
73801     }
73802 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73803     PipelineDiscardRectangleStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
73804     {
73805       flags = flags_;
73806       return *this;
73807     }
73808 
setDiscardRectangleModeVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73809     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT
73810     {
73811       discardRectangleMode = discardRectangleMode_;
73812       return *this;
73813     }
73814 
setDiscardRectangleCountVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73815     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT
73816     {
73817       discardRectangleCount = discardRectangleCount_;
73818       return *this;
73819     }
73820 
setPDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73821     PipelineDiscardRectangleStateCreateInfoEXT & setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT
73822     {
73823       pDiscardRectangles = pDiscardRectangles_;
73824       return *this;
73825     }
73826 
73827 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73828     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ ) VULKAN_HPP_NOEXCEPT
73829     {
73830       discardRectangleCount = static_cast<uint32_t>( discardRectangles_.size() );
73831       pDiscardRectangles = discardRectangles_.data();
73832       return *this;
73833     }
73834 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
73835 
73836 
operator VkPipelineDiscardRectangleStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73837     operator VkPipelineDiscardRectangleStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73838     {
73839       return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
73840     }
73841 
operator VkPipelineDiscardRectangleStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73842     operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73843     {
73844       return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
73845     }
73846 
73847 
73848 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73849     auto operator<=>( PipelineDiscardRectangleStateCreateInfoEXT const& ) const = default;
73850 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73851     bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73852     {
73853       return ( sType == rhs.sType )
73854           && ( pNext == rhs.pNext )
73855           && ( flags == rhs.flags )
73856           && ( discardRectangleMode == rhs.discardRectangleMode )
73857           && ( discardRectangleCount == rhs.discardRectangleCount )
73858           && ( pDiscardRectangles == rhs.pDiscardRectangles );
73859     }
73860 
operator !=VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73861     bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73862     {
73863       return !operator==( rhs );
73864     }
73865 #endif
73866 
73867 
73868 
73869   public:
73870     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
73871     const void* pNext = {};
73872     VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {};
73873     VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive;
73874     uint32_t discardRectangleCount = {};
73875     const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles = {};
73876 
73877   };
73878   static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), "struct and wrapper have different size!" );
73879   static_assert( std::is_standard_layout<PipelineDiscardRectangleStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73880 
73881   template <>
73882   struct CppType<StructureType, StructureType::ePipelineDiscardRectangleStateCreateInfoEXT>
73883   {
73884     using Type = PipelineDiscardRectangleStateCreateInfoEXT;
73885   };
73886 
73887   struct PipelineFragmentShadingRateStateCreateInfoKHR
73888   {
73889     static const bool allowDuplicate = false;
73890     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
73891 
73892 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineFragmentShadingRateStateCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR73893     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
73894     : fragmentSize( fragmentSize_ ), combinerOps( combinerOps_ )
73895     {}
73896 
73897     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73898 
PipelineFragmentShadingRateStateCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR73899     PipelineFragmentShadingRateStateCreateInfoKHR( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73900     {
73901       *this = rhs;
73902     }
73903 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73904 
operator =VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR73905     PipelineFragmentShadingRateStateCreateInfoKHR & operator=( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73906     {
73907       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR const *>( &rhs );
73908       return *this;
73909     }
73910 
operator =VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR73911     PipelineFragmentShadingRateStateCreateInfoKHR & operator=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73912     {
73913       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineFragmentShadingRateStateCreateInfoKHR ) );
73914       return *this;
73915     }
73916 
setPNextVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR73917     PipelineFragmentShadingRateStateCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73918     {
73919       pNext = pNext_;
73920       return *this;
73921     }
73922 
setFragmentSizeVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR73923     PipelineFragmentShadingRateStateCreateInfoKHR & setFragmentSize( VULKAN_HPP_NAMESPACE::Extent2D const & fragmentSize_ ) VULKAN_HPP_NOEXCEPT
73924     {
73925       fragmentSize = fragmentSize_;
73926       return *this;
73927     }
73928 
setCombinerOpsVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR73929     PipelineFragmentShadingRateStateCreateInfoKHR & setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
73930     {
73931       combinerOps = combinerOps_;
73932       return *this;
73933     }
73934 
73935 
operator VkPipelineFragmentShadingRateStateCreateInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR73936     operator VkPipelineFragmentShadingRateStateCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
73937     {
73938       return *reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR*>( this );
73939     }
73940 
operator VkPipelineFragmentShadingRateStateCreateInfoKHR&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR73941     operator VkPipelineFragmentShadingRateStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
73942     {
73943       return *reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR*>( this );
73944     }
73945 
73946 
73947 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73948     auto operator<=>( PipelineFragmentShadingRateStateCreateInfoKHR const& ) const = default;
73949 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR73950     bool operator==( PipelineFragmentShadingRateStateCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73951     {
73952       return ( sType == rhs.sType )
73953           && ( pNext == rhs.pNext )
73954           && ( fragmentSize == rhs.fragmentSize )
73955           && ( combinerOps == rhs.combinerOps );
73956     }
73957 
operator !=VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR73958     bool operator!=( PipelineFragmentShadingRateStateCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73959     {
73960       return !operator==( rhs );
73961     }
73962 #endif
73963 
73964 
73965 
73966   public:
73967     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
73968     const void* pNext = {};
73969     VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
73970     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } };
73971 
73972   };
73973   static_assert( sizeof( PipelineFragmentShadingRateStateCreateInfoKHR ) == sizeof( VkPipelineFragmentShadingRateStateCreateInfoKHR ), "struct and wrapper have different size!" );
73974   static_assert( std::is_standard_layout<PipelineFragmentShadingRateStateCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
73975 
73976   template <>
73977   struct CppType<StructureType, StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR>
73978   {
73979     using Type = PipelineFragmentShadingRateStateCreateInfoKHR;
73980   };
73981 
73982   struct PipelineRasterizationConservativeStateCreateInfoEXT
73983   {
73984     static const bool allowDuplicate = false;
73985     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
73986 
73987 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73988     VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled, float extraPrimitiveOverestimationSize_ = {}) VULKAN_HPP_NOEXCEPT
73989     : flags( flags_ ), conservativeRasterizationMode( conservativeRasterizationMode_ ), extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ )
73990     {}
73991 
73992     VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73993 
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73994     PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73995     {
73996       *this = rhs;
73997     }
73998 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73999 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74000     PipelineRasterizationConservativeStateCreateInfoEXT & operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74001     {
74002       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT const *>( &rhs );
74003       return *this;
74004     }
74005 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74006     PipelineRasterizationConservativeStateCreateInfoEXT & operator=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74007     {
74008       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) );
74009       return *this;
74010     }
74011 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74012     PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74013     {
74014       pNext = pNext_;
74015       return *this;
74016     }
74017 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74018     PipelineRasterizationConservativeStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
74019     {
74020       flags = flags_;
74021       return *this;
74022     }
74023 
setConservativeRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74024     PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
74025     {
74026       conservativeRasterizationMode = conservativeRasterizationMode_;
74027       return *this;
74028     }
74029 
setExtraPrimitiveOverestimationSizeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74030     PipelineRasterizationConservativeStateCreateInfoEXT & setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
74031     {
74032       extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
74033       return *this;
74034     }
74035 
74036 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74037     operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74038     {
74039       return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
74040     }
74041 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74042     operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74043     {
74044       return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
74045     }
74046 
74047 
74048 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74049     auto operator<=>( PipelineRasterizationConservativeStateCreateInfoEXT const& ) const = default;
74050 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74051     bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74052     {
74053       return ( sType == rhs.sType )
74054           && ( pNext == rhs.pNext )
74055           && ( flags == rhs.flags )
74056           && ( conservativeRasterizationMode == rhs.conservativeRasterizationMode )
74057           && ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize );
74058     }
74059 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74060     bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74061     {
74062       return !operator==( rhs );
74063     }
74064 #endif
74065 
74066 
74067 
74068   public:
74069     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
74070     const void* pNext = {};
74071     VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {};
74072     VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled;
74073     float extraPrimitiveOverestimationSize = {};
74074 
74075   };
74076   static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), "struct and wrapper have different size!" );
74077   static_assert( std::is_standard_layout<PipelineRasterizationConservativeStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74078 
74079   template <>
74080   struct CppType<StructureType, StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT>
74081   {
74082     using Type = PipelineRasterizationConservativeStateCreateInfoEXT;
74083   };
74084 
74085   struct PipelineRasterizationDepthClipStateCreateInfoEXT
74086   {
74087     static const bool allowDuplicate = false;
74088     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
74089 
74090 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74091     VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT
74092     : flags( flags_ ), depthClipEnable( depthClipEnable_ )
74093     {}
74094 
74095     VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74096 
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74097     PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74098     {
74099       *this = rhs;
74100     }
74101 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74102 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74103     PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74104     {
74105       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT const *>( &rhs );
74106       return *this;
74107     }
74108 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74109     PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74110     {
74111       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) );
74112       return *this;
74113     }
74114 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74115     PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74116     {
74117       pNext = pNext_;
74118       return *this;
74119     }
74120 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74121     PipelineRasterizationDepthClipStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
74122     {
74123       flags = flags_;
74124       return *this;
74125     }
74126 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74127     PipelineRasterizationDepthClipStateCreateInfoEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
74128     {
74129       depthClipEnable = depthClipEnable_;
74130       return *this;
74131     }
74132 
74133 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74134     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74135     {
74136       return *reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
74137     }
74138 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74139     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74140     {
74141       return *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
74142     }
74143 
74144 
74145 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74146     auto operator<=>( PipelineRasterizationDepthClipStateCreateInfoEXT const& ) const = default;
74147 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74148     bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74149     {
74150       return ( sType == rhs.sType )
74151           && ( pNext == rhs.pNext )
74152           && ( flags == rhs.flags )
74153           && ( depthClipEnable == rhs.depthClipEnable );
74154     }
74155 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74156     bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74157     {
74158       return !operator==( rhs );
74159     }
74160 #endif
74161 
74162 
74163 
74164   public:
74165     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
74166     const void* pNext = {};
74167     VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {};
74168     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
74169 
74170   };
74171   static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), "struct and wrapper have different size!" );
74172   static_assert( std::is_standard_layout<PipelineRasterizationDepthClipStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74173 
74174   template <>
74175   struct CppType<StructureType, StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT>
74176   {
74177     using Type = PipelineRasterizationDepthClipStateCreateInfoEXT;
74178   };
74179 
74180   struct PipelineRasterizationLineStateCreateInfoEXT
74181   {
74182     static const bool allowDuplicate = false;
74183     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
74184 
74185 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74186     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
74187     : lineRasterizationMode( lineRasterizationMode_ ), stippledLineEnable( stippledLineEnable_ ), lineStippleFactor( lineStippleFactor_ ), lineStipplePattern( lineStipplePattern_ )
74188     {}
74189 
74190     VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74191 
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74192     PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74193     {
74194       *this = rhs;
74195     }
74196 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74197 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74198     PipelineRasterizationLineStateCreateInfoEXT & operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74199     {
74200       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT const *>( &rhs );
74201       return *this;
74202     }
74203 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74204     PipelineRasterizationLineStateCreateInfoEXT & operator=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74205     {
74206       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationLineStateCreateInfoEXT ) );
74207       return *this;
74208     }
74209 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74210     PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74211     {
74212       pNext = pNext_;
74213       return *this;
74214     }
74215 
setLineRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74216     PipelineRasterizationLineStateCreateInfoEXT & setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
74217     {
74218       lineRasterizationMode = lineRasterizationMode_;
74219       return *this;
74220     }
74221 
setStippledLineEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74222     PipelineRasterizationLineStateCreateInfoEXT & setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT
74223     {
74224       stippledLineEnable = stippledLineEnable_;
74225       return *this;
74226     }
74227 
setLineStippleFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74228     PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT
74229     {
74230       lineStippleFactor = lineStippleFactor_;
74231       return *this;
74232     }
74233 
setLineStipplePatternVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74234     PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT
74235     {
74236       lineStipplePattern = lineStipplePattern_;
74237       return *this;
74238     }
74239 
74240 
operator VkPipelineRasterizationLineStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74241     operator VkPipelineRasterizationLineStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74242     {
74243       return *reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
74244     }
74245 
operator VkPipelineRasterizationLineStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74246     operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74247     {
74248       return *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
74249     }
74250 
74251 
74252 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74253     auto operator<=>( PipelineRasterizationLineStateCreateInfoEXT const& ) const = default;
74254 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74255     bool operator==( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74256     {
74257       return ( sType == rhs.sType )
74258           && ( pNext == rhs.pNext )
74259           && ( lineRasterizationMode == rhs.lineRasterizationMode )
74260           && ( stippledLineEnable == rhs.stippledLineEnable )
74261           && ( lineStippleFactor == rhs.lineStippleFactor )
74262           && ( lineStipplePattern == rhs.lineStipplePattern );
74263     }
74264 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74265     bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74266     {
74267       return !operator==( rhs );
74268     }
74269 #endif
74270 
74271 
74272 
74273   public:
74274     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
74275     const void* pNext = {};
74276     VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault;
74277     VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {};
74278     uint32_t lineStippleFactor = {};
74279     uint16_t lineStipplePattern = {};
74280 
74281   };
74282   static_assert( sizeof( PipelineRasterizationLineStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationLineStateCreateInfoEXT ), "struct and wrapper have different size!" );
74283   static_assert( std::is_standard_layout<PipelineRasterizationLineStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74284 
74285   template <>
74286   struct CppType<StructureType, StructureType::ePipelineRasterizationLineStateCreateInfoEXT>
74287   {
74288     using Type = PipelineRasterizationLineStateCreateInfoEXT;
74289   };
74290 
74291   struct PipelineRasterizationStateRasterizationOrderAMD
74292   {
74293     static const bool allowDuplicate = false;
74294     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
74295 
74296 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74297     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD(VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict) VULKAN_HPP_NOEXCEPT
74298     : rasterizationOrder( rasterizationOrder_ )
74299     {}
74300 
74301     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74302 
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74303     PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
74304     {
74305       *this = rhs;
74306     }
74307 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74308 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74309     PipelineRasterizationStateRasterizationOrderAMD & operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
74310     {
74311       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD const *>( &rhs );
74312       return *this;
74313     }
74314 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74315     PipelineRasterizationStateRasterizationOrderAMD & operator=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
74316     {
74317       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationStateRasterizationOrderAMD ) );
74318       return *this;
74319     }
74320 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74321     PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74322     {
74323       pNext = pNext_;
74324       return *this;
74325     }
74326 
setRasterizationOrderVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74327     PipelineRasterizationStateRasterizationOrderAMD & setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT
74328     {
74329       rasterizationOrder = rasterizationOrder_;
74330       return *this;
74331     }
74332 
74333 
operator VkPipelineRasterizationStateRasterizationOrderAMD const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74334     operator VkPipelineRasterizationStateRasterizationOrderAMD const&() const VULKAN_HPP_NOEXCEPT
74335     {
74336       return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
74337     }
74338 
operator VkPipelineRasterizationStateRasterizationOrderAMD&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74339     operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT
74340     {
74341       return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
74342     }
74343 
74344 
74345 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74346     auto operator<=>( PipelineRasterizationStateRasterizationOrderAMD const& ) const = default;
74347 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74348     bool operator==( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
74349     {
74350       return ( sType == rhs.sType )
74351           && ( pNext == rhs.pNext )
74352           && ( rasterizationOrder == rhs.rasterizationOrder );
74353     }
74354 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74355     bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
74356     {
74357       return !operator==( rhs );
74358     }
74359 #endif
74360 
74361 
74362 
74363   public:
74364     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
74365     const void* pNext = {};
74366     VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict;
74367 
74368   };
74369   static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), "struct and wrapper have different size!" );
74370   static_assert( std::is_standard_layout<PipelineRasterizationStateRasterizationOrderAMD>::value, "struct wrapper is not a standard layout!" );
74371 
74372   template <>
74373   struct CppType<StructureType, StructureType::ePipelineRasterizationStateRasterizationOrderAMD>
74374   {
74375     using Type = PipelineRasterizationStateRasterizationOrderAMD;
74376   };
74377 
74378   struct PipelineRasterizationStateStreamCreateInfoEXT
74379   {
74380     static const bool allowDuplicate = false;
74381     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
74382 
74383 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74384     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {}, uint32_t rasterizationStream_ = {}) VULKAN_HPP_NOEXCEPT
74385     : flags( flags_ ), rasterizationStream( rasterizationStream_ )
74386     {}
74387 
74388     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74389 
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74390     PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74391     {
74392       *this = rhs;
74393     }
74394 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74395 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74396     PipelineRasterizationStateStreamCreateInfoEXT & operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74397     {
74398       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT const *>( &rhs );
74399       return *this;
74400     }
74401 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74402     PipelineRasterizationStateStreamCreateInfoEXT & operator=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74403     {
74404       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) );
74405       return *this;
74406     }
74407 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74408     PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74409     {
74410       pNext = pNext_;
74411       return *this;
74412     }
74413 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74414     PipelineRasterizationStateStreamCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
74415     {
74416       flags = flags_;
74417       return *this;
74418     }
74419 
setRasterizationStreamVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74420     PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT
74421     {
74422       rasterizationStream = rasterizationStream_;
74423       return *this;
74424     }
74425 
74426 
operator VkPipelineRasterizationStateStreamCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74427     operator VkPipelineRasterizationStateStreamCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74428     {
74429       return *reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
74430     }
74431 
operator VkPipelineRasterizationStateStreamCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74432     operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74433     {
74434       return *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
74435     }
74436 
74437 
74438 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74439     auto operator<=>( PipelineRasterizationStateStreamCreateInfoEXT const& ) const = default;
74440 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74441     bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74442     {
74443       return ( sType == rhs.sType )
74444           && ( pNext == rhs.pNext )
74445           && ( flags == rhs.flags )
74446           && ( rasterizationStream == rhs.rasterizationStream );
74447     }
74448 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74449     bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74450     {
74451       return !operator==( rhs );
74452     }
74453 #endif
74454 
74455 
74456 
74457   public:
74458     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
74459     const void* pNext = {};
74460     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {};
74461     uint32_t rasterizationStream = {};
74462 
74463   };
74464   static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), "struct and wrapper have different size!" );
74465   static_assert( std::is_standard_layout<PipelineRasterizationStateStreamCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74466 
74467   template <>
74468   struct CppType<StructureType, StructureType::ePipelineRasterizationStateStreamCreateInfoEXT>
74469   {
74470     using Type = PipelineRasterizationStateStreamCreateInfoEXT;
74471   };
74472 
74473   struct PipelineRepresentativeFragmentTestStateCreateInfoNV
74474   {
74475     static const bool allowDuplicate = false;
74476     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
74477 
74478 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74479     VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {}) VULKAN_HPP_NOEXCEPT
74480     : representativeFragmentTestEnable( representativeFragmentTestEnable_ )
74481     {}
74482 
74483     VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74484 
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74485     PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74486     {
74487       *this = rhs;
74488     }
74489 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74490 
operator =VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74491     PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74492     {
74493       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV const *>( &rhs );
74494       return *this;
74495     }
74496 
operator =VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74497     PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74498     {
74499       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) );
74500       return *this;
74501     }
74502 
setPNextVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74503     PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74504     {
74505       pNext = pNext_;
74506       return *this;
74507     }
74508 
setRepresentativeFragmentTestEnableVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74509     PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
74510     {
74511       representativeFragmentTestEnable = representativeFragmentTestEnable_;
74512       return *this;
74513     }
74514 
74515 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74516     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
74517     {
74518       return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
74519     }
74520 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74521     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
74522     {
74523       return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
74524     }
74525 
74526 
74527 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74528     auto operator<=>( PipelineRepresentativeFragmentTestStateCreateInfoNV const& ) const = default;
74529 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74530     bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74531     {
74532       return ( sType == rhs.sType )
74533           && ( pNext == rhs.pNext )
74534           && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable );
74535     }
74536 
operator !=VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74537     bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74538     {
74539       return !operator==( rhs );
74540     }
74541 #endif
74542 
74543 
74544 
74545   public:
74546     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
74547     const void* pNext = {};
74548     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {};
74549 
74550   };
74551   static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "struct and wrapper have different size!" );
74552   static_assert( std::is_standard_layout<PipelineRepresentativeFragmentTestStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
74553 
74554   template <>
74555   struct CppType<StructureType, StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV>
74556   {
74557     using Type = PipelineRepresentativeFragmentTestStateCreateInfoNV;
74558   };
74559 
74560   struct PipelineSampleLocationsStateCreateInfoEXT
74561   {
74562     static const bool allowDuplicate = false;
74563     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
74564 
74565 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT74566     VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
74567     : sampleLocationsEnable( sampleLocationsEnable_ ), sampleLocationsInfo( sampleLocationsInfo_ )
74568     {}
74569 
74570     VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74571 
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT74572     PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74573     {
74574       *this = rhs;
74575     }
74576 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74577 
operator =VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT74578     PipelineSampleLocationsStateCreateInfoEXT & operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74579     {
74580       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT const *>( &rhs );
74581       return *this;
74582     }
74583 
operator =VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT74584     PipelineSampleLocationsStateCreateInfoEXT & operator=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74585     {
74586       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineSampleLocationsStateCreateInfoEXT ) );
74587       return *this;
74588     }
74589 
setPNextVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT74590     PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74591     {
74592       pNext = pNext_;
74593       return *this;
74594     }
74595 
setSampleLocationsEnableVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT74596     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
74597     {
74598       sampleLocationsEnable = sampleLocationsEnable_;
74599       return *this;
74600     }
74601 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT74602     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
74603     {
74604       sampleLocationsInfo = sampleLocationsInfo_;
74605       return *this;
74606     }
74607 
74608 
operator VkPipelineSampleLocationsStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT74609     operator VkPipelineSampleLocationsStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74610     {
74611       return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
74612     }
74613 
operator VkPipelineSampleLocationsStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT74614     operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74615     {
74616       return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
74617     }
74618 
74619 
74620 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74621     auto operator<=>( PipelineSampleLocationsStateCreateInfoEXT const& ) const = default;
74622 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT74623     bool operator==( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74624     {
74625       return ( sType == rhs.sType )
74626           && ( pNext == rhs.pNext )
74627           && ( sampleLocationsEnable == rhs.sampleLocationsEnable )
74628           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
74629     }
74630 
operator !=VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT74631     bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74632     {
74633       return !operator==( rhs );
74634     }
74635 #endif
74636 
74637 
74638 
74639   public:
74640     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
74641     const void* pNext = {};
74642     VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {};
74643     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
74644 
74645   };
74646   static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), "struct and wrapper have different size!" );
74647   static_assert( std::is_standard_layout<PipelineSampleLocationsStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74648 
74649   template <>
74650   struct CppType<StructureType, StructureType::ePipelineSampleLocationsStateCreateInfoEXT>
74651   {
74652     using Type = PipelineSampleLocationsStateCreateInfoEXT;
74653   };
74654 
74655   struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
74656   {
74657     static const bool allowDuplicate = false;
74658     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
74659 
74660 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT74661     VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(uint32_t requiredSubgroupSize_ = {}) VULKAN_HPP_NOEXCEPT
74662     : requiredSubgroupSize( requiredSubgroupSize_ )
74663     {}
74664 
74665     VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74666 
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT74667     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74668     {
74669       *this = rhs;
74670     }
74671 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74672 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT74673     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74674     {
74675       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const *>( &rhs );
74676       return *this;
74677     }
74678 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT74679     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74680     {
74681       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) );
74682       return *this;
74683     }
74684 
74685 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT74686     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74687     {
74688       return *reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
74689     }
74690 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT74691     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74692     {
74693       return *reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
74694     }
74695 
74696 
74697 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74698     auto operator<=>( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& ) const = default;
74699 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT74700     bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74701     {
74702       return ( sType == rhs.sType )
74703           && ( pNext == rhs.pNext )
74704           && ( requiredSubgroupSize == rhs.requiredSubgroupSize );
74705     }
74706 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT74707     bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74708     {
74709       return !operator==( rhs );
74710     }
74711 #endif
74712 
74713 
74714 
74715   public:
74716     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
74717     void* pNext = {};
74718     uint32_t requiredSubgroupSize = {};
74719 
74720   };
74721   static_assert( sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) == sizeof( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ), "struct and wrapper have different size!" );
74722   static_assert( std::is_standard_layout<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74723 
74724   template <>
74725   struct CppType<StructureType, StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>
74726   {
74727     using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
74728   };
74729 
74730   struct PipelineTessellationDomainOriginStateCreateInfo
74731   {
74732     static const bool allowDuplicate = false;
74733     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
74734 
74735 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo74736     VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo(VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft) VULKAN_HPP_NOEXCEPT
74737     : domainOrigin( domainOrigin_ )
74738     {}
74739 
74740     VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74741 
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo74742     PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
74743     {
74744       *this = rhs;
74745     }
74746 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74747 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo74748     PipelineTessellationDomainOriginStateCreateInfo & operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
74749     {
74750       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo const *>( &rhs );
74751       return *this;
74752     }
74753 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo74754     PipelineTessellationDomainOriginStateCreateInfo & operator=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
74755     {
74756       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineTessellationDomainOriginStateCreateInfo ) );
74757       return *this;
74758     }
74759 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo74760     PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74761     {
74762       pNext = pNext_;
74763       return *this;
74764     }
74765 
setDomainOriginVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo74766     PipelineTessellationDomainOriginStateCreateInfo & setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT
74767     {
74768       domainOrigin = domainOrigin_;
74769       return *this;
74770     }
74771 
74772 
operator VkPipelineTessellationDomainOriginStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo74773     operator VkPipelineTessellationDomainOriginStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
74774     {
74775       return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
74776     }
74777 
operator VkPipelineTessellationDomainOriginStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo74778     operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT
74779     {
74780       return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
74781     }
74782 
74783 
74784 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74785     auto operator<=>( PipelineTessellationDomainOriginStateCreateInfo const& ) const = default;
74786 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo74787     bool operator==( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
74788     {
74789       return ( sType == rhs.sType )
74790           && ( pNext == rhs.pNext )
74791           && ( domainOrigin == rhs.domainOrigin );
74792     }
74793 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo74794     bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
74795     {
74796       return !operator==( rhs );
74797     }
74798 #endif
74799 
74800 
74801 
74802   public:
74803     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
74804     const void* pNext = {};
74805     VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft;
74806 
74807   };
74808   static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), "struct and wrapper have different size!" );
74809   static_assert( std::is_standard_layout<PipelineTessellationDomainOriginStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
74810 
74811   template <>
74812   struct CppType<StructureType, StructureType::ePipelineTessellationDomainOriginStateCreateInfo>
74813   {
74814     using Type = PipelineTessellationDomainOriginStateCreateInfo;
74815   };
74816   using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
74817 
74818   struct VertexInputBindingDivisorDescriptionEXT
74819   {
74820 
74821 
74822 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74823     VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT(uint32_t binding_ = {}, uint32_t divisor_ = {}) VULKAN_HPP_NOEXCEPT
74824     : binding( binding_ ), divisor( divisor_ )
74825     {}
74826 
74827     VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74828 
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74829     VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74830     {
74831       *this = rhs;
74832     }
74833 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74834 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74835     VertexInputBindingDivisorDescriptionEXT & operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74836     {
74837       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT const *>( &rhs );
74838       return *this;
74839     }
74840 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74841     VertexInputBindingDivisorDescriptionEXT & operator=( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74842     {
74843       memcpy( static_cast<void *>( this ), &rhs, sizeof( VertexInputBindingDivisorDescriptionEXT ) );
74844       return *this;
74845     }
74846 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74847     VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
74848     {
74849       binding = binding_;
74850       return *this;
74851     }
74852 
setDivisorVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74853     VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
74854     {
74855       divisor = divisor_;
74856       return *this;
74857     }
74858 
74859 
operator VkVertexInputBindingDivisorDescriptionEXT const&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74860     operator VkVertexInputBindingDivisorDescriptionEXT const&() const VULKAN_HPP_NOEXCEPT
74861     {
74862       return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT*>( this );
74863     }
74864 
operator VkVertexInputBindingDivisorDescriptionEXT&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74865     operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT
74866     {
74867       return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>( this );
74868     }
74869 
74870 
74871 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74872     auto operator<=>( VertexInputBindingDivisorDescriptionEXT const& ) const = default;
74873 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74874     bool operator==( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74875     {
74876       return ( binding == rhs.binding )
74877           && ( divisor == rhs.divisor );
74878     }
74879 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74880     bool operator!=( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74881     {
74882       return !operator==( rhs );
74883     }
74884 #endif
74885 
74886 
74887 
74888   public:
74889     uint32_t binding = {};
74890     uint32_t divisor = {};
74891 
74892   };
74893   static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ), "struct and wrapper have different size!" );
74894   static_assert( std::is_standard_layout<VertexInputBindingDivisorDescriptionEXT>::value, "struct wrapper is not a standard layout!" );
74895 
74896   struct PipelineVertexInputDivisorStateCreateInfoEXT
74897   {
74898     static const bool allowDuplicate = false;
74899     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
74900 
74901 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74902     VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT(uint32_t vertexBindingDivisorCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ = {}) VULKAN_HPP_NOEXCEPT
74903     : vertexBindingDivisorCount( vertexBindingDivisorCount_ ), pVertexBindingDivisors( pVertexBindingDivisors_ )
74904     {}
74905 
74906     VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74907 
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74908     PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74909     {
74910       *this = rhs;
74911     }
74912 
74913 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74914     PipelineVertexInputDivisorStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ )
74915     : vertexBindingDivisorCount( static_cast<uint32_t>( vertexBindingDivisors_.size() ) ), pVertexBindingDivisors( vertexBindingDivisors_.data() )
74916     {}
74917 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74918 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74919 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74920     PipelineVertexInputDivisorStateCreateInfoEXT & operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74921     {
74922       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs );
74923       return *this;
74924     }
74925 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74926     PipelineVertexInputDivisorStateCreateInfoEXT & operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74927     {
74928       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) );
74929       return *this;
74930     }
74931 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74932     PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74933     {
74934       pNext = pNext_;
74935       return *this;
74936     }
74937 
setVertexBindingDivisorCountVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74938     PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT
74939     {
74940       vertexBindingDivisorCount = vertexBindingDivisorCount_;
74941       return *this;
74942     }
74943 
setPVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74944     PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
74945     {
74946       pVertexBindingDivisors = pVertexBindingDivisors_;
74947       return *this;
74948     }
74949 
74950 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74951     PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
74952     {
74953       vertexBindingDivisorCount = static_cast<uint32_t>( vertexBindingDivisors_.size() );
74954       pVertexBindingDivisors = vertexBindingDivisors_.data();
74955       return *this;
74956     }
74957 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74958 
74959 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74960     operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74961     {
74962       return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
74963     }
74964 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74965     operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74966     {
74967       return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
74968     }
74969 
74970 
74971 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74972     auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const& ) const = default;
74973 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74974     bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74975     {
74976       return ( sType == rhs.sType )
74977           && ( pNext == rhs.pNext )
74978           && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount )
74979           && ( pVertexBindingDivisors == rhs.pVertexBindingDivisors );
74980     }
74981 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74982     bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74983     {
74984       return !operator==( rhs );
74985     }
74986 #endif
74987 
74988 
74989 
74990   public:
74991     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
74992     const void* pNext = {};
74993     uint32_t vertexBindingDivisorCount = {};
74994     const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors = {};
74995 
74996   };
74997   static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), "struct and wrapper have different size!" );
74998   static_assert( std::is_standard_layout<PipelineVertexInputDivisorStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74999 
75000   template <>
75001   struct CppType<StructureType, StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT>
75002   {
75003     using Type = PipelineVertexInputDivisorStateCreateInfoEXT;
75004   };
75005 
75006   struct PipelineViewportCoarseSampleOrderStateCreateInfoNV
75007   {
75008     static const bool allowDuplicate = false;
75009     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
75010 
75011 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75012     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
75013     : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( customSampleOrderCount_ ), pCustomSampleOrders( pCustomSampleOrders_ )
75014     {}
75015 
75016     VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75017 
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75018     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75019     {
75020       *this = rhs;
75021     }
75022 
75023 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75024     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_ )
75025     : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( static_cast<uint32_t>( customSampleOrders_.size() ) ), pCustomSampleOrders( customSampleOrders_.data() )
75026     {}
75027 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75028 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75029 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75030     PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75031     {
75032       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>( &rhs );
75033       return *this;
75034     }
75035 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75036     PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75037     {
75038       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) );
75039       return *this;
75040     }
75041 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75042     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75043     {
75044       pNext = pNext_;
75045       return *this;
75046     }
75047 
setSampleOrderTypeVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75048     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT
75049     {
75050       sampleOrderType = sampleOrderType_;
75051       return *this;
75052     }
75053 
setCustomSampleOrderCountVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75054     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT
75055     {
75056       customSampleOrderCount = customSampleOrderCount_;
75057       return *this;
75058     }
75059 
setPCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75060     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT
75061     {
75062       pCustomSampleOrders = pCustomSampleOrders_;
75063       return *this;
75064     }
75065 
75066 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75067     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_ ) VULKAN_HPP_NOEXCEPT
75068     {
75069       customSampleOrderCount = static_cast<uint32_t>( customSampleOrders_.size() );
75070       pCustomSampleOrders = customSampleOrders_.data();
75071       return *this;
75072     }
75073 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75074 
75075 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75076     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
75077     {
75078       return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
75079     }
75080 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75081     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
75082     {
75083       return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
75084     }
75085 
75086 
75087 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75088     auto operator<=>( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& ) const = default;
75089 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75090     bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75091     {
75092       return ( sType == rhs.sType )
75093           && ( pNext == rhs.pNext )
75094           && ( sampleOrderType == rhs.sampleOrderType )
75095           && ( customSampleOrderCount == rhs.customSampleOrderCount )
75096           && ( pCustomSampleOrders == rhs.pCustomSampleOrders );
75097     }
75098 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75099     bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75100     {
75101       return !operator==( rhs );
75102     }
75103 #endif
75104 
75105 
75106 
75107   public:
75108     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
75109     const void* pNext = {};
75110     VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault;
75111     uint32_t customSampleOrderCount = {};
75112     const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders = {};
75113 
75114   };
75115   static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "struct and wrapper have different size!" );
75116   static_assert( std::is_standard_layout<PipelineViewportCoarseSampleOrderStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
75117 
75118   template <>
75119   struct CppType<StructureType, StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV>
75120   {
75121     using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV;
75122   };
75123 
75124   struct PipelineViewportExclusiveScissorStateCreateInfoNV
75125   {
75126     static const bool allowDuplicate = false;
75127     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
75128 
75129 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75130     VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV(uint32_t exclusiveScissorCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ = {}) VULKAN_HPP_NOEXCEPT
75131     : exclusiveScissorCount( exclusiveScissorCount_ ), pExclusiveScissors( pExclusiveScissors_ )
75132     {}
75133 
75134     VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75135 
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75136     PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75137     {
75138       *this = rhs;
75139     }
75140 
75141 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75142     PipelineViewportExclusiveScissorStateCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ )
75143     : exclusiveScissorCount( static_cast<uint32_t>( exclusiveScissors_.size() ) ), pExclusiveScissors( exclusiveScissors_.data() )
75144     {}
75145 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75146 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75147 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75148     PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75149     {
75150       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV const *>( &rhs );
75151       return *this;
75152     }
75153 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75154     PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75155     {
75156       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) );
75157       return *this;
75158     }
75159 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75160     PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75161     {
75162       pNext = pNext_;
75163       return *this;
75164     }
75165 
setExclusiveScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75166     PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT
75167     {
75168       exclusiveScissorCount = exclusiveScissorCount_;
75169       return *this;
75170     }
75171 
setPExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75172     PipelineViewportExclusiveScissorStateCreateInfoNV & setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
75173     {
75174       pExclusiveScissors = pExclusiveScissors_;
75175       return *this;
75176     }
75177 
75178 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75179     PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
75180     {
75181       exclusiveScissorCount = static_cast<uint32_t>( exclusiveScissors_.size() );
75182       pExclusiveScissors = exclusiveScissors_.data();
75183       return *this;
75184     }
75185 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75186 
75187 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75188     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
75189     {
75190       return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
75191     }
75192 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75193     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
75194     {
75195       return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
75196     }
75197 
75198 
75199 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75200     auto operator<=>( PipelineViewportExclusiveScissorStateCreateInfoNV const& ) const = default;
75201 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75202     bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75203     {
75204       return ( sType == rhs.sType )
75205           && ( pNext == rhs.pNext )
75206           && ( exclusiveScissorCount == rhs.exclusiveScissorCount )
75207           && ( pExclusiveScissors == rhs.pExclusiveScissors );
75208     }
75209 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75210     bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75211     {
75212       return !operator==( rhs );
75213     }
75214 #endif
75215 
75216 
75217 
75218   public:
75219     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
75220     const void* pNext = {};
75221     uint32_t exclusiveScissorCount = {};
75222     const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors = {};
75223 
75224   };
75225   static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "struct and wrapper have different size!" );
75226   static_assert( std::is_standard_layout<PipelineViewportExclusiveScissorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
75227 
75228   template <>
75229   struct CppType<StructureType, StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV>
75230   {
75231     using Type = PipelineViewportExclusiveScissorStateCreateInfoNV;
75232   };
75233 
75234   struct PipelineViewportShadingRateImageStateCreateInfoNV
75235   {
75236     static const bool allowDuplicate = false;
75237     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
75238 
75239 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75240     VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ = {}) VULKAN_HPP_NOEXCEPT
75241     : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( viewportCount_ ), pShadingRatePalettes( pShadingRatePalettes_ )
75242     {}
75243 
75244     VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75245 
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75246     PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75247     {
75248       *this = rhs;
75249     }
75250 
75251 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75252     PipelineViewportShadingRateImageStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_ )
75253     : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( static_cast<uint32_t>( shadingRatePalettes_.size() ) ), pShadingRatePalettes( shadingRatePalettes_.data() )
75254     {}
75255 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75256 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75257 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75258     PipelineViewportShadingRateImageStateCreateInfoNV & operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75259     {
75260       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV const *>( &rhs );
75261       return *this;
75262     }
75263 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75264     PipelineViewportShadingRateImageStateCreateInfoNV & operator=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75265     {
75266       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) );
75267       return *this;
75268     }
75269 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75270     PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75271     {
75272       pNext = pNext_;
75273       return *this;
75274     }
75275 
setShadingRateImageEnableVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75276     PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
75277     {
75278       shadingRateImageEnable = shadingRateImageEnable_;
75279       return *this;
75280     }
75281 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75282     PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
75283     {
75284       viewportCount = viewportCount_;
75285       return *this;
75286     }
75287 
setPShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75288     PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
75289     {
75290       pShadingRatePalettes = pShadingRatePalettes_;
75291       return *this;
75292     }
75293 
75294 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75295     PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
75296     {
75297       viewportCount = static_cast<uint32_t>( shadingRatePalettes_.size() );
75298       pShadingRatePalettes = shadingRatePalettes_.data();
75299       return *this;
75300     }
75301 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75302 
75303 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75304     operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
75305     {
75306       return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
75307     }
75308 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75309     operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
75310     {
75311       return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
75312     }
75313 
75314 
75315 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75316     auto operator<=>( PipelineViewportShadingRateImageStateCreateInfoNV const& ) const = default;
75317 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75318     bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75319     {
75320       return ( sType == rhs.sType )
75321           && ( pNext == rhs.pNext )
75322           && ( shadingRateImageEnable == rhs.shadingRateImageEnable )
75323           && ( viewportCount == rhs.viewportCount )
75324           && ( pShadingRatePalettes == rhs.pShadingRatePalettes );
75325     }
75326 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75327     bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75328     {
75329       return !operator==( rhs );
75330     }
75331 #endif
75332 
75333 
75334 
75335   public:
75336     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
75337     const void* pNext = {};
75338     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {};
75339     uint32_t viewportCount = {};
75340     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes = {};
75341 
75342   };
75343   static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "struct and wrapper have different size!" );
75344   static_assert( std::is_standard_layout<PipelineViewportShadingRateImageStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
75345 
75346   template <>
75347   struct CppType<StructureType, StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV>
75348   {
75349     using Type = PipelineViewportShadingRateImageStateCreateInfoNV;
75350   };
75351 
75352   struct ViewportSwizzleNV
75353   {
75354 
75355 
75356 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75357     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
75358     : x( x_ ), y( y_ ), z( z_ ), w( w_ )
75359     {}
75360 
75361     VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75362 
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75363     ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
75364     {
75365       *this = rhs;
75366     }
75367 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75368 
operator =VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75369     ViewportSwizzleNV & operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
75370     {
75371       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportSwizzleNV const *>( &rhs );
75372       return *this;
75373     }
75374 
operator =VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75375     ViewportSwizzleNV & operator=( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
75376     {
75377       memcpy( static_cast<void *>( this ), &rhs, sizeof( ViewportSwizzleNV ) );
75378       return *this;
75379     }
75380 
setXVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75381     ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT
75382     {
75383       x = x_;
75384       return *this;
75385     }
75386 
setYVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75387     ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT
75388     {
75389       y = y_;
75390       return *this;
75391     }
75392 
setZVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75393     ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT
75394     {
75395       z = z_;
75396       return *this;
75397     }
75398 
setWVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75399     ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT
75400     {
75401       w = w_;
75402       return *this;
75403     }
75404 
75405 
operator VkViewportSwizzleNV const&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75406     operator VkViewportSwizzleNV const&() const VULKAN_HPP_NOEXCEPT
75407     {
75408       return *reinterpret_cast<const VkViewportSwizzleNV*>( this );
75409     }
75410 
operator VkViewportSwizzleNV&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75411     operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT
75412     {
75413       return *reinterpret_cast<VkViewportSwizzleNV*>( this );
75414     }
75415 
75416 
75417 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75418     auto operator<=>( ViewportSwizzleNV const& ) const = default;
75419 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75420     bool operator==( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75421     {
75422       return ( x == rhs.x )
75423           && ( y == rhs.y )
75424           && ( z == rhs.z )
75425           && ( w == rhs.w );
75426     }
75427 
operator !=VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75428     bool operator!=( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75429     {
75430       return !operator==( rhs );
75431     }
75432 #endif
75433 
75434 
75435 
75436   public:
75437     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
75438     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
75439     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
75440     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
75441 
75442   };
75443   static_assert( sizeof( ViewportSwizzleNV ) == sizeof( VkViewportSwizzleNV ), "struct and wrapper have different size!" );
75444   static_assert( std::is_standard_layout<ViewportSwizzleNV>::value, "struct wrapper is not a standard layout!" );
75445 
75446   struct PipelineViewportSwizzleStateCreateInfoNV
75447   {
75448     static const bool allowDuplicate = false;
75449     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
75450 
75451 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75452     VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ = {}) VULKAN_HPP_NOEXCEPT
75453     : flags( flags_ ), viewportCount( viewportCount_ ), pViewportSwizzles( pViewportSwizzles_ )
75454     {}
75455 
75456     VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75457 
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75458     PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75459     {
75460       *this = rhs;
75461     }
75462 
75463 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75464     PipelineViewportSwizzleStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_ )
75465     : flags( flags_ ), viewportCount( static_cast<uint32_t>( viewportSwizzles_.size() ) ), pViewportSwizzles( viewportSwizzles_.data() )
75466     {}
75467 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75468 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75469 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75470     PipelineViewportSwizzleStateCreateInfoNV & operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75471     {
75472       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV const *>( &rhs );
75473       return *this;
75474     }
75475 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75476     PipelineViewportSwizzleStateCreateInfoNV & operator=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75477     {
75478       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportSwizzleStateCreateInfoNV ) );
75479       return *this;
75480     }
75481 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75482     PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75483     {
75484       pNext = pNext_;
75485       return *this;
75486     }
75487 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75488     PipelineViewportSwizzleStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
75489     {
75490       flags = flags_;
75491       return *this;
75492     }
75493 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75494     PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
75495     {
75496       viewportCount = viewportCount_;
75497       return *this;
75498     }
75499 
setPViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75500     PipelineViewportSwizzleStateCreateInfoNV & setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
75501     {
75502       pViewportSwizzles = pViewportSwizzles_;
75503       return *this;
75504     }
75505 
75506 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75507     PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
75508     {
75509       viewportCount = static_cast<uint32_t>( viewportSwizzles_.size() );
75510       pViewportSwizzles = viewportSwizzles_.data();
75511       return *this;
75512     }
75513 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75514 
75515 
operator VkPipelineViewportSwizzleStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75516     operator VkPipelineViewportSwizzleStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
75517     {
75518       return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
75519     }
75520 
operator VkPipelineViewportSwizzleStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75521     operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
75522     {
75523       return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
75524     }
75525 
75526 
75527 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75528     auto operator<=>( PipelineViewportSwizzleStateCreateInfoNV const& ) const = default;
75529 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75530     bool operator==( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75531     {
75532       return ( sType == rhs.sType )
75533           && ( pNext == rhs.pNext )
75534           && ( flags == rhs.flags )
75535           && ( viewportCount == rhs.viewportCount )
75536           && ( pViewportSwizzles == rhs.pViewportSwizzles );
75537     }
75538 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75539     bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75540     {
75541       return !operator==( rhs );
75542     }
75543 #endif
75544 
75545 
75546 
75547   public:
75548     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
75549     const void* pNext = {};
75550     VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {};
75551     uint32_t viewportCount = {};
75552     const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles = {};
75553 
75554   };
75555   static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), "struct and wrapper have different size!" );
75556   static_assert( std::is_standard_layout<PipelineViewportSwizzleStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
75557 
75558   template <>
75559   struct CppType<StructureType, StructureType::ePipelineViewportSwizzleStateCreateInfoNV>
75560   {
75561     using Type = PipelineViewportSwizzleStateCreateInfoNV;
75562   };
75563 
75564   struct PipelineViewportWScalingStateCreateInfoNV
75565   {
75566     static const bool allowDuplicate = false;
75567     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
75568 
75569 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75570     VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ = {}) VULKAN_HPP_NOEXCEPT
75571     : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( viewportCount_ ), pViewportWScalings( pViewportWScalings_ )
75572     {}
75573 
75574     VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75575 
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75576     PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75577     {
75578       *this = rhs;
75579     }
75580 
75581 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75582     PipelineViewportWScalingStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_ )
75583     : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( static_cast<uint32_t>( viewportWScalings_.size() ) ), pViewportWScalings( viewportWScalings_.data() )
75584     {}
75585 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75586 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75587 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75588     PipelineViewportWScalingStateCreateInfoNV & operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75589     {
75590       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV const *>( &rhs );
75591       return *this;
75592     }
75593 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75594     PipelineViewportWScalingStateCreateInfoNV & operator=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75595     {
75596       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportWScalingStateCreateInfoNV ) );
75597       return *this;
75598     }
75599 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75600     PipelineViewportWScalingStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75601     {
75602       pNext = pNext_;
75603       return *this;
75604     }
75605 
setViewportWScalingEnableVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75606     PipelineViewportWScalingStateCreateInfoNV & setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
75607     {
75608       viewportWScalingEnable = viewportWScalingEnable_;
75609       return *this;
75610     }
75611 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75612     PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
75613     {
75614       viewportCount = viewportCount_;
75615       return *this;
75616     }
75617 
setPViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75618     PipelineViewportWScalingStateCreateInfoNV & setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT
75619     {
75620       pViewportWScalings = pViewportWScalings_;
75621       return *this;
75622     }
75623 
75624 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75625     PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_ ) VULKAN_HPP_NOEXCEPT
75626     {
75627       viewportCount = static_cast<uint32_t>( viewportWScalings_.size() );
75628       pViewportWScalings = viewportWScalings_.data();
75629       return *this;
75630     }
75631 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75632 
75633 
operator VkPipelineViewportWScalingStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75634     operator VkPipelineViewportWScalingStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
75635     {
75636       return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>( this );
75637     }
75638 
operator VkPipelineViewportWScalingStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75639     operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
75640     {
75641       return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>( this );
75642     }
75643 
75644 
75645 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75646     auto operator<=>( PipelineViewportWScalingStateCreateInfoNV const& ) const = default;
75647 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75648     bool operator==( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75649     {
75650       return ( sType == rhs.sType )
75651           && ( pNext == rhs.pNext )
75652           && ( viewportWScalingEnable == rhs.viewportWScalingEnable )
75653           && ( viewportCount == rhs.viewportCount )
75654           && ( pViewportWScalings == rhs.pViewportWScalings );
75655     }
75656 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV75657     bool operator!=( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75658     {
75659       return !operator==( rhs );
75660     }
75661 #endif
75662 
75663 
75664 
75665   public:
75666     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
75667     const void* pNext = {};
75668     VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {};
75669     uint32_t viewportCount = {};
75670     const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings = {};
75671 
75672   };
75673   static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), "struct and wrapper have different size!" );
75674   static_assert( std::is_standard_layout<PipelineViewportWScalingStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
75675 
75676   template <>
75677   struct CppType<StructureType, StructureType::ePipelineViewportWScalingStateCreateInfoNV>
75678   {
75679     using Type = PipelineViewportWScalingStateCreateInfoNV;
75680   };
75681 
75682 #ifdef VK_USE_PLATFORM_GGP
75683   struct PresentFrameTokenGGP
75684   {
75685     static const bool allowDuplicate = false;
75686     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentFrameTokenGGP;
75687 
75688 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP75689     VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP(GgpFrameToken frameToken_ = {}) VULKAN_HPP_NOEXCEPT
75690     : frameToken( frameToken_ )
75691     {}
75692 
75693     VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75694 
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP75695     PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
75696     {
75697       *this = rhs;
75698     }
75699 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75700 
operator =VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP75701     PresentFrameTokenGGP & operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
75702     {
75703       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP const *>( &rhs );
75704       return *this;
75705     }
75706 
operator =VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP75707     PresentFrameTokenGGP & operator=( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
75708     {
75709       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentFrameTokenGGP ) );
75710       return *this;
75711     }
75712 
setPNextVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP75713     PresentFrameTokenGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75714     {
75715       pNext = pNext_;
75716       return *this;
75717     }
75718 
setFrameTokenVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP75719     PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT
75720     {
75721       frameToken = frameToken_;
75722       return *this;
75723     }
75724 
75725 
operator VkPresentFrameTokenGGP const&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP75726     operator VkPresentFrameTokenGGP const&() const VULKAN_HPP_NOEXCEPT
75727     {
75728       return *reinterpret_cast<const VkPresentFrameTokenGGP*>( this );
75729     }
75730 
operator VkPresentFrameTokenGGP&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP75731     operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT
75732     {
75733       return *reinterpret_cast<VkPresentFrameTokenGGP*>( this );
75734     }
75735 
75736 
75737 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75738     auto operator<=>( PresentFrameTokenGGP const& ) const = default;
75739 #else
operator ==VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP75740     bool operator==( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
75741     {
75742       return ( sType == rhs.sType )
75743           && ( pNext == rhs.pNext )
75744           && ( memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ) == 0 );
75745     }
75746 
operator !=VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP75747     bool operator!=( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
75748     {
75749       return !operator==( rhs );
75750     }
75751 #endif
75752 
75753 
75754 
75755   public:
75756     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP;
75757     const void* pNext = {};
75758     GgpFrameToken frameToken = {};
75759 
75760   };
75761   static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), "struct and wrapper have different size!" );
75762   static_assert( std::is_standard_layout<PresentFrameTokenGGP>::value, "struct wrapper is not a standard layout!" );
75763 
75764   template <>
75765   struct CppType<StructureType, StructureType::ePresentFrameTokenGGP>
75766   {
75767     using Type = PresentFrameTokenGGP;
75768   };
75769 #endif /*VK_USE_PLATFORM_GGP*/
75770 
75771   struct RectLayerKHR
75772   {
75773 
75774 
75775 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR75776     VULKAN_HPP_CONSTEXPR RectLayerKHR(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, uint32_t layer_ = {}) VULKAN_HPP_NOEXCEPT
75777     : offset( offset_ ), extent( extent_ ), layer( layer_ )
75778     {}
75779 
75780     VULKAN_HPP_CONSTEXPR RectLayerKHR( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75781 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR75782     RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75783     {
75784       *this = rhs;
75785     }
75786 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR75787     explicit RectLayerKHR( Rect2D const& rect2D, uint32_t layer_ = {} )
75788       : offset( rect2D.offset )
75789       , extent( rect2D.extent )
75790       , layer( layer_ )
75791     {}
75792 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75793 
operator =VULKAN_HPP_NAMESPACE::RectLayerKHR75794     RectLayerKHR & operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75795     {
75796       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RectLayerKHR const *>( &rhs );
75797       return *this;
75798     }
75799 
operator =VULKAN_HPP_NAMESPACE::RectLayerKHR75800     RectLayerKHR & operator=( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75801     {
75802       memcpy( static_cast<void *>( this ), &rhs, sizeof( RectLayerKHR ) );
75803       return *this;
75804     }
75805 
setOffsetVULKAN_HPP_NAMESPACE::RectLayerKHR75806     RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
75807     {
75808       offset = offset_;
75809       return *this;
75810     }
75811 
setExtentVULKAN_HPP_NAMESPACE::RectLayerKHR75812     RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
75813     {
75814       extent = extent_;
75815       return *this;
75816     }
75817 
setLayerVULKAN_HPP_NAMESPACE::RectLayerKHR75818     RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT
75819     {
75820       layer = layer_;
75821       return *this;
75822     }
75823 
75824 
operator VkRectLayerKHR const&VULKAN_HPP_NAMESPACE::RectLayerKHR75825     operator VkRectLayerKHR const&() const VULKAN_HPP_NOEXCEPT
75826     {
75827       return *reinterpret_cast<const VkRectLayerKHR*>( this );
75828     }
75829 
operator VkRectLayerKHR&VULKAN_HPP_NAMESPACE::RectLayerKHR75830     operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT
75831     {
75832       return *reinterpret_cast<VkRectLayerKHR*>( this );
75833     }
75834 
75835 
75836 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75837     auto operator<=>( RectLayerKHR const& ) const = default;
75838 #else
operator ==VULKAN_HPP_NAMESPACE::RectLayerKHR75839     bool operator==( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
75840     {
75841       return ( offset == rhs.offset )
75842           && ( extent == rhs.extent )
75843           && ( layer == rhs.layer );
75844     }
75845 
operator !=VULKAN_HPP_NAMESPACE::RectLayerKHR75846     bool operator!=( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
75847     {
75848       return !operator==( rhs );
75849     }
75850 #endif
75851 
75852 
75853 
75854   public:
75855     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
75856     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
75857     uint32_t layer = {};
75858 
75859   };
75860   static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" );
75861   static_assert( std::is_standard_layout<RectLayerKHR>::value, "struct wrapper is not a standard layout!" );
75862 
75863   struct PresentRegionKHR
75864   {
75865 
75866 
75867 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR75868     VULKAN_HPP_CONSTEXPR PresentRegionKHR(uint32_t rectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ = {}) VULKAN_HPP_NOEXCEPT
75869     : rectangleCount( rectangleCount_ ), pRectangles( pRectangles_ )
75870     {}
75871 
75872     VULKAN_HPP_CONSTEXPR PresentRegionKHR( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75873 
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR75874     PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75875     {
75876       *this = rhs;
75877     }
75878 
75879 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR75880     PresentRegionKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ )
75881     : rectangleCount( static_cast<uint32_t>( rectangles_.size() ) ), pRectangles( rectangles_.data() )
75882     {}
75883 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75884 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75885 
operator =VULKAN_HPP_NAMESPACE::PresentRegionKHR75886     PresentRegionKHR & operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75887     {
75888       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionKHR const *>( &rhs );
75889       return *this;
75890     }
75891 
operator =VULKAN_HPP_NAMESPACE::PresentRegionKHR75892     PresentRegionKHR & operator=( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75893     {
75894       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentRegionKHR ) );
75895       return *this;
75896     }
75897 
setRectangleCountVULKAN_HPP_NAMESPACE::PresentRegionKHR75898     PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT
75899     {
75900       rectangleCount = rectangleCount_;
75901       return *this;
75902     }
75903 
setPRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR75904     PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ ) VULKAN_HPP_NOEXCEPT
75905     {
75906       pRectangles = pRectangles_;
75907       return *this;
75908     }
75909 
75910 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR75911     PresentRegionKHR & setRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ ) VULKAN_HPP_NOEXCEPT
75912     {
75913       rectangleCount = static_cast<uint32_t>( rectangles_.size() );
75914       pRectangles = rectangles_.data();
75915       return *this;
75916     }
75917 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75918 
75919 
operator VkPresentRegionKHR const&VULKAN_HPP_NAMESPACE::PresentRegionKHR75920     operator VkPresentRegionKHR const&() const VULKAN_HPP_NOEXCEPT
75921     {
75922       return *reinterpret_cast<const VkPresentRegionKHR*>( this );
75923     }
75924 
operator VkPresentRegionKHR&VULKAN_HPP_NAMESPACE::PresentRegionKHR75925     operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT
75926     {
75927       return *reinterpret_cast<VkPresentRegionKHR*>( this );
75928     }
75929 
75930 
75931 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75932     auto operator<=>( PresentRegionKHR const& ) const = default;
75933 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionKHR75934     bool operator==( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
75935     {
75936       return ( rectangleCount == rhs.rectangleCount )
75937           && ( pRectangles == rhs.pRectangles );
75938     }
75939 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionKHR75940     bool operator!=( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
75941     {
75942       return !operator==( rhs );
75943     }
75944 #endif
75945 
75946 
75947 
75948   public:
75949     uint32_t rectangleCount = {};
75950     const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles = {};
75951 
75952   };
75953   static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), "struct and wrapper have different size!" );
75954   static_assert( std::is_standard_layout<PresentRegionKHR>::value, "struct wrapper is not a standard layout!" );
75955 
75956   struct PresentRegionsKHR
75957   {
75958     static const bool allowDuplicate = false;
75959     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentRegionsKHR;
75960 
75961 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR75962     VULKAN_HPP_CONSTEXPR PresentRegionsKHR(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT
75963     : swapchainCount( swapchainCount_ ), pRegions( pRegions_ )
75964     {}
75965 
75966     VULKAN_HPP_CONSTEXPR PresentRegionsKHR( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75967 
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR75968     PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75969     {
75970       *this = rhs;
75971     }
75972 
75973 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR75974     PresentRegionsKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ )
75975     : swapchainCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
75976     {}
75977 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75978 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75979 
operator =VULKAN_HPP_NAMESPACE::PresentRegionsKHR75980     PresentRegionsKHR & operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75981     {
75982       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionsKHR const *>( &rhs );
75983       return *this;
75984     }
75985 
operator =VULKAN_HPP_NAMESPACE::PresentRegionsKHR75986     PresentRegionsKHR & operator=( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75987     {
75988       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentRegionsKHR ) );
75989       return *this;
75990     }
75991 
setPNextVULKAN_HPP_NAMESPACE::PresentRegionsKHR75992     PresentRegionsKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75993     {
75994       pNext = pNext_;
75995       return *this;
75996     }
75997 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentRegionsKHR75998     PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
75999     {
76000       swapchainCount = swapchainCount_;
76001       return *this;
76002     }
76003 
setPRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR76004     PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
76005     {
76006       pRegions = pRegions_;
76007       return *this;
76008     }
76009 
76010 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR76011     PresentRegionsKHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
76012     {
76013       swapchainCount = static_cast<uint32_t>( regions_.size() );
76014       pRegions = regions_.data();
76015       return *this;
76016     }
76017 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76018 
76019 
operator VkPresentRegionsKHR const&VULKAN_HPP_NAMESPACE::PresentRegionsKHR76020     operator VkPresentRegionsKHR const&() const VULKAN_HPP_NOEXCEPT
76021     {
76022       return *reinterpret_cast<const VkPresentRegionsKHR*>( this );
76023     }
76024 
operator VkPresentRegionsKHR&VULKAN_HPP_NAMESPACE::PresentRegionsKHR76025     operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT
76026     {
76027       return *reinterpret_cast<VkPresentRegionsKHR*>( this );
76028     }
76029 
76030 
76031 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76032     auto operator<=>( PresentRegionsKHR const& ) const = default;
76033 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionsKHR76034     bool operator==( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76035     {
76036       return ( sType == rhs.sType )
76037           && ( pNext == rhs.pNext )
76038           && ( swapchainCount == rhs.swapchainCount )
76039           && ( pRegions == rhs.pRegions );
76040     }
76041 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionsKHR76042     bool operator!=( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76043     {
76044       return !operator==( rhs );
76045     }
76046 #endif
76047 
76048 
76049 
76050   public:
76051     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR;
76052     const void* pNext = {};
76053     uint32_t swapchainCount = {};
76054     const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions = {};
76055 
76056   };
76057   static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "struct and wrapper have different size!" );
76058   static_assert( std::is_standard_layout<PresentRegionsKHR>::value, "struct wrapper is not a standard layout!" );
76059 
76060   template <>
76061   struct CppType<StructureType, StructureType::ePresentRegionsKHR>
76062   {
76063     using Type = PresentRegionsKHR;
76064   };
76065 
76066   struct PresentTimeGOOGLE
76067   {
76068 
76069 
76070 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76071     VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}) VULKAN_HPP_NOEXCEPT
76072     : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ )
76073     {}
76074 
76075     VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76076 
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76077     PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76078     {
76079       *this = rhs;
76080     }
76081 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76082 
operator =VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76083     PresentTimeGOOGLE & operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76084     {
76085       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE const *>( &rhs );
76086       return *this;
76087     }
76088 
operator =VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76089     PresentTimeGOOGLE & operator=( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76090     {
76091       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentTimeGOOGLE ) );
76092       return *this;
76093     }
76094 
setPresentIDVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76095     PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT
76096     {
76097       presentID = presentID_;
76098       return *this;
76099     }
76100 
setDesiredPresentTimeVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76101     PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT
76102     {
76103       desiredPresentTime = desiredPresentTime_;
76104       return *this;
76105     }
76106 
76107 
operator VkPresentTimeGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76108     operator VkPresentTimeGOOGLE const&() const VULKAN_HPP_NOEXCEPT
76109     {
76110       return *reinterpret_cast<const VkPresentTimeGOOGLE*>( this );
76111     }
76112 
operator VkPresentTimeGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76113     operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT
76114     {
76115       return *reinterpret_cast<VkPresentTimeGOOGLE*>( this );
76116     }
76117 
76118 
76119 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76120     auto operator<=>( PresentTimeGOOGLE const& ) const = default;
76121 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76122     bool operator==( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
76123     {
76124       return ( presentID == rhs.presentID )
76125           && ( desiredPresentTime == rhs.desiredPresentTime );
76126     }
76127 
operator !=VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76128     bool operator!=( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
76129     {
76130       return !operator==( rhs );
76131     }
76132 #endif
76133 
76134 
76135 
76136   public:
76137     uint32_t presentID = {};
76138     uint64_t desiredPresentTime = {};
76139 
76140   };
76141   static_assert( sizeof( PresentTimeGOOGLE ) == sizeof( VkPresentTimeGOOGLE ), "struct and wrapper have different size!" );
76142   static_assert( std::is_standard_layout<PresentTimeGOOGLE>::value, "struct wrapper is not a standard layout!" );
76143 
76144   struct PresentTimesInfoGOOGLE
76145   {
76146     static const bool allowDuplicate = false;
76147     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentTimesInfoGOOGLE;
76148 
76149 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76150     VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ = {}) VULKAN_HPP_NOEXCEPT
76151     : swapchainCount( swapchainCount_ ), pTimes( pTimes_ )
76152     {}
76153 
76154     VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76155 
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76156     PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76157     {
76158       *this = rhs;
76159     }
76160 
76161 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76162     PresentTimesInfoGOOGLE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ )
76163     : swapchainCount( static_cast<uint32_t>( times_.size() ) ), pTimes( times_.data() )
76164     {}
76165 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76166 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76167 
operator =VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76168     PresentTimesInfoGOOGLE & operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76169     {
76170       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE const *>( &rhs );
76171       return *this;
76172     }
76173 
operator =VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76174     PresentTimesInfoGOOGLE & operator=( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76175     {
76176       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentTimesInfoGOOGLE ) );
76177       return *this;
76178     }
76179 
setPNextVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76180     PresentTimesInfoGOOGLE & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76181     {
76182       pNext = pNext_;
76183       return *this;
76184     }
76185 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76186     PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
76187     {
76188       swapchainCount = swapchainCount_;
76189       return *this;
76190     }
76191 
setPTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76192     PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ ) VULKAN_HPP_NOEXCEPT
76193     {
76194       pTimes = pTimes_;
76195       return *this;
76196     }
76197 
76198 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76199     PresentTimesInfoGOOGLE & setTimes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ ) VULKAN_HPP_NOEXCEPT
76200     {
76201       swapchainCount = static_cast<uint32_t>( times_.size() );
76202       pTimes = times_.data();
76203       return *this;
76204     }
76205 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76206 
76207 
operator VkPresentTimesInfoGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76208     operator VkPresentTimesInfoGOOGLE const&() const VULKAN_HPP_NOEXCEPT
76209     {
76210       return *reinterpret_cast<const VkPresentTimesInfoGOOGLE*>( this );
76211     }
76212 
operator VkPresentTimesInfoGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76213     operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT
76214     {
76215       return *reinterpret_cast<VkPresentTimesInfoGOOGLE*>( this );
76216     }
76217 
76218 
76219 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76220     auto operator<=>( PresentTimesInfoGOOGLE const& ) const = default;
76221 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76222     bool operator==( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
76223     {
76224       return ( sType == rhs.sType )
76225           && ( pNext == rhs.pNext )
76226           && ( swapchainCount == rhs.swapchainCount )
76227           && ( pTimes == rhs.pTimes );
76228     }
76229 
operator !=VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76230     bool operator!=( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
76231     {
76232       return !operator==( rhs );
76233     }
76234 #endif
76235 
76236 
76237 
76238   public:
76239     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE;
76240     const void* pNext = {};
76241     uint32_t swapchainCount = {};
76242     const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes = {};
76243 
76244   };
76245   static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), "struct and wrapper have different size!" );
76246   static_assert( std::is_standard_layout<PresentTimesInfoGOOGLE>::value, "struct wrapper is not a standard layout!" );
76247 
76248   template <>
76249   struct CppType<StructureType, StructureType::ePresentTimesInfoGOOGLE>
76250   {
76251     using Type = PresentTimesInfoGOOGLE;
76252   };
76253 
76254   struct ProtectedSubmitInfo
76255   {
76256     static const bool allowDuplicate = false;
76257     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eProtectedSubmitInfo;
76258 
76259 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76260     VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo(VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {}) VULKAN_HPP_NOEXCEPT
76261     : protectedSubmit( protectedSubmit_ )
76262     {}
76263 
76264     VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76265 
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76266     ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76267     {
76268       *this = rhs;
76269     }
76270 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76271 
operator =VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76272     ProtectedSubmitInfo & operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76273     {
76274       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo const *>( &rhs );
76275       return *this;
76276     }
76277 
operator =VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76278     ProtectedSubmitInfo & operator=( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76279     {
76280       memcpy( static_cast<void *>( this ), &rhs, sizeof( ProtectedSubmitInfo ) );
76281       return *this;
76282     }
76283 
setPNextVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76284     ProtectedSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76285     {
76286       pNext = pNext_;
76287       return *this;
76288     }
76289 
setProtectedSubmitVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76290     ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT
76291     {
76292       protectedSubmit = protectedSubmit_;
76293       return *this;
76294     }
76295 
76296 
operator VkProtectedSubmitInfo const&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76297     operator VkProtectedSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
76298     {
76299       return *reinterpret_cast<const VkProtectedSubmitInfo*>( this );
76300     }
76301 
operator VkProtectedSubmitInfo&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76302     operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT
76303     {
76304       return *reinterpret_cast<VkProtectedSubmitInfo*>( this );
76305     }
76306 
76307 
76308 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76309     auto operator<=>( ProtectedSubmitInfo const& ) const = default;
76310 #else
operator ==VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76311     bool operator==( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76312     {
76313       return ( sType == rhs.sType )
76314           && ( pNext == rhs.pNext )
76315           && ( protectedSubmit == rhs.protectedSubmit );
76316     }
76317 
operator !=VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76318     bool operator!=( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76319     {
76320       return !operator==( rhs );
76321     }
76322 #endif
76323 
76324 
76325 
76326   public:
76327     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo;
76328     const void* pNext = {};
76329     VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {};
76330 
76331   };
76332   static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), "struct and wrapper have different size!" );
76333   static_assert( std::is_standard_layout<ProtectedSubmitInfo>::value, "struct wrapper is not a standard layout!" );
76334 
76335   template <>
76336   struct CppType<StructureType, StructureType::eProtectedSubmitInfo>
76337   {
76338     using Type = ProtectedSubmitInfo;
76339   };
76340 
76341   struct QueryPoolPerformanceQueryCreateInfoINTEL
76342   {
76343     static const bool allowDuplicate = false;
76344     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
76345 
76346 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76347     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL(VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual) VULKAN_HPP_NOEXCEPT
76348     : performanceCountersSampling( performanceCountersSampling_ )
76349     {}
76350 
76351     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76352 
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76353     QueryPoolPerformanceQueryCreateInfoINTEL( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
76354     {
76355       *this = rhs;
76356     }
76357 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76358 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76359     QueryPoolPerformanceQueryCreateInfoINTEL & operator=( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
76360     {
76361       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL const *>( &rhs );
76362       return *this;
76363     }
76364 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76365     QueryPoolPerformanceQueryCreateInfoINTEL & operator=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
76366     {
76367       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) );
76368       return *this;
76369     }
76370 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76371     QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76372     {
76373       pNext = pNext_;
76374       return *this;
76375     }
76376 
setPerformanceCountersSamplingVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76377     QueryPoolPerformanceQueryCreateInfoINTEL & setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT
76378     {
76379       performanceCountersSampling = performanceCountersSampling_;
76380       return *this;
76381     }
76382 
76383 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76384     operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
76385     {
76386       return *reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
76387     }
76388 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76389     operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT
76390     {
76391       return *reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
76392     }
76393 
76394 
76395 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76396     auto operator<=>( QueryPoolPerformanceQueryCreateInfoINTEL const& ) const = default;
76397 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76398     bool operator==( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
76399     {
76400       return ( sType == rhs.sType )
76401           && ( pNext == rhs.pNext )
76402           && ( performanceCountersSampling == rhs.performanceCountersSampling );
76403     }
76404 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76405     bool operator!=( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
76406     {
76407       return !operator==( rhs );
76408     }
76409 #endif
76410 
76411 
76412 
76413   public:
76414     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
76415     const void* pNext = {};
76416     VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual;
76417 
76418   };
76419   static_assert( sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) == sizeof( VkQueryPoolPerformanceQueryCreateInfoINTEL ), "struct and wrapper have different size!" );
76420   static_assert( std::is_standard_layout<QueryPoolPerformanceQueryCreateInfoINTEL>::value, "struct wrapper is not a standard layout!" );
76421 
76422   template <>
76423   struct CppType<StructureType, StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL>
76424   {
76425     using Type = QueryPoolPerformanceQueryCreateInfoINTEL;
76426   };
76427   using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
76428 
76429   struct QueueFamilyCheckpointPropertiesNV
76430   {
76431     static const bool allowDuplicate = false;
76432     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointPropertiesNV;
76433 
76434 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76435     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV(VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {}) VULKAN_HPP_NOEXCEPT
76436     : checkpointExecutionStageMask( checkpointExecutionStageMask_ )
76437     {}
76438 
76439     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76440 
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76441     QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
76442     {
76443       *this = rhs;
76444     }
76445 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76446 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76447     QueueFamilyCheckpointPropertiesNV & operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
76448     {
76449       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV const *>( &rhs );
76450       return *this;
76451     }
76452 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76453     QueueFamilyCheckpointPropertiesNV & operator=( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
76454     {
76455       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueueFamilyCheckpointPropertiesNV ) );
76456       return *this;
76457     }
76458 
76459 
operator VkQueueFamilyCheckpointPropertiesNV const&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76460     operator VkQueueFamilyCheckpointPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
76461     {
76462       return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>( this );
76463     }
76464 
operator VkQueueFamilyCheckpointPropertiesNV&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76465     operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT
76466     {
76467       return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>( this );
76468     }
76469 
76470 
76471 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76472     auto operator<=>( QueueFamilyCheckpointPropertiesNV const& ) const = default;
76473 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76474     bool operator==( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76475     {
76476       return ( sType == rhs.sType )
76477           && ( pNext == rhs.pNext )
76478           && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
76479     }
76480 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76481     bool operator!=( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76482     {
76483       return !operator==( rhs );
76484     }
76485 #endif
76486 
76487 
76488 
76489   public:
76490     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV;
76491     void* pNext = {};
76492     VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {};
76493 
76494   };
76495   static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "struct and wrapper have different size!" );
76496   static_assert( std::is_standard_layout<QueueFamilyCheckpointPropertiesNV>::value, "struct wrapper is not a standard layout!" );
76497 
76498   template <>
76499   struct CppType<StructureType, StructureType::eQueueFamilyCheckpointPropertiesNV>
76500   {
76501     using Type = QueueFamilyCheckpointPropertiesNV;
76502   };
76503 
76504   struct RenderPassAttachmentBeginInfo
76505   {
76506     static const bool allowDuplicate = false;
76507     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassAttachmentBeginInfo;
76508 
76509 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76510     VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo(uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {}) VULKAN_HPP_NOEXCEPT
76511     : attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ )
76512     {}
76513 
76514     VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76515 
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76516     RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76517     {
76518       *this = rhs;
76519     }
76520 
76521 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76522     RenderPassAttachmentBeginInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ )
76523     : attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() )
76524     {}
76525 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76526 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76527 
operator =VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76528     RenderPassAttachmentBeginInfo & operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76529     {
76530       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo const *>( &rhs );
76531       return *this;
76532     }
76533 
operator =VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76534     RenderPassAttachmentBeginInfo & operator=( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76535     {
76536       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassAttachmentBeginInfo ) );
76537       return *this;
76538     }
76539 
setPNextVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76540     RenderPassAttachmentBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76541     {
76542       pNext = pNext_;
76543       return *this;
76544     }
76545 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76546     RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
76547     {
76548       attachmentCount = attachmentCount_;
76549       return *this;
76550     }
76551 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76552     RenderPassAttachmentBeginInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT
76553     {
76554       pAttachments = pAttachments_;
76555       return *this;
76556     }
76557 
76558 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76559     RenderPassAttachmentBeginInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
76560     {
76561       attachmentCount = static_cast<uint32_t>( attachments_.size() );
76562       pAttachments = attachments_.data();
76563       return *this;
76564     }
76565 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76566 
76567 
operator VkRenderPassAttachmentBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76568     operator VkRenderPassAttachmentBeginInfo const&() const VULKAN_HPP_NOEXCEPT
76569     {
76570       return *reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>( this );
76571     }
76572 
operator VkRenderPassAttachmentBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76573     operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT
76574     {
76575       return *reinterpret_cast<VkRenderPassAttachmentBeginInfo*>( this );
76576     }
76577 
76578 
76579 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76580     auto operator<=>( RenderPassAttachmentBeginInfo const& ) const = default;
76581 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76582     bool operator==( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76583     {
76584       return ( sType == rhs.sType )
76585           && ( pNext == rhs.pNext )
76586           && ( attachmentCount == rhs.attachmentCount )
76587           && ( pAttachments == rhs.pAttachments );
76588     }
76589 
operator !=VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo76590     bool operator!=( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76591     {
76592       return !operator==( rhs );
76593     }
76594 #endif
76595 
76596 
76597 
76598   public:
76599     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo;
76600     const void* pNext = {};
76601     uint32_t attachmentCount = {};
76602     const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {};
76603 
76604   };
76605   static_assert( sizeof( RenderPassAttachmentBeginInfo ) == sizeof( VkRenderPassAttachmentBeginInfo ), "struct and wrapper have different size!" );
76606   static_assert( std::is_standard_layout<RenderPassAttachmentBeginInfo>::value, "struct wrapper is not a standard layout!" );
76607 
76608   template <>
76609   struct CppType<StructureType, StructureType::eRenderPassAttachmentBeginInfo>
76610   {
76611     using Type = RenderPassAttachmentBeginInfo;
76612   };
76613   using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
76614 
76615   struct RenderPassFragmentDensityMapCreateInfoEXT
76616   {
76617     static const bool allowDuplicate = false;
76618     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
76619 
76620 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT76621     VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT(VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {}) VULKAN_HPP_NOEXCEPT
76622     : fragmentDensityMapAttachment( fragmentDensityMapAttachment_ )
76623     {}
76624 
76625     VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76626 
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT76627     RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76628     {
76629       *this = rhs;
76630     }
76631 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76632 
operator =VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT76633     RenderPassFragmentDensityMapCreateInfoEXT & operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76634     {
76635       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT const *>( &rhs );
76636       return *this;
76637     }
76638 
operator =VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT76639     RenderPassFragmentDensityMapCreateInfoEXT & operator=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76640     {
76641       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) );
76642       return *this;
76643     }
76644 
setPNextVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT76645     RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76646     {
76647       pNext = pNext_;
76648       return *this;
76649     }
76650 
setFragmentDensityMapAttachmentVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT76651     RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( VULKAN_HPP_NAMESPACE::AttachmentReference const & fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT
76652     {
76653       fragmentDensityMapAttachment = fragmentDensityMapAttachment_;
76654       return *this;
76655     }
76656 
76657 
operator VkRenderPassFragmentDensityMapCreateInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT76658     operator VkRenderPassFragmentDensityMapCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
76659     {
76660       return *reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
76661     }
76662 
operator VkRenderPassFragmentDensityMapCreateInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT76663     operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
76664     {
76665       return *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
76666     }
76667 
76668 
76669 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76670     auto operator<=>( RenderPassFragmentDensityMapCreateInfoEXT const& ) const = default;
76671 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT76672     bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
76673     {
76674       return ( sType == rhs.sType )
76675           && ( pNext == rhs.pNext )
76676           && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment );
76677     }
76678 
operator !=VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT76679     bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
76680     {
76681       return !operator==( rhs );
76682     }
76683 #endif
76684 
76685 
76686 
76687   public:
76688     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
76689     const void* pNext = {};
76690     VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {};
76691 
76692   };
76693   static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), "struct and wrapper have different size!" );
76694   static_assert( std::is_standard_layout<RenderPassFragmentDensityMapCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
76695 
76696   template <>
76697   struct CppType<StructureType, StructureType::eRenderPassFragmentDensityMapCreateInfoEXT>
76698   {
76699     using Type = RenderPassFragmentDensityMapCreateInfoEXT;
76700   };
76701 
76702   struct RenderPassInputAttachmentAspectCreateInfo
76703   {
76704     static const bool allowDuplicate = false;
76705     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
76706 
76707 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76708     VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo(uint32_t aspectReferenceCount_ = {}, const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ = {}) VULKAN_HPP_NOEXCEPT
76709     : aspectReferenceCount( aspectReferenceCount_ ), pAspectReferences( pAspectReferences_ )
76710     {}
76711 
76712     VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76713 
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76714     RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76715     {
76716       *this = rhs;
76717     }
76718 
76719 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76720     RenderPassInputAttachmentAspectCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_ )
76721     : aspectReferenceCount( static_cast<uint32_t>( aspectReferences_.size() ) ), pAspectReferences( aspectReferences_.data() )
76722     {}
76723 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76724 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76725 
operator =VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76726     RenderPassInputAttachmentAspectCreateInfo & operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76727     {
76728       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo const *>( &rhs );
76729       return *this;
76730     }
76731 
operator =VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76732     RenderPassInputAttachmentAspectCreateInfo & operator=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76733     {
76734       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassInputAttachmentAspectCreateInfo ) );
76735       return *this;
76736     }
76737 
setPNextVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76738     RenderPassInputAttachmentAspectCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76739     {
76740       pNext = pNext_;
76741       return *this;
76742     }
76743 
setAspectReferenceCountVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76744     RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT
76745     {
76746       aspectReferenceCount = aspectReferenceCount_;
76747       return *this;
76748     }
76749 
setPAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76750     RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ ) VULKAN_HPP_NOEXCEPT
76751     {
76752       pAspectReferences = pAspectReferences_;
76753       return *this;
76754     }
76755 
76756 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76757     RenderPassInputAttachmentAspectCreateInfo & setAspectReferences( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_ ) VULKAN_HPP_NOEXCEPT
76758     {
76759       aspectReferenceCount = static_cast<uint32_t>( aspectReferences_.size() );
76760       pAspectReferences = aspectReferences_.data();
76761       return *this;
76762     }
76763 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76764 
76765 
operator VkRenderPassInputAttachmentAspectCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76766     operator VkRenderPassInputAttachmentAspectCreateInfo const&() const VULKAN_HPP_NOEXCEPT
76767     {
76768       return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>( this );
76769     }
76770 
operator VkRenderPassInputAttachmentAspectCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76771     operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT
76772     {
76773       return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>( this );
76774     }
76775 
76776 
76777 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76778     auto operator<=>( RenderPassInputAttachmentAspectCreateInfo const& ) const = default;
76779 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76780     bool operator==( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76781     {
76782       return ( sType == rhs.sType )
76783           && ( pNext == rhs.pNext )
76784           && ( aspectReferenceCount == rhs.aspectReferenceCount )
76785           && ( pAspectReferences == rhs.pAspectReferences );
76786     }
76787 
operator !=VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo76788     bool operator!=( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76789     {
76790       return !operator==( rhs );
76791     }
76792 #endif
76793 
76794 
76795 
76796   public:
76797     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
76798     const void* pNext = {};
76799     uint32_t aspectReferenceCount = {};
76800     const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences = {};
76801 
76802   };
76803   static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), "struct and wrapper have different size!" );
76804   static_assert( std::is_standard_layout<RenderPassInputAttachmentAspectCreateInfo>::value, "struct wrapper is not a standard layout!" );
76805 
76806   template <>
76807   struct CppType<StructureType, StructureType::eRenderPassInputAttachmentAspectCreateInfo>
76808   {
76809     using Type = RenderPassInputAttachmentAspectCreateInfo;
76810   };
76811   using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
76812 
76813   struct RenderPassMultiviewCreateInfo
76814   {
76815     static const bool allowDuplicate = false;
76816     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassMultiviewCreateInfo;
76817 
76818 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76819     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
76820     : subpassCount( subpassCount_ ), pViewMasks( pViewMasks_ ), dependencyCount( dependencyCount_ ), pViewOffsets( pViewOffsets_ ), correlationMaskCount( correlationMaskCount_ ), pCorrelationMasks( pCorrelationMasks_ )
76821     {}
76822 
76823     VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76824 
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76825     RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76826     {
76827       *this = rhs;
76828     }
76829 
76830 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76831     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_ = {} )
76832     : 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() )
76833     {}
76834 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76835 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76836 
operator =VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76837     RenderPassMultiviewCreateInfo & operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76838     {
76839       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo const *>( &rhs );
76840       return *this;
76841     }
76842 
operator =VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76843     RenderPassMultiviewCreateInfo & operator=( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76844     {
76845       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassMultiviewCreateInfo ) );
76846       return *this;
76847     }
76848 
setPNextVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76849     RenderPassMultiviewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76850     {
76851       pNext = pNext_;
76852       return *this;
76853     }
76854 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76855     RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
76856     {
76857       subpassCount = subpassCount_;
76858       return *this;
76859     }
76860 
setPViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76861     RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t* pViewMasks_ ) VULKAN_HPP_NOEXCEPT
76862     {
76863       pViewMasks = pViewMasks_;
76864       return *this;
76865     }
76866 
76867 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76868     RenderPassMultiviewCreateInfo & setViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_ ) VULKAN_HPP_NOEXCEPT
76869     {
76870       subpassCount = static_cast<uint32_t>( viewMasks_.size() );
76871       pViewMasks = viewMasks_.data();
76872       return *this;
76873     }
76874 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76875 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76876     RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
76877     {
76878       dependencyCount = dependencyCount_;
76879       return *this;
76880     }
76881 
setPViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76882     RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t* pViewOffsets_ ) VULKAN_HPP_NOEXCEPT
76883     {
76884       pViewOffsets = pViewOffsets_;
76885       return *this;
76886     }
76887 
76888 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76889     RenderPassMultiviewCreateInfo & setViewOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ ) VULKAN_HPP_NOEXCEPT
76890     {
76891       dependencyCount = static_cast<uint32_t>( viewOffsets_.size() );
76892       pViewOffsets = viewOffsets_.data();
76893       return *this;
76894     }
76895 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76896 
setCorrelationMaskCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76897     RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT
76898     {
76899       correlationMaskCount = correlationMaskCount_;
76900       return *this;
76901     }
76902 
setPCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76903     RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t* pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT
76904     {
76905       pCorrelationMasks = pCorrelationMasks_;
76906       return *this;
76907     }
76908 
76909 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76910     RenderPassMultiviewCreateInfo & setCorrelationMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ ) VULKAN_HPP_NOEXCEPT
76911     {
76912       correlationMaskCount = static_cast<uint32_t>( correlationMasks_.size() );
76913       pCorrelationMasks = correlationMasks_.data();
76914       return *this;
76915     }
76916 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76917 
76918 
operator VkRenderPassMultiviewCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76919     operator VkRenderPassMultiviewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
76920     {
76921       return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>( this );
76922     }
76923 
operator VkRenderPassMultiviewCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76924     operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT
76925     {
76926       return *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>( this );
76927     }
76928 
76929 
76930 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76931     auto operator<=>( RenderPassMultiviewCreateInfo const& ) const = default;
76932 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76933     bool operator==( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76934     {
76935       return ( sType == rhs.sType )
76936           && ( pNext == rhs.pNext )
76937           && ( subpassCount == rhs.subpassCount )
76938           && ( pViewMasks == rhs.pViewMasks )
76939           && ( dependencyCount == rhs.dependencyCount )
76940           && ( pViewOffsets == rhs.pViewOffsets )
76941           && ( correlationMaskCount == rhs.correlationMaskCount )
76942           && ( pCorrelationMasks == rhs.pCorrelationMasks );
76943     }
76944 
operator !=VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76945     bool operator!=( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76946     {
76947       return !operator==( rhs );
76948     }
76949 #endif
76950 
76951 
76952 
76953   public:
76954     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo;
76955     const void* pNext = {};
76956     uint32_t subpassCount = {};
76957     const uint32_t* pViewMasks = {};
76958     uint32_t dependencyCount = {};
76959     const int32_t* pViewOffsets = {};
76960     uint32_t correlationMaskCount = {};
76961     const uint32_t* pCorrelationMasks = {};
76962 
76963   };
76964   static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), "struct and wrapper have different size!" );
76965   static_assert( std::is_standard_layout<RenderPassMultiviewCreateInfo>::value, "struct wrapper is not a standard layout!" );
76966 
76967   template <>
76968   struct CppType<StructureType, StructureType::eRenderPassMultiviewCreateInfo>
76969   {
76970     using Type = RenderPassMultiviewCreateInfo;
76971   };
76972   using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
76973 
76974   struct SubpassSampleLocationsEXT
76975   {
76976 
76977 
76978 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76979     VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT(uint32_t subpassIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
76980     : subpassIndex( subpassIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ )
76981     {}
76982 
76983     VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76984 
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76985     SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76986     {
76987       *this = rhs;
76988     }
76989 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76990 
operator =VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76991     SubpassSampleLocationsEXT & operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76992     {
76993       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT const *>( &rhs );
76994       return *this;
76995     }
76996 
operator =VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76997     SubpassSampleLocationsEXT & operator=( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76998     {
76999       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassSampleLocationsEXT ) );
77000       return *this;
77001     }
77002 
setSubpassIndexVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77003     SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT
77004     {
77005       subpassIndex = subpassIndex_;
77006       return *this;
77007     }
77008 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77009     SubpassSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
77010     {
77011       sampleLocationsInfo = sampleLocationsInfo_;
77012       return *this;
77013     }
77014 
77015 
operator VkSubpassSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77016     operator VkSubpassSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT
77017     {
77018       return *reinterpret_cast<const VkSubpassSampleLocationsEXT*>( this );
77019     }
77020 
operator VkSubpassSampleLocationsEXT&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77021     operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
77022     {
77023       return *reinterpret_cast<VkSubpassSampleLocationsEXT*>( this );
77024     }
77025 
77026 
77027 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77028     auto operator<=>( SubpassSampleLocationsEXT const& ) const = default;
77029 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77030     bool operator==( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77031     {
77032       return ( subpassIndex == rhs.subpassIndex )
77033           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
77034     }
77035 
operator !=VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77036     bool operator!=( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77037     {
77038       return !operator==( rhs );
77039     }
77040 #endif
77041 
77042 
77043 
77044   public:
77045     uint32_t subpassIndex = {};
77046     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
77047 
77048   };
77049   static_assert( sizeof( SubpassSampleLocationsEXT ) == sizeof( VkSubpassSampleLocationsEXT ), "struct and wrapper have different size!" );
77050   static_assert( std::is_standard_layout<SubpassSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
77051 
77052   struct RenderPassSampleLocationsBeginInfoEXT
77053   {
77054     static const bool allowDuplicate = false;
77055     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
77056 
77057 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77058     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
77059     : attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ ), pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ ), postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ ), pPostSubpassSampleLocations( pPostSubpassSampleLocations_ )
77060     {}
77061 
77062     VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77063 
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77064     RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77065     {
77066       *this = rhs;
77067     }
77068 
77069 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77070     RenderPassSampleLocationsBeginInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ = {} )
77071     : attachmentInitialSampleLocationsCount( static_cast<uint32_t>( attachmentInitialSampleLocations_.size() ) ), pAttachmentInitialSampleLocations( attachmentInitialSampleLocations_.data() ), postSubpassSampleLocationsCount( static_cast<uint32_t>( postSubpassSampleLocations_.size() ) ), pPostSubpassSampleLocations( postSubpassSampleLocations_.data() )
77072     {}
77073 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77074 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77075 
operator =VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77076     RenderPassSampleLocationsBeginInfoEXT & operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77077     {
77078       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT const *>( &rhs );
77079       return *this;
77080     }
77081 
operator =VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77082     RenderPassSampleLocationsBeginInfoEXT & operator=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77083     {
77084       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassSampleLocationsBeginInfoEXT ) );
77085       return *this;
77086     }
77087 
setPNextVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77088     RenderPassSampleLocationsBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77089     {
77090       pNext = pNext_;
77091       return *this;
77092     }
77093 
setAttachmentInitialSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77094     RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
77095     {
77096       attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_;
77097       return *this;
77098     }
77099 
setPAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77100     RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77101     {
77102       pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_;
77103       return *this;
77104     }
77105 
77106 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77107     RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77108     {
77109       attachmentInitialSampleLocationsCount = static_cast<uint32_t>( attachmentInitialSampleLocations_.size() );
77110       pAttachmentInitialSampleLocations = attachmentInitialSampleLocations_.data();
77111       return *this;
77112     }
77113 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77114 
setPostSubpassSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77115     RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
77116     {
77117       postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_;
77118       return *this;
77119     }
77120 
setPPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77121     RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77122     {
77123       pPostSubpassSampleLocations = pPostSubpassSampleLocations_;
77124       return *this;
77125     }
77126 
77127 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77128     RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77129     {
77130       postSubpassSampleLocationsCount = static_cast<uint32_t>( postSubpassSampleLocations_.size() );
77131       pPostSubpassSampleLocations = postSubpassSampleLocations_.data();
77132       return *this;
77133     }
77134 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77135 
77136 
operator VkRenderPassSampleLocationsBeginInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77137     operator VkRenderPassSampleLocationsBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT
77138     {
77139       return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>( this );
77140     }
77141 
operator VkRenderPassSampleLocationsBeginInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77142     operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
77143     {
77144       return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>( this );
77145     }
77146 
77147 
77148 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77149     auto operator<=>( RenderPassSampleLocationsBeginInfoEXT const& ) const = default;
77150 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77151     bool operator==( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77152     {
77153       return ( sType == rhs.sType )
77154           && ( pNext == rhs.pNext )
77155           && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount )
77156           && ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations )
77157           && ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount )
77158           && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations );
77159     }
77160 
operator !=VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77161     bool operator!=( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77162     {
77163       return !operator==( rhs );
77164     }
77165 #endif
77166 
77167 
77168 
77169   public:
77170     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
77171     const void* pNext = {};
77172     uint32_t attachmentInitialSampleLocationsCount = {};
77173     const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations = {};
77174     uint32_t postSubpassSampleLocationsCount = {};
77175     const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations = {};
77176 
77177   };
77178   static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), "struct and wrapper have different size!" );
77179   static_assert( std::is_standard_layout<RenderPassSampleLocationsBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
77180 
77181   template <>
77182   struct CppType<StructureType, StructureType::eRenderPassSampleLocationsBeginInfoEXT>
77183   {
77184     using Type = RenderPassSampleLocationsBeginInfoEXT;
77185   };
77186 
77187   struct RenderPassTransformBeginInfoQCOM
77188   {
77189     static const bool allowDuplicate = false;
77190     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassTransformBeginInfoQCOM;
77191 
77192 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77193     VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity) VULKAN_HPP_NOEXCEPT
77194     : transform( transform_ )
77195     {}
77196 
77197     VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77198 
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77199     RenderPassTransformBeginInfoQCOM( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
77200     {
77201       *this = rhs;
77202     }
77203 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77204 
operator =VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77205     RenderPassTransformBeginInfoQCOM & operator=( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
77206     {
77207       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM const *>( &rhs );
77208       return *this;
77209     }
77210 
operator =VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77211     RenderPassTransformBeginInfoQCOM & operator=( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
77212     {
77213       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassTransformBeginInfoQCOM ) );
77214       return *this;
77215     }
77216 
setPNextVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77217     RenderPassTransformBeginInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
77218     {
77219       pNext = pNext_;
77220       return *this;
77221     }
77222 
setTransformVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77223     RenderPassTransformBeginInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
77224     {
77225       transform = transform_;
77226       return *this;
77227     }
77228 
77229 
operator VkRenderPassTransformBeginInfoQCOM const&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77230     operator VkRenderPassTransformBeginInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
77231     {
77232       return *reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>( this );
77233     }
77234 
operator VkRenderPassTransformBeginInfoQCOM&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77235     operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
77236     {
77237       return *reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>( this );
77238     }
77239 
77240 
77241 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77242     auto operator<=>( RenderPassTransformBeginInfoQCOM const& ) const = default;
77243 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77244     bool operator==( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
77245     {
77246       return ( sType == rhs.sType )
77247           && ( pNext == rhs.pNext )
77248           && ( transform == rhs.transform );
77249     }
77250 
operator !=VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77251     bool operator!=( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
77252     {
77253       return !operator==( rhs );
77254     }
77255 #endif
77256 
77257 
77258 
77259   public:
77260     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassTransformBeginInfoQCOM;
77261     void* pNext = {};
77262     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
77263 
77264   };
77265   static_assert( sizeof( RenderPassTransformBeginInfoQCOM ) == sizeof( VkRenderPassTransformBeginInfoQCOM ), "struct and wrapper have different size!" );
77266   static_assert( std::is_standard_layout<RenderPassTransformBeginInfoQCOM>::value, "struct wrapper is not a standard layout!" );
77267 
77268   template <>
77269   struct CppType<StructureType, StructureType::eRenderPassTransformBeginInfoQCOM>
77270   {
77271     using Type = RenderPassTransformBeginInfoQCOM;
77272   };
77273 
77274   struct SamplerCustomBorderColorCreateInfoEXT
77275   {
77276     static const bool allowDuplicate = false;
77277     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
77278 
77279 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77280     SamplerCustomBorderColorCreateInfoEXT(VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT
77281     : customBorderColor( customBorderColor_ ), format( format_ )
77282     {}
77283 
77284     SamplerCustomBorderColorCreateInfoEXT( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77285 
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77286     SamplerCustomBorderColorCreateInfoEXT( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77287     {
77288       *this = rhs;
77289     }
77290 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77291 
operator =VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77292     SamplerCustomBorderColorCreateInfoEXT & operator=( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77293     {
77294       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT const *>( &rhs );
77295       return *this;
77296     }
77297 
operator =VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77298     SamplerCustomBorderColorCreateInfoEXT & operator=( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77299     {
77300       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerCustomBorderColorCreateInfoEXT ) );
77301       return *this;
77302     }
77303 
setPNextVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77304     SamplerCustomBorderColorCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77305     {
77306       pNext = pNext_;
77307       return *this;
77308     }
77309 
setCustomBorderColorVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77310     SamplerCustomBorderColorCreateInfoEXT & setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT
77311     {
77312       customBorderColor = customBorderColor_;
77313       return *this;
77314     }
77315 
setFormatVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77316     SamplerCustomBorderColorCreateInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
77317     {
77318       format = format_;
77319       return *this;
77320     }
77321 
77322 
operator VkSamplerCustomBorderColorCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77323     operator VkSamplerCustomBorderColorCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
77324     {
77325       return *reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>( this );
77326     }
77327 
operator VkSamplerCustomBorderColorCreateInfoEXT&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77328     operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
77329     {
77330       return *reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>( this );
77331     }
77332 
77333 
77334 
77335 
77336   public:
77337     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
77338     const void* pNext = {};
77339     VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor = {};
77340     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
77341 
77342   };
77343   static_assert( sizeof( SamplerCustomBorderColorCreateInfoEXT ) == sizeof( VkSamplerCustomBorderColorCreateInfoEXT ), "struct and wrapper have different size!" );
77344   static_assert( std::is_standard_layout<SamplerCustomBorderColorCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
77345 
77346   template <>
77347   struct CppType<StructureType, StructureType::eSamplerCustomBorderColorCreateInfoEXT>
77348   {
77349     using Type = SamplerCustomBorderColorCreateInfoEXT;
77350   };
77351 
77352   struct SamplerReductionModeCreateInfo
77353   {
77354     static const bool allowDuplicate = false;
77355     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerReductionModeCreateInfo;
77356 
77357 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77358     VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo(VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage) VULKAN_HPP_NOEXCEPT
77359     : reductionMode( reductionMode_ )
77360     {}
77361 
77362     VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77363 
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77364     SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77365     {
77366       *this = rhs;
77367     }
77368 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77369 
operator =VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77370     SamplerReductionModeCreateInfo & operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77371     {
77372       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const *>( &rhs );
77373       return *this;
77374     }
77375 
operator =VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77376     SamplerReductionModeCreateInfo & operator=( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77377     {
77378       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerReductionModeCreateInfo ) );
77379       return *this;
77380     }
77381 
setPNextVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77382     SamplerReductionModeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77383     {
77384       pNext = pNext_;
77385       return *this;
77386     }
77387 
setReductionModeVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77388     SamplerReductionModeCreateInfo & setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT
77389     {
77390       reductionMode = reductionMode_;
77391       return *this;
77392     }
77393 
77394 
operator VkSamplerReductionModeCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77395     operator VkSamplerReductionModeCreateInfo const&() const VULKAN_HPP_NOEXCEPT
77396     {
77397       return *reinterpret_cast<const VkSamplerReductionModeCreateInfo*>( this );
77398     }
77399 
operator VkSamplerReductionModeCreateInfo&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77400     operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT
77401     {
77402       return *reinterpret_cast<VkSamplerReductionModeCreateInfo*>( this );
77403     }
77404 
77405 
77406 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77407     auto operator<=>( SamplerReductionModeCreateInfo const& ) const = default;
77408 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77409     bool operator==( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77410     {
77411       return ( sType == rhs.sType )
77412           && ( pNext == rhs.pNext )
77413           && ( reductionMode == rhs.reductionMode );
77414     }
77415 
operator !=VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77416     bool operator!=( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77417     {
77418       return !operator==( rhs );
77419     }
77420 #endif
77421 
77422 
77423 
77424   public:
77425     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo;
77426     const void* pNext = {};
77427     VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage;
77428 
77429   };
77430   static_assert( sizeof( SamplerReductionModeCreateInfo ) == sizeof( VkSamplerReductionModeCreateInfo ), "struct and wrapper have different size!" );
77431   static_assert( std::is_standard_layout<SamplerReductionModeCreateInfo>::value, "struct wrapper is not a standard layout!" );
77432 
77433   template <>
77434   struct CppType<StructureType, StructureType::eSamplerReductionModeCreateInfo>
77435   {
77436     using Type = SamplerReductionModeCreateInfo;
77437   };
77438   using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
77439 
77440   struct SamplerYcbcrConversionImageFormatProperties
77441   {
77442     static const bool allowDuplicate = false;
77443     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
77444 
77445 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77446     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties(uint32_t combinedImageSamplerDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
77447     : combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ )
77448     {}
77449 
77450     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77451 
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77452     SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
77453     {
77454       *this = rhs;
77455     }
77456 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77457 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77458     SamplerYcbcrConversionImageFormatProperties & operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
77459     {
77460       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties const *>( &rhs );
77461       return *this;
77462     }
77463 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77464     SamplerYcbcrConversionImageFormatProperties & operator=( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
77465     {
77466       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerYcbcrConversionImageFormatProperties ) );
77467       return *this;
77468     }
77469 
77470 
operator VkSamplerYcbcrConversionImageFormatProperties const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77471     operator VkSamplerYcbcrConversionImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
77472     {
77473       return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>( this );
77474     }
77475 
operator VkSamplerYcbcrConversionImageFormatProperties&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77476     operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT
77477     {
77478       return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>( this );
77479     }
77480 
77481 
77482 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77483     auto operator<=>( SamplerYcbcrConversionImageFormatProperties const& ) const = default;
77484 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77485     bool operator==( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
77486     {
77487       return ( sType == rhs.sType )
77488           && ( pNext == rhs.pNext )
77489           && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount );
77490     }
77491 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77492     bool operator!=( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
77493     {
77494       return !operator==( rhs );
77495     }
77496 #endif
77497 
77498 
77499 
77500   public:
77501     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
77502     void* pNext = {};
77503     uint32_t combinedImageSamplerDescriptorCount = {};
77504 
77505   };
77506   static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == sizeof( VkSamplerYcbcrConversionImageFormatProperties ), "struct and wrapper have different size!" );
77507   static_assert( std::is_standard_layout<SamplerYcbcrConversionImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
77508 
77509   template <>
77510   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionImageFormatProperties>
77511   {
77512     using Type = SamplerYcbcrConversionImageFormatProperties;
77513   };
77514   using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
77515 
77516   struct SamplerYcbcrConversionInfo
77517   {
77518     static const bool allowDuplicate = false;
77519     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionInfo;
77520 
77521 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo77522     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {}) VULKAN_HPP_NOEXCEPT
77523     : conversion( conversion_ )
77524     {}
77525 
77526     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77527 
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo77528     SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77529     {
77530       *this = rhs;
77531     }
77532 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77533 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo77534     SamplerYcbcrConversionInfo & operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77535     {
77536       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo const *>( &rhs );
77537       return *this;
77538     }
77539 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo77540     SamplerYcbcrConversionInfo & operator=( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77541     {
77542       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerYcbcrConversionInfo ) );
77543       return *this;
77544     }
77545 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo77546     SamplerYcbcrConversionInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77547     {
77548       pNext = pNext_;
77549       return *this;
77550     }
77551 
setConversionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo77552     SamplerYcbcrConversionInfo & setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT
77553     {
77554       conversion = conversion_;
77555       return *this;
77556     }
77557 
77558 
operator VkSamplerYcbcrConversionInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo77559     operator VkSamplerYcbcrConversionInfo const&() const VULKAN_HPP_NOEXCEPT
77560     {
77561       return *reinterpret_cast<const VkSamplerYcbcrConversionInfo*>( this );
77562     }
77563 
operator VkSamplerYcbcrConversionInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo77564     operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT
77565     {
77566       return *reinterpret_cast<VkSamplerYcbcrConversionInfo*>( this );
77567     }
77568 
77569 
77570 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77571     auto operator<=>( SamplerYcbcrConversionInfo const& ) const = default;
77572 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo77573     bool operator==( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77574     {
77575       return ( sType == rhs.sType )
77576           && ( pNext == rhs.pNext )
77577           && ( conversion == rhs.conversion );
77578     }
77579 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo77580     bool operator!=( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77581     {
77582       return !operator==( rhs );
77583     }
77584 #endif
77585 
77586 
77587 
77588   public:
77589     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo;
77590     const void* pNext = {};
77591     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {};
77592 
77593   };
77594   static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), "struct and wrapper have different size!" );
77595   static_assert( std::is_standard_layout<SamplerYcbcrConversionInfo>::value, "struct wrapper is not a standard layout!" );
77596 
77597   template <>
77598   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionInfo>
77599   {
77600     using Type = SamplerYcbcrConversionInfo;
77601   };
77602   using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
77603 
77604   struct SemaphoreTypeCreateInfo
77605   {
77606     static const bool allowDuplicate = false;
77607     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreTypeCreateInfo;
77608 
77609 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo77610     VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary, uint64_t initialValue_ = {}) VULKAN_HPP_NOEXCEPT
77611     : semaphoreType( semaphoreType_ ), initialValue( initialValue_ )
77612     {}
77613 
77614     VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77615 
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo77616     SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77617     {
77618       *this = rhs;
77619     }
77620 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77621 
operator =VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo77622     SemaphoreTypeCreateInfo & operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77623     {
77624       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const *>( &rhs );
77625       return *this;
77626     }
77627 
operator =VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo77628     SemaphoreTypeCreateInfo & operator=( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77629     {
77630       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreTypeCreateInfo ) );
77631       return *this;
77632     }
77633 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo77634     SemaphoreTypeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77635     {
77636       pNext = pNext_;
77637       return *this;
77638     }
77639 
setSemaphoreTypeVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo77640     SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT
77641     {
77642       semaphoreType = semaphoreType_;
77643       return *this;
77644     }
77645 
setInitialValueVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo77646     SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT
77647     {
77648       initialValue = initialValue_;
77649       return *this;
77650     }
77651 
77652 
operator VkSemaphoreTypeCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo77653     operator VkSemaphoreTypeCreateInfo const&() const VULKAN_HPP_NOEXCEPT
77654     {
77655       return *reinterpret_cast<const VkSemaphoreTypeCreateInfo*>( this );
77656     }
77657 
operator VkSemaphoreTypeCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo77658     operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT
77659     {
77660       return *reinterpret_cast<VkSemaphoreTypeCreateInfo*>( this );
77661     }
77662 
77663 
77664 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77665     auto operator<=>( SemaphoreTypeCreateInfo const& ) const = default;
77666 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo77667     bool operator==( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77668     {
77669       return ( sType == rhs.sType )
77670           && ( pNext == rhs.pNext )
77671           && ( semaphoreType == rhs.semaphoreType )
77672           && ( initialValue == rhs.initialValue );
77673     }
77674 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo77675     bool operator!=( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77676     {
77677       return !operator==( rhs );
77678     }
77679 #endif
77680 
77681 
77682 
77683   public:
77684     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo;
77685     const void* pNext = {};
77686     VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary;
77687     uint64_t initialValue = {};
77688 
77689   };
77690   static_assert( sizeof( SemaphoreTypeCreateInfo ) == sizeof( VkSemaphoreTypeCreateInfo ), "struct and wrapper have different size!" );
77691   static_assert( std::is_standard_layout<SemaphoreTypeCreateInfo>::value, "struct wrapper is not a standard layout!" );
77692 
77693   template <>
77694   struct CppType<StructureType, StructureType::eSemaphoreTypeCreateInfo>
77695   {
77696     using Type = SemaphoreTypeCreateInfo;
77697   };
77698   using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
77699 
77700   struct SetStateFlagsIndirectCommandNV
77701   {
77702 
77703 
77704 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV77705     VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV(uint32_t data_ = {}) VULKAN_HPP_NOEXCEPT
77706     : data( data_ )
77707     {}
77708 
77709     VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77710 
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV77711     SetStateFlagsIndirectCommandNV( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
77712     {
77713       *this = rhs;
77714     }
77715 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77716 
operator =VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV77717     SetStateFlagsIndirectCommandNV & operator=( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
77718     {
77719       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const *>( &rhs );
77720       return *this;
77721     }
77722 
operator =VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV77723     SetStateFlagsIndirectCommandNV & operator=( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
77724     {
77725       memcpy( static_cast<void *>( this ), &rhs, sizeof( SetStateFlagsIndirectCommandNV ) );
77726       return *this;
77727     }
77728 
setDataVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV77729     SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT
77730     {
77731       data = data_;
77732       return *this;
77733     }
77734 
77735 
operator VkSetStateFlagsIndirectCommandNV const&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV77736     operator VkSetStateFlagsIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
77737     {
77738       return *reinterpret_cast<const VkSetStateFlagsIndirectCommandNV*>( this );
77739     }
77740 
operator VkSetStateFlagsIndirectCommandNV&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV77741     operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
77742     {
77743       return *reinterpret_cast<VkSetStateFlagsIndirectCommandNV*>( this );
77744     }
77745 
77746 
77747 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77748     auto operator<=>( SetStateFlagsIndirectCommandNV const& ) const = default;
77749 #else
operator ==VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV77750     bool operator==( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
77751     {
77752       return ( data == rhs.data );
77753     }
77754 
operator !=VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV77755     bool operator!=( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
77756     {
77757       return !operator==( rhs );
77758     }
77759 #endif
77760 
77761 
77762 
77763   public:
77764     uint32_t data = {};
77765 
77766   };
77767   static_assert( sizeof( SetStateFlagsIndirectCommandNV ) == sizeof( VkSetStateFlagsIndirectCommandNV ), "struct and wrapper have different size!" );
77768   static_assert( std::is_standard_layout<SetStateFlagsIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
77769 
77770   struct ShaderModuleValidationCacheCreateInfoEXT
77771   {
77772     static const bool allowDuplicate = false;
77773     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
77774 
77775 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77776     VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {}) VULKAN_HPP_NOEXCEPT
77777     : validationCache( validationCache_ )
77778     {}
77779 
77780     VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77781 
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77782     ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77783     {
77784       *this = rhs;
77785     }
77786 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77787 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77788     ShaderModuleValidationCacheCreateInfoEXT & operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77789     {
77790       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT const *>( &rhs );
77791       return *this;
77792     }
77793 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77794     ShaderModuleValidationCacheCreateInfoEXT & operator=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77795     {
77796       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderModuleValidationCacheCreateInfoEXT ) );
77797       return *this;
77798     }
77799 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77800     ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77801     {
77802       pNext = pNext_;
77803       return *this;
77804     }
77805 
setValidationCacheVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77806     ShaderModuleValidationCacheCreateInfoEXT & setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT
77807     {
77808       validationCache = validationCache_;
77809       return *this;
77810     }
77811 
77812 
operator VkShaderModuleValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77813     operator VkShaderModuleValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
77814     {
77815       return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>( this );
77816     }
77817 
operator VkShaderModuleValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77818     operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
77819     {
77820       return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>( this );
77821     }
77822 
77823 
77824 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77825     auto operator<=>( ShaderModuleValidationCacheCreateInfoEXT const& ) const = default;
77826 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77827     bool operator==( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77828     {
77829       return ( sType == rhs.sType )
77830           && ( pNext == rhs.pNext )
77831           && ( validationCache == rhs.validationCache );
77832     }
77833 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77834     bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77835     {
77836       return !operator==( rhs );
77837     }
77838 #endif
77839 
77840 
77841 
77842   public:
77843     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
77844     const void* pNext = {};
77845     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {};
77846 
77847   };
77848   static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
77849   static_assert( std::is_standard_layout<ShaderModuleValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
77850 
77851   template <>
77852   struct CppType<StructureType, StructureType::eShaderModuleValidationCacheCreateInfoEXT>
77853   {
77854     using Type = ShaderModuleValidationCacheCreateInfoEXT;
77855   };
77856 
77857   struct ShaderResourceUsageAMD
77858   {
77859 
77860 
77861 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77862     VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD(uint32_t numUsedVgprs_ = {}, uint32_t numUsedSgprs_ = {}, uint32_t ldsSizePerLocalWorkGroup_ = {}, size_t ldsUsageSizeInBytes_ = {}, size_t scratchMemUsageInBytes_ = {}) VULKAN_HPP_NOEXCEPT
77863     : numUsedVgprs( numUsedVgprs_ ), numUsedSgprs( numUsedSgprs_ ), ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ ), ldsUsageSizeInBytes( ldsUsageSizeInBytes_ ), scratchMemUsageInBytes( scratchMemUsageInBytes_ )
77864     {}
77865 
77866     VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77867 
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77868     ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77869     {
77870       *this = rhs;
77871     }
77872 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77873 
operator =VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77874     ShaderResourceUsageAMD & operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77875     {
77876       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const *>( &rhs );
77877       return *this;
77878     }
77879 
operator =VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77880     ShaderResourceUsageAMD & operator=( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77881     {
77882       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderResourceUsageAMD ) );
77883       return *this;
77884     }
77885 
77886 
operator VkShaderResourceUsageAMD const&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77887     operator VkShaderResourceUsageAMD const&() const VULKAN_HPP_NOEXCEPT
77888     {
77889       return *reinterpret_cast<const VkShaderResourceUsageAMD*>( this );
77890     }
77891 
operator VkShaderResourceUsageAMD&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77892     operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT
77893     {
77894       return *reinterpret_cast<VkShaderResourceUsageAMD*>( this );
77895     }
77896 
77897 
77898 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77899     auto operator<=>( ShaderResourceUsageAMD const& ) const = default;
77900 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77901     bool operator==( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
77902     {
77903       return ( numUsedVgprs == rhs.numUsedVgprs )
77904           && ( numUsedSgprs == rhs.numUsedSgprs )
77905           && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup )
77906           && ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes )
77907           && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes );
77908     }
77909 
operator !=VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77910     bool operator!=( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
77911     {
77912       return !operator==( rhs );
77913     }
77914 #endif
77915 
77916 
77917 
77918   public:
77919     uint32_t numUsedVgprs = {};
77920     uint32_t numUsedSgprs = {};
77921     uint32_t ldsSizePerLocalWorkGroup = {};
77922     size_t ldsUsageSizeInBytes = {};
77923     size_t scratchMemUsageInBytes = {};
77924 
77925   };
77926   static_assert( sizeof( ShaderResourceUsageAMD ) == sizeof( VkShaderResourceUsageAMD ), "struct and wrapper have different size!" );
77927   static_assert( std::is_standard_layout<ShaderResourceUsageAMD>::value, "struct wrapper is not a standard layout!" );
77928 
77929   struct ShaderStatisticsInfoAMD
77930   {
77931 
77932 
77933 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77934     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
77935     : shaderStageMask( shaderStageMask_ ), resourceUsage( resourceUsage_ ), numPhysicalVgprs( numPhysicalVgprs_ ), numPhysicalSgprs( numPhysicalSgprs_ ), numAvailableVgprs( numAvailableVgprs_ ), numAvailableSgprs( numAvailableSgprs_ ), computeWorkGroupSize( computeWorkGroupSize_ )
77936     {}
77937 
77938     VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77939 
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77940     ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77941     {
77942       *this = rhs;
77943     }
77944 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77945 
operator =VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77946     ShaderStatisticsInfoAMD & operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77947     {
77948       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD const *>( &rhs );
77949       return *this;
77950     }
77951 
operator =VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77952     ShaderStatisticsInfoAMD & operator=( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77953     {
77954       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderStatisticsInfoAMD ) );
77955       return *this;
77956     }
77957 
77958 
operator VkShaderStatisticsInfoAMD const&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77959     operator VkShaderStatisticsInfoAMD const&() const VULKAN_HPP_NOEXCEPT
77960     {
77961       return *reinterpret_cast<const VkShaderStatisticsInfoAMD*>( this );
77962     }
77963 
operator VkShaderStatisticsInfoAMD&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77964     operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT
77965     {
77966       return *reinterpret_cast<VkShaderStatisticsInfoAMD*>( this );
77967     }
77968 
77969 
77970 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77971     auto operator<=>( ShaderStatisticsInfoAMD const& ) const = default;
77972 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77973     bool operator==( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
77974     {
77975       return ( shaderStageMask == rhs.shaderStageMask )
77976           && ( resourceUsage == rhs.resourceUsage )
77977           && ( numPhysicalVgprs == rhs.numPhysicalVgprs )
77978           && ( numPhysicalSgprs == rhs.numPhysicalSgprs )
77979           && ( numAvailableVgprs == rhs.numAvailableVgprs )
77980           && ( numAvailableSgprs == rhs.numAvailableSgprs )
77981           && ( computeWorkGroupSize == rhs.computeWorkGroupSize );
77982     }
77983 
operator !=VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77984     bool operator!=( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
77985     {
77986       return !operator==( rhs );
77987     }
77988 #endif
77989 
77990 
77991 
77992   public:
77993     VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {};
77994     VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {};
77995     uint32_t numPhysicalVgprs = {};
77996     uint32_t numPhysicalSgprs = {};
77997     uint32_t numAvailableVgprs = {};
77998     uint32_t numAvailableSgprs = {};
77999     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> computeWorkGroupSize = {};
78000 
78001   };
78002   static_assert( sizeof( ShaderStatisticsInfoAMD ) == sizeof( VkShaderStatisticsInfoAMD ), "struct and wrapper have different size!" );
78003   static_assert( std::is_standard_layout<ShaderStatisticsInfoAMD>::value, "struct wrapper is not a standard layout!" );
78004 
78005   struct SharedPresentSurfaceCapabilitiesKHR
78006   {
78007     static const bool allowDuplicate = false;
78008     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
78009 
78010 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78011     VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {}) VULKAN_HPP_NOEXCEPT
78012     : sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ )
78013     {}
78014 
78015     VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78016 
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78017     SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78018     {
78019       *this = rhs;
78020     }
78021 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78022 
operator =VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78023     SharedPresentSurfaceCapabilitiesKHR & operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78024     {
78025       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR const *>( &rhs );
78026       return *this;
78027     }
78028 
operator =VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78029     SharedPresentSurfaceCapabilitiesKHR & operator=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78030     {
78031       memcpy( static_cast<void *>( this ), &rhs, sizeof( SharedPresentSurfaceCapabilitiesKHR ) );
78032       return *this;
78033     }
78034 
78035 
operator VkSharedPresentSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78036     operator VkSharedPresentSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
78037     {
78038       return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>( this );
78039     }
78040 
operator VkSharedPresentSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78041     operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
78042     {
78043       return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>( this );
78044     }
78045 
78046 
78047 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78048     auto operator<=>( SharedPresentSurfaceCapabilitiesKHR const& ) const = default;
78049 #else
operator ==VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78050     bool operator==( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78051     {
78052       return ( sType == rhs.sType )
78053           && ( pNext == rhs.pNext )
78054           && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags );
78055     }
78056 
operator !=VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78057     bool operator!=( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78058     {
78059       return !operator==( rhs );
78060     }
78061 #endif
78062 
78063 
78064 
78065   public:
78066     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
78067     void* pNext = {};
78068     VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {};
78069 
78070   };
78071   static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
78072   static_assert( std::is_standard_layout<SharedPresentSurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
78073 
78074   template <>
78075   struct CppType<StructureType, StructureType::eSharedPresentSurfaceCapabilitiesKHR>
78076   {
78077     using Type = SharedPresentSurfaceCapabilitiesKHR;
78078   };
78079 
78080 #ifdef VK_USE_PLATFORM_GGP
78081   struct StreamDescriptorSurfaceCreateInfoGGP
78082   {
78083     static const bool allowDuplicate = false;
78084     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
78085 
78086 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78087     VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP(VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {}, GgpStreamDescriptor streamDescriptor_ = {}) VULKAN_HPP_NOEXCEPT
78088     : flags( flags_ ), streamDescriptor( streamDescriptor_ )
78089     {}
78090 
78091     VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78092 
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78093     StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
78094     {
78095       *this = rhs;
78096     }
78097 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78098 
operator =VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78099     StreamDescriptorSurfaceCreateInfoGGP & operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
78100     {
78101       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const *>( &rhs );
78102       return *this;
78103     }
78104 
operator =VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78105     StreamDescriptorSurfaceCreateInfoGGP & operator=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
78106     {
78107       memcpy( static_cast<void *>( this ), &rhs, sizeof( StreamDescriptorSurfaceCreateInfoGGP ) );
78108       return *this;
78109     }
78110 
setPNextVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78111     StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78112     {
78113       pNext = pNext_;
78114       return *this;
78115     }
78116 
setFlagsVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78117     StreamDescriptorSurfaceCreateInfoGGP & setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT
78118     {
78119       flags = flags_;
78120       return *this;
78121     }
78122 
setStreamDescriptorVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78123     StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT
78124     {
78125       streamDescriptor = streamDescriptor_;
78126       return *this;
78127     }
78128 
78129 
operator VkStreamDescriptorSurfaceCreateInfoGGP const&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78130     operator VkStreamDescriptorSurfaceCreateInfoGGP const&() const VULKAN_HPP_NOEXCEPT
78131     {
78132       return *reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
78133     }
78134 
operator VkStreamDescriptorSurfaceCreateInfoGGP&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78135     operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT
78136     {
78137       return *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
78138     }
78139 
78140 
78141 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78142     auto operator<=>( StreamDescriptorSurfaceCreateInfoGGP const& ) const = default;
78143 #else
operator ==VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78144     bool operator==( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
78145     {
78146       return ( sType == rhs.sType )
78147           && ( pNext == rhs.pNext )
78148           && ( flags == rhs.flags )
78149           && ( memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ) == 0 );
78150     }
78151 
operator !=VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78152     bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
78153     {
78154       return !operator==( rhs );
78155     }
78156 #endif
78157 
78158 
78159 
78160   public:
78161     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
78162     const void* pNext = {};
78163     VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {};
78164     GgpStreamDescriptor streamDescriptor = {};
78165 
78166   };
78167   static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), "struct and wrapper have different size!" );
78168   static_assert( std::is_standard_layout<StreamDescriptorSurfaceCreateInfoGGP>::value, "struct wrapper is not a standard layout!" );
78169 
78170   template <>
78171   struct CppType<StructureType, StructureType::eStreamDescriptorSurfaceCreateInfoGGP>
78172   {
78173     using Type = StreamDescriptorSurfaceCreateInfoGGP;
78174   };
78175 #endif /*VK_USE_PLATFORM_GGP*/
78176 
78177   struct SubpassDescriptionDepthStencilResolve
78178   {
78179     static const bool allowDuplicate = false;
78180     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescriptionDepthStencilResolve;
78181 
78182 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78183     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
78184     : depthResolveMode( depthResolveMode_ ), stencilResolveMode( stencilResolveMode_ ), pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ )
78185     {}
78186 
78187     VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78188 
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78189     SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
78190     {
78191       *this = rhs;
78192     }
78193 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78194 
operator =VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78195     SubpassDescriptionDepthStencilResolve & operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
78196     {
78197       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve const *>( &rhs );
78198       return *this;
78199     }
78200 
operator =VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78201     SubpassDescriptionDepthStencilResolve & operator=( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
78202     {
78203       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDescriptionDepthStencilResolve ) );
78204       return *this;
78205     }
78206 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78207     SubpassDescriptionDepthStencilResolve & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78208     {
78209       pNext = pNext_;
78210       return *this;
78211     }
78212 
setDepthResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78213     SubpassDescriptionDepthStencilResolve & setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT
78214     {
78215       depthResolveMode = depthResolveMode_;
78216       return *this;
78217     }
78218 
setStencilResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78219     SubpassDescriptionDepthStencilResolve & setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT
78220     {
78221       stencilResolveMode = stencilResolveMode_;
78222       return *this;
78223     }
78224 
setPDepthStencilResolveAttachmentVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78225     SubpassDescriptionDepthStencilResolve & setPDepthStencilResolveAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT
78226     {
78227       pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_;
78228       return *this;
78229     }
78230 
78231 
operator VkSubpassDescriptionDepthStencilResolve const&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78232     operator VkSubpassDescriptionDepthStencilResolve const&() const VULKAN_HPP_NOEXCEPT
78233     {
78234       return *reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>( this );
78235     }
78236 
operator VkSubpassDescriptionDepthStencilResolve&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78237     operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT
78238     {
78239       return *reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>( this );
78240     }
78241 
78242 
78243 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78244     auto operator<=>( SubpassDescriptionDepthStencilResolve const& ) const = default;
78245 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78246     bool operator==( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
78247     {
78248       return ( sType == rhs.sType )
78249           && ( pNext == rhs.pNext )
78250           && ( depthResolveMode == rhs.depthResolveMode )
78251           && ( stencilResolveMode == rhs.stencilResolveMode )
78252           && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment );
78253     }
78254 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78255     bool operator!=( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
78256     {
78257       return !operator==( rhs );
78258     }
78259 #endif
78260 
78261 
78262 
78263   public:
78264     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve;
78265     const void* pNext = {};
78266     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
78267     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
78268     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment = {};
78269 
78270   };
78271   static_assert( sizeof( SubpassDescriptionDepthStencilResolve ) == sizeof( VkSubpassDescriptionDepthStencilResolve ), "struct and wrapper have different size!" );
78272   static_assert( std::is_standard_layout<SubpassDescriptionDepthStencilResolve>::value, "struct wrapper is not a standard layout!" );
78273 
78274   template <>
78275   struct CppType<StructureType, StructureType::eSubpassDescriptionDepthStencilResolve>
78276   {
78277     using Type = SubpassDescriptionDepthStencilResolve;
78278   };
78279   using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
78280 
78281 #ifdef VK_USE_PLATFORM_WIN32_KHR
78282   struct SurfaceCapabilitiesFullScreenExclusiveEXT
78283   {
78284     static const bool allowDuplicate = false;
78285     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
78286 
78287 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78288     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT(VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {}) VULKAN_HPP_NOEXCEPT
78289     : fullScreenExclusiveSupported( fullScreenExclusiveSupported_ )
78290     {}
78291 
78292     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78293 
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78294     SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78295     {
78296       *this = rhs;
78297     }
78298 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78299 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78300     SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78301     {
78302       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT const *>( &rhs );
78303       return *this;
78304     }
78305 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78306     SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78307     {
78308       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) );
78309       return *this;
78310     }
78311 
setPNextVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78312     SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
78313     {
78314       pNext = pNext_;
78315       return *this;
78316     }
78317 
setFullScreenExclusiveSupportedVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78318     SurfaceCapabilitiesFullScreenExclusiveEXT & setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT
78319     {
78320       fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
78321       return *this;
78322     }
78323 
78324 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78325     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&() const VULKAN_HPP_NOEXCEPT
78326     {
78327       return *reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
78328     }
78329 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78330     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT
78331     {
78332       return *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
78333     }
78334 
78335 
78336 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78337     auto operator<=>( SurfaceCapabilitiesFullScreenExclusiveEXT const& ) const = default;
78338 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78339     bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78340     {
78341       return ( sType == rhs.sType )
78342           && ( pNext == rhs.pNext )
78343           && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported );
78344     }
78345 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78346     bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78347     {
78348       return !operator==( rhs );
78349     }
78350 #endif
78351 
78352 
78353 
78354   public:
78355     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
78356     void* pNext = {};
78357     VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {};
78358 
78359   };
78360   static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), "struct and wrapper have different size!" );
78361   static_assert( std::is_standard_layout<SurfaceCapabilitiesFullScreenExclusiveEXT>::value, "struct wrapper is not a standard layout!" );
78362 
78363   template <>
78364   struct CppType<StructureType, StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT>
78365   {
78366     using Type = SurfaceCapabilitiesFullScreenExclusiveEXT;
78367   };
78368 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
78369 
78370 #ifdef VK_USE_PLATFORM_WIN32_KHR
78371   struct SurfaceFullScreenExclusiveInfoEXT
78372   {
78373     static const bool allowDuplicate = false;
78374     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
78375 
78376 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78377     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT(VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault) VULKAN_HPP_NOEXCEPT
78378     : fullScreenExclusive( fullScreenExclusive_ )
78379     {}
78380 
78381     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78382 
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78383     SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78384     {
78385       *this = rhs;
78386     }
78387 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78388 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78389     SurfaceFullScreenExclusiveInfoEXT & operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78390     {
78391       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT const *>( &rhs );
78392       return *this;
78393     }
78394 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78395     SurfaceFullScreenExclusiveInfoEXT & operator=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78396     {
78397       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFullScreenExclusiveInfoEXT ) );
78398       return *this;
78399     }
78400 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78401     SurfaceFullScreenExclusiveInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
78402     {
78403       pNext = pNext_;
78404       return *this;
78405     }
78406 
setFullScreenExclusiveVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78407     SurfaceFullScreenExclusiveInfoEXT & setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT
78408     {
78409       fullScreenExclusive = fullScreenExclusive_;
78410       return *this;
78411     }
78412 
78413 
operator VkSurfaceFullScreenExclusiveInfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78414     operator VkSurfaceFullScreenExclusiveInfoEXT const&() const VULKAN_HPP_NOEXCEPT
78415     {
78416       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>( this );
78417     }
78418 
operator VkSurfaceFullScreenExclusiveInfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78419     operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT
78420     {
78421       return *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>( this );
78422     }
78423 
78424 
78425 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78426     auto operator<=>( SurfaceFullScreenExclusiveInfoEXT const& ) const = default;
78427 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78428     bool operator==( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78429     {
78430       return ( sType == rhs.sType )
78431           && ( pNext == rhs.pNext )
78432           && ( fullScreenExclusive == rhs.fullScreenExclusive );
78433     }
78434 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78435     bool operator!=( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78436     {
78437       return !operator==( rhs );
78438     }
78439 #endif
78440 
78441 
78442 
78443   public:
78444     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
78445     void* pNext = {};
78446     VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault;
78447 
78448   };
78449   static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), "struct and wrapper have different size!" );
78450   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveInfoEXT>::value, "struct wrapper is not a standard layout!" );
78451 
78452   template <>
78453   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveInfoEXT>
78454   {
78455     using Type = SurfaceFullScreenExclusiveInfoEXT;
78456   };
78457 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
78458 
78459 #ifdef VK_USE_PLATFORM_WIN32_KHR
78460   struct SurfaceFullScreenExclusiveWin32InfoEXT
78461   {
78462     static const bool allowDuplicate = false;
78463     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
78464 
78465 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78466     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT(HMONITOR hmonitor_ = {}) VULKAN_HPP_NOEXCEPT
78467     : hmonitor( hmonitor_ )
78468     {}
78469 
78470     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78471 
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78472     SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78473     {
78474       *this = rhs;
78475     }
78476 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78477 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78478     SurfaceFullScreenExclusiveWin32InfoEXT & operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78479     {
78480       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT const *>( &rhs );
78481       return *this;
78482     }
78483 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78484     SurfaceFullScreenExclusiveWin32InfoEXT & operator=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78485     {
78486       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) );
78487       return *this;
78488     }
78489 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78490     SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78491     {
78492       pNext = pNext_;
78493       return *this;
78494     }
78495 
setHmonitorVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78496     SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT
78497     {
78498       hmonitor = hmonitor_;
78499       return *this;
78500     }
78501 
78502 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78503     operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&() const VULKAN_HPP_NOEXCEPT
78504     {
78505       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
78506     }
78507 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78508     operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT
78509     {
78510       return *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
78511     }
78512 
78513 
78514 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78515     auto operator<=>( SurfaceFullScreenExclusiveWin32InfoEXT const& ) const = default;
78516 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78517     bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78518     {
78519       return ( sType == rhs.sType )
78520           && ( pNext == rhs.pNext )
78521           && ( hmonitor == rhs.hmonitor );
78522     }
78523 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78524     bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78525     {
78526       return !operator==( rhs );
78527     }
78528 #endif
78529 
78530 
78531 
78532   public:
78533     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
78534     const void* pNext = {};
78535     HMONITOR hmonitor = {};
78536 
78537   };
78538   static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), "struct and wrapper have different size!" );
78539   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveWin32InfoEXT>::value, "struct wrapper is not a standard layout!" );
78540 
78541   template <>
78542   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT>
78543   {
78544     using Type = SurfaceFullScreenExclusiveWin32InfoEXT;
78545   };
78546 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
78547 
78548   struct SurfaceProtectedCapabilitiesKHR
78549   {
78550     static const bool allowDuplicate = false;
78551     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceProtectedCapabilitiesKHR;
78552 
78553 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR78554     VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR(VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {}) VULKAN_HPP_NOEXCEPT
78555     : supportsProtected( supportsProtected_ )
78556     {}
78557 
78558     VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78559 
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR78560     SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78561     {
78562       *this = rhs;
78563     }
78564 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78565 
operator =VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR78566     SurfaceProtectedCapabilitiesKHR & operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78567     {
78568       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR const *>( &rhs );
78569       return *this;
78570     }
78571 
operator =VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR78572     SurfaceProtectedCapabilitiesKHR & operator=( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78573     {
78574       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceProtectedCapabilitiesKHR ) );
78575       return *this;
78576     }
78577 
setPNextVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR78578     SurfaceProtectedCapabilitiesKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78579     {
78580       pNext = pNext_;
78581       return *this;
78582     }
78583 
setSupportsProtectedVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR78584     SurfaceProtectedCapabilitiesKHR & setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT
78585     {
78586       supportsProtected = supportsProtected_;
78587       return *this;
78588     }
78589 
78590 
operator VkSurfaceProtectedCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR78591     operator VkSurfaceProtectedCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
78592     {
78593       return *reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>( this );
78594     }
78595 
operator VkSurfaceProtectedCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR78596     operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
78597     {
78598       return *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>( this );
78599     }
78600 
78601 
78602 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78603     auto operator<=>( SurfaceProtectedCapabilitiesKHR const& ) const = default;
78604 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR78605     bool operator==( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78606     {
78607       return ( sType == rhs.sType )
78608           && ( pNext == rhs.pNext )
78609           && ( supportsProtected == rhs.supportsProtected );
78610     }
78611 
operator !=VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR78612     bool operator!=( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78613     {
78614       return !operator==( rhs );
78615     }
78616 #endif
78617 
78618 
78619 
78620   public:
78621     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR;
78622     const void* pNext = {};
78623     VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {};
78624 
78625   };
78626   static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), "struct and wrapper have different size!" );
78627   static_assert( std::is_standard_layout<SurfaceProtectedCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
78628 
78629   template <>
78630   struct CppType<StructureType, StructureType::eSurfaceProtectedCapabilitiesKHR>
78631   {
78632     using Type = SurfaceProtectedCapabilitiesKHR;
78633   };
78634 
78635   struct SwapchainCounterCreateInfoEXT
78636   {
78637     static const bool allowDuplicate = false;
78638     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCounterCreateInfoEXT;
78639 
78640 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT78641     VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT(VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {}) VULKAN_HPP_NOEXCEPT
78642     : surfaceCounters( surfaceCounters_ )
78643     {}
78644 
78645     VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78646 
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT78647     SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78648     {
78649       *this = rhs;
78650     }
78651 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78652 
operator =VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT78653     SwapchainCounterCreateInfoEXT & operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78654     {
78655       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT const *>( &rhs );
78656       return *this;
78657     }
78658 
operator =VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT78659     SwapchainCounterCreateInfoEXT & operator=( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78660     {
78661       memcpy( static_cast<void *>( this ), &rhs, sizeof( SwapchainCounterCreateInfoEXT ) );
78662       return *this;
78663     }
78664 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT78665     SwapchainCounterCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78666     {
78667       pNext = pNext_;
78668       return *this;
78669     }
78670 
setSurfaceCountersVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT78671     SwapchainCounterCreateInfoEXT & setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT
78672     {
78673       surfaceCounters = surfaceCounters_;
78674       return *this;
78675     }
78676 
78677 
operator VkSwapchainCounterCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT78678     operator VkSwapchainCounterCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
78679     {
78680       return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>( this );
78681     }
78682 
operator VkSwapchainCounterCreateInfoEXT&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT78683     operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
78684     {
78685       return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>( this );
78686     }
78687 
78688 
78689 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78690     auto operator<=>( SwapchainCounterCreateInfoEXT const& ) const = default;
78691 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT78692     bool operator==( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78693     {
78694       return ( sType == rhs.sType )
78695           && ( pNext == rhs.pNext )
78696           && ( surfaceCounters == rhs.surfaceCounters );
78697     }
78698 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT78699     bool operator!=( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78700     {
78701       return !operator==( rhs );
78702     }
78703 #endif
78704 
78705 
78706 
78707   public:
78708     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT;
78709     const void* pNext = {};
78710     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {};
78711 
78712   };
78713   static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), "struct and wrapper have different size!" );
78714   static_assert( std::is_standard_layout<SwapchainCounterCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
78715 
78716   template <>
78717   struct CppType<StructureType, StructureType::eSwapchainCounterCreateInfoEXT>
78718   {
78719     using Type = SwapchainCounterCreateInfoEXT;
78720   };
78721 
78722   struct SwapchainDisplayNativeHdrCreateInfoAMD
78723   {
78724     static const bool allowDuplicate = false;
78725     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
78726 
78727 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD78728     VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {}) VULKAN_HPP_NOEXCEPT
78729     : localDimmingEnable( localDimmingEnable_ )
78730     {}
78731 
78732     VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78733 
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD78734     SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78735     {
78736       *this = rhs;
78737     }
78738 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78739 
operator =VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD78740     SwapchainDisplayNativeHdrCreateInfoAMD & operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78741     {
78742       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD const *>( &rhs );
78743       return *this;
78744     }
78745 
operator =VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD78746     SwapchainDisplayNativeHdrCreateInfoAMD & operator=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78747     {
78748       memcpy( static_cast<void *>( this ), &rhs, sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) );
78749       return *this;
78750     }
78751 
setPNextVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD78752     SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78753     {
78754       pNext = pNext_;
78755       return *this;
78756     }
78757 
setLocalDimmingEnableVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD78758     SwapchainDisplayNativeHdrCreateInfoAMD & setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT
78759     {
78760       localDimmingEnable = localDimmingEnable_;
78761       return *this;
78762     }
78763 
78764 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD78765     operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
78766     {
78767       return *reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
78768     }
78769 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD78770     operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
78771     {
78772       return *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
78773     }
78774 
78775 
78776 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78777     auto operator<=>( SwapchainDisplayNativeHdrCreateInfoAMD const& ) const = default;
78778 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD78779     bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78780     {
78781       return ( sType == rhs.sType )
78782           && ( pNext == rhs.pNext )
78783           && ( localDimmingEnable == rhs.localDimmingEnable );
78784     }
78785 
operator !=VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD78786     bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78787     {
78788       return !operator==( rhs );
78789     }
78790 #endif
78791 
78792 
78793 
78794   public:
78795     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
78796     const void* pNext = {};
78797     VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {};
78798 
78799   };
78800   static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), "struct and wrapper have different size!" );
78801   static_assert( std::is_standard_layout<SwapchainDisplayNativeHdrCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
78802 
78803   template <>
78804   struct CppType<StructureType, StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD>
78805   {
78806     using Type = SwapchainDisplayNativeHdrCreateInfoAMD;
78807   };
78808 
78809   struct TextureLODGatherFormatPropertiesAMD
78810   {
78811     static const bool allowDuplicate = false;
78812     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTextureLodGatherFormatPropertiesAMD;
78813 
78814 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78815     VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD(VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {}) VULKAN_HPP_NOEXCEPT
78816     : supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ )
78817     {}
78818 
78819     VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78820 
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78821     TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78822     {
78823       *this = rhs;
78824     }
78825 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78826 
operator =VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78827     TextureLODGatherFormatPropertiesAMD & operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78828     {
78829       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const *>( &rhs );
78830       return *this;
78831     }
78832 
operator =VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78833     TextureLODGatherFormatPropertiesAMD & operator=( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78834     {
78835       memcpy( static_cast<void *>( this ), &rhs, sizeof( TextureLODGatherFormatPropertiesAMD ) );
78836       return *this;
78837     }
78838 
78839 
operator VkTextureLODGatherFormatPropertiesAMD const&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78840     operator VkTextureLODGatherFormatPropertiesAMD const&() const VULKAN_HPP_NOEXCEPT
78841     {
78842       return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>( this );
78843     }
78844 
operator VkTextureLODGatherFormatPropertiesAMD&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78845     operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT
78846     {
78847       return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>( this );
78848     }
78849 
78850 
78851 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78852     auto operator<=>( TextureLODGatherFormatPropertiesAMD const& ) const = default;
78853 #else
operator ==VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78854     bool operator==( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78855     {
78856       return ( sType == rhs.sType )
78857           && ( pNext == rhs.pNext )
78858           && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD );
78859     }
78860 
operator !=VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78861     bool operator!=( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78862     {
78863       return !operator==( rhs );
78864     }
78865 #endif
78866 
78867 
78868 
78869   public:
78870     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD;
78871     void* pNext = {};
78872     VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {};
78873 
78874   };
78875   static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), "struct and wrapper have different size!" );
78876   static_assert( std::is_standard_layout<TextureLODGatherFormatPropertiesAMD>::value, "struct wrapper is not a standard layout!" );
78877 
78878   template <>
78879   struct CppType<StructureType, StructureType::eTextureLodGatherFormatPropertiesAMD>
78880   {
78881     using Type = TextureLODGatherFormatPropertiesAMD;
78882   };
78883 
78884   struct TimelineSemaphoreSubmitInfo
78885   {
78886     static const bool allowDuplicate = false;
78887     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTimelineSemaphoreSubmitInfo;
78888 
78889 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78890     VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo(uint32_t waitSemaphoreValueCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValueCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT
78891     : waitSemaphoreValueCount( waitSemaphoreValueCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValueCount( signalSemaphoreValueCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ )
78892     {}
78893 
78894     VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78895 
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78896     TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78897     {
78898       *this = rhs;
78899     }
78900 
78901 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78902     TimelineSemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {} )
78903     : waitSemaphoreValueCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValueCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() )
78904     {}
78905 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78906 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78907 
operator =VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78908     TimelineSemaphoreSubmitInfo & operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78909     {
78910       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo const *>( &rhs );
78911       return *this;
78912     }
78913 
operator =VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78914     TimelineSemaphoreSubmitInfo & operator=( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78915     {
78916       memcpy( static_cast<void *>( this ), &rhs, sizeof( TimelineSemaphoreSubmitInfo ) );
78917       return *this;
78918     }
78919 
setPNextVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78920     TimelineSemaphoreSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78921     {
78922       pNext = pNext_;
78923       return *this;
78924     }
78925 
setWaitSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78926     TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
78927     {
78928       waitSemaphoreValueCount = waitSemaphoreValueCount_;
78929       return *this;
78930     }
78931 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78932     TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
78933     {
78934       pWaitSemaphoreValues = pWaitSemaphoreValues_;
78935       return *this;
78936     }
78937 
78938 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78939     TimelineSemaphoreSubmitInfo & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
78940     {
78941       waitSemaphoreValueCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
78942       pWaitSemaphoreValues = waitSemaphoreValues_.data();
78943       return *this;
78944     }
78945 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78946 
setSignalSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78947     TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
78948     {
78949       signalSemaphoreValueCount = signalSemaphoreValueCount_;
78950       return *this;
78951     }
78952 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78953     TimelineSemaphoreSubmitInfo & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
78954     {
78955       pSignalSemaphoreValues = pSignalSemaphoreValues_;
78956       return *this;
78957     }
78958 
78959 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78960     TimelineSemaphoreSubmitInfo & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
78961     {
78962       signalSemaphoreValueCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
78963       pSignalSemaphoreValues = signalSemaphoreValues_.data();
78964       return *this;
78965     }
78966 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78967 
78968 
operator VkTimelineSemaphoreSubmitInfo const&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78969     operator VkTimelineSemaphoreSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
78970     {
78971       return *reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>( this );
78972     }
78973 
operator VkTimelineSemaphoreSubmitInfo&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78974     operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
78975     {
78976       return *reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>( this );
78977     }
78978 
78979 
78980 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78981     auto operator<=>( TimelineSemaphoreSubmitInfo const& ) const = default;
78982 #else
operator ==VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78983     bool operator==( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78984     {
78985       return ( sType == rhs.sType )
78986           && ( pNext == rhs.pNext )
78987           && ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount )
78988           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
78989           && ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount )
78990           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
78991     }
78992 
operator !=VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78993     bool operator!=( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78994     {
78995       return !operator==( rhs );
78996     }
78997 #endif
78998 
78999 
79000 
79001   public:
79002     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo;
79003     const void* pNext = {};
79004     uint32_t waitSemaphoreValueCount = {};
79005     const uint64_t* pWaitSemaphoreValues = {};
79006     uint32_t signalSemaphoreValueCount = {};
79007     const uint64_t* pSignalSemaphoreValues = {};
79008 
79009   };
79010   static_assert( sizeof( TimelineSemaphoreSubmitInfo ) == sizeof( VkTimelineSemaphoreSubmitInfo ), "struct and wrapper have different size!" );
79011   static_assert( std::is_standard_layout<TimelineSemaphoreSubmitInfo>::value, "struct wrapper is not a standard layout!" );
79012 
79013   template <>
79014   struct CppType<StructureType, StructureType::eTimelineSemaphoreSubmitInfo>
79015   {
79016     using Type = TimelineSemaphoreSubmitInfo;
79017   };
79018   using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
79019 
79020 #ifdef VK_ENABLE_BETA_EXTENSIONS
79021   struct TraceRaysIndirectCommandKHR
79022   {
79023 
79024 
79025 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79026     VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT
79027     : width( width_ ), height( height_ ), depth( depth_ )
79028     {}
79029 
79030     VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79031 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79032     TraceRaysIndirectCommandKHR( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79033     {
79034       *this = rhs;
79035     }
79036 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79037     explicit TraceRaysIndirectCommandKHR( Extent2D const& extent2D, uint32_t depth_ = {} )
79038       : width( extent2D.width )
79039       , height( extent2D.height )
79040       , depth( depth_ )
79041     {}
79042 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79043 
operator =VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79044     TraceRaysIndirectCommandKHR & operator=( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79045     {
79046       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR const *>( &rhs );
79047       return *this;
79048     }
79049 
operator =VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79050     TraceRaysIndirectCommandKHR & operator=( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79051     {
79052       memcpy( static_cast<void *>( this ), &rhs, sizeof( TraceRaysIndirectCommandKHR ) );
79053       return *this;
79054     }
79055 
setWidthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79056     TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
79057     {
79058       width = width_;
79059       return *this;
79060     }
79061 
setHeightVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79062     TraceRaysIndirectCommandKHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
79063     {
79064       height = height_;
79065       return *this;
79066     }
79067 
setDepthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79068     TraceRaysIndirectCommandKHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
79069     {
79070       depth = depth_;
79071       return *this;
79072     }
79073 
79074 
operator VkTraceRaysIndirectCommandKHR const&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79075     operator VkTraceRaysIndirectCommandKHR const&() const VULKAN_HPP_NOEXCEPT
79076     {
79077       return *reinterpret_cast<const VkTraceRaysIndirectCommandKHR*>( this );
79078     }
79079 
operator VkTraceRaysIndirectCommandKHR&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79080     operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT
79081     {
79082       return *reinterpret_cast<VkTraceRaysIndirectCommandKHR*>( this );
79083     }
79084 
79085 
79086 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79087     auto operator<=>( TraceRaysIndirectCommandKHR const& ) const = default;
79088 #else
operator ==VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79089     bool operator==( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79090     {
79091       return ( width == rhs.width )
79092           && ( height == rhs.height )
79093           && ( depth == rhs.depth );
79094     }
79095 
operator !=VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79096     bool operator!=( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79097     {
79098       return !operator==( rhs );
79099     }
79100 #endif
79101 
79102 
79103 
79104   public:
79105     uint32_t width = {};
79106     uint32_t height = {};
79107     uint32_t depth = {};
79108 
79109   };
79110   static_assert( sizeof( TraceRaysIndirectCommandKHR ) == sizeof( VkTraceRaysIndirectCommandKHR ), "struct and wrapper have different size!" );
79111   static_assert( std::is_standard_layout<TraceRaysIndirectCommandKHR>::value, "struct wrapper is not a standard layout!" );
79112 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
79113 
79114   struct ValidationFeaturesEXT
79115   {
79116     static const bool allowDuplicate = false;
79117     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFeaturesEXT;
79118 
79119 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79120     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
79121     : enabledValidationFeatureCount( enabledValidationFeatureCount_ ), pEnabledValidationFeatures( pEnabledValidationFeatures_ ), disabledValidationFeatureCount( disabledValidationFeatureCount_ ), pDisabledValidationFeatures( pDisabledValidationFeatures_ )
79122     {}
79123 
79124     VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79125 
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79126     ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79127     {
79128       *this = rhs;
79129     }
79130 
79131 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79132     ValidationFeaturesEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ = {} )
79133     : enabledValidationFeatureCount( static_cast<uint32_t>( enabledValidationFeatures_.size() ) ), pEnabledValidationFeatures( enabledValidationFeatures_.data() ), disabledValidationFeatureCount( static_cast<uint32_t>( disabledValidationFeatures_.size() ) ), pDisabledValidationFeatures( disabledValidationFeatures_.data() )
79134     {}
79135 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79136 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79137 
operator =VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79138     ValidationFeaturesEXT & operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79139     {
79140       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT const *>( &rhs );
79141       return *this;
79142     }
79143 
operator =VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79144     ValidationFeaturesEXT & operator=( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79145     {
79146       memcpy( static_cast<void *>( this ), &rhs, sizeof( ValidationFeaturesEXT ) );
79147       return *this;
79148     }
79149 
setPNextVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79150     ValidationFeaturesEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79151     {
79152       pNext = pNext_;
79153       return *this;
79154     }
79155 
setEnabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79156     ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
79157     {
79158       enabledValidationFeatureCount = enabledValidationFeatureCount_;
79159       return *this;
79160     }
79161 
setPEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79162     ValidationFeaturesEXT & setPEnabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79163     {
79164       pEnabledValidationFeatures = pEnabledValidationFeatures_;
79165       return *this;
79166     }
79167 
79168 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79169     ValidationFeaturesEXT & setEnabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79170     {
79171       enabledValidationFeatureCount = static_cast<uint32_t>( enabledValidationFeatures_.size() );
79172       pEnabledValidationFeatures = enabledValidationFeatures_.data();
79173       return *this;
79174     }
79175 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79176 
setDisabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79177     ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
79178     {
79179       disabledValidationFeatureCount = disabledValidationFeatureCount_;
79180       return *this;
79181     }
79182 
setPDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79183     ValidationFeaturesEXT & setPDisabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79184     {
79185       pDisabledValidationFeatures = pDisabledValidationFeatures_;
79186       return *this;
79187     }
79188 
79189 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79190     ValidationFeaturesEXT & setDisabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79191     {
79192       disabledValidationFeatureCount = static_cast<uint32_t>( disabledValidationFeatures_.size() );
79193       pDisabledValidationFeatures = disabledValidationFeatures_.data();
79194       return *this;
79195     }
79196 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79197 
79198 
operator VkValidationFeaturesEXT const&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79199     operator VkValidationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
79200     {
79201       return *reinterpret_cast<const VkValidationFeaturesEXT*>( this );
79202     }
79203 
operator VkValidationFeaturesEXT&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79204     operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
79205     {
79206       return *reinterpret_cast<VkValidationFeaturesEXT*>( this );
79207     }
79208 
79209 
79210 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79211     auto operator<=>( ValidationFeaturesEXT const& ) const = default;
79212 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79213     bool operator==( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79214     {
79215       return ( sType == rhs.sType )
79216           && ( pNext == rhs.pNext )
79217           && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount )
79218           && ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures )
79219           && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount )
79220           && ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures );
79221     }
79222 
operator !=VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79223     bool operator!=( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79224     {
79225       return !operator==( rhs );
79226     }
79227 #endif
79228 
79229 
79230 
79231   public:
79232     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT;
79233     const void* pNext = {};
79234     uint32_t enabledValidationFeatureCount = {};
79235     const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures = {};
79236     uint32_t disabledValidationFeatureCount = {};
79237     const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures = {};
79238 
79239   };
79240   static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), "struct and wrapper have different size!" );
79241   static_assert( std::is_standard_layout<ValidationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
79242 
79243   template <>
79244   struct CppType<StructureType, StructureType::eValidationFeaturesEXT>
79245   {
79246     using Type = ValidationFeaturesEXT;
79247   };
79248 
79249   struct ValidationFlagsEXT
79250   {
79251     static const bool allowDuplicate = false;
79252     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFlagsEXT;
79253 
79254 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79255     VULKAN_HPP_CONSTEXPR ValidationFlagsEXT(uint32_t disabledValidationCheckCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ = {}) VULKAN_HPP_NOEXCEPT
79256     : disabledValidationCheckCount( disabledValidationCheckCount_ ), pDisabledValidationChecks( pDisabledValidationChecks_ )
79257     {}
79258 
79259     VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79260 
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79261     ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79262     {
79263       *this = rhs;
79264     }
79265 
79266 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79267     ValidationFlagsEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_ )
79268     : disabledValidationCheckCount( static_cast<uint32_t>( disabledValidationChecks_.size() ) ), pDisabledValidationChecks( disabledValidationChecks_.data() )
79269     {}
79270 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79271 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79272 
operator =VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79273     ValidationFlagsEXT & operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79274     {
79275       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFlagsEXT const *>( &rhs );
79276       return *this;
79277     }
79278 
operator =VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79279     ValidationFlagsEXT & operator=( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79280     {
79281       memcpy( static_cast<void *>( this ), &rhs, sizeof( ValidationFlagsEXT ) );
79282       return *this;
79283     }
79284 
setPNextVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79285     ValidationFlagsEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79286     {
79287       pNext = pNext_;
79288       return *this;
79289     }
79290 
setDisabledValidationCheckCountVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79291     ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT
79292     {
79293       disabledValidationCheckCount = disabledValidationCheckCount_;
79294       return *this;
79295     }
79296 
setPDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79297     ValidationFlagsEXT & setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
79298     {
79299       pDisabledValidationChecks = pDisabledValidationChecks_;
79300       return *this;
79301     }
79302 
79303 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79304     ValidationFlagsEXT & setDisabledValidationChecks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
79305     {
79306       disabledValidationCheckCount = static_cast<uint32_t>( disabledValidationChecks_.size() );
79307       pDisabledValidationChecks = disabledValidationChecks_.data();
79308       return *this;
79309     }
79310 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79311 
79312 
operator VkValidationFlagsEXT const&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79313     operator VkValidationFlagsEXT const&() const VULKAN_HPP_NOEXCEPT
79314     {
79315       return *reinterpret_cast<const VkValidationFlagsEXT*>( this );
79316     }
79317 
operator VkValidationFlagsEXT&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79318     operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT
79319     {
79320       return *reinterpret_cast<VkValidationFlagsEXT*>( this );
79321     }
79322 
79323 
79324 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79325     auto operator<=>( ValidationFlagsEXT const& ) const = default;
79326 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79327     bool operator==( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79328     {
79329       return ( sType == rhs.sType )
79330           && ( pNext == rhs.pNext )
79331           && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount )
79332           && ( pDisabledValidationChecks == rhs.pDisabledValidationChecks );
79333     }
79334 
operator !=VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79335     bool operator!=( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79336     {
79337       return !operator==( rhs );
79338     }
79339 #endif
79340 
79341 
79342 
79343   public:
79344     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT;
79345     const void* pNext = {};
79346     uint32_t disabledValidationCheckCount = {};
79347     const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks = {};
79348 
79349   };
79350   static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "struct and wrapper have different size!" );
79351   static_assert( std::is_standard_layout<ValidationFlagsEXT>::value, "struct wrapper is not a standard layout!" );
79352 
79353   template <>
79354   struct CppType<StructureType, StructureType::eValidationFlagsEXT>
79355   {
79356     using Type = ValidationFlagsEXT;
79357   };
79358 
79359 #ifdef VK_USE_PLATFORM_VI_NN
79360   struct ViSurfaceCreateInfoNN
79361   {
79362     static const bool allowDuplicate = false;
79363     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eViSurfaceCreateInfoNN;
79364 
79365 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79366     VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN(VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, void* window_ = {}) VULKAN_HPP_NOEXCEPT
79367     : flags( flags_ ), window( window_ )
79368     {}
79369 
79370     VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79371 
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79372     ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
79373     {
79374       *this = rhs;
79375     }
79376 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79377 
operator =VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79378     ViSurfaceCreateInfoNN & operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
79379     {
79380       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const *>( &rhs );
79381       return *this;
79382     }
79383 
operator =VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79384     ViSurfaceCreateInfoNN & operator=( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
79385     {
79386       memcpy( static_cast<void *>( this ), &rhs, sizeof( ViSurfaceCreateInfoNN ) );
79387       return *this;
79388     }
79389 
setPNextVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79390     ViSurfaceCreateInfoNN & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79391     {
79392       pNext = pNext_;
79393       return *this;
79394     }
79395 
setFlagsVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79396     ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT
79397     {
79398       flags = flags_;
79399       return *this;
79400     }
79401 
setWindowVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79402     ViSurfaceCreateInfoNN & setWindow( void* window_ ) VULKAN_HPP_NOEXCEPT
79403     {
79404       window = window_;
79405       return *this;
79406     }
79407 
79408 
operator VkViSurfaceCreateInfoNN const&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79409     operator VkViSurfaceCreateInfoNN const&() const VULKAN_HPP_NOEXCEPT
79410     {
79411       return *reinterpret_cast<const VkViSurfaceCreateInfoNN*>( this );
79412     }
79413 
operator VkViSurfaceCreateInfoNN&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79414     operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT
79415     {
79416       return *reinterpret_cast<VkViSurfaceCreateInfoNN*>( this );
79417     }
79418 
79419 
79420 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79421     auto operator<=>( ViSurfaceCreateInfoNN const& ) const = default;
79422 #else
operator ==VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79423     bool operator==( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT
79424     {
79425       return ( sType == rhs.sType )
79426           && ( pNext == rhs.pNext )
79427           && ( flags == rhs.flags )
79428           && ( window == rhs.window );
79429     }
79430 
operator !=VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79431     bool operator!=( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT
79432     {
79433       return !operator==( rhs );
79434     }
79435 #endif
79436 
79437 
79438 
79439   public:
79440     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN;
79441     const void* pNext = {};
79442     VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {};
79443     void* window = {};
79444 
79445   };
79446   static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), "struct and wrapper have different size!" );
79447   static_assert( std::is_standard_layout<ViSurfaceCreateInfoNN>::value, "struct wrapper is not a standard layout!" );
79448 
79449   template <>
79450   struct CppType<StructureType, StructureType::eViSurfaceCreateInfoNN>
79451   {
79452     using Type = ViSurfaceCreateInfoNN;
79453   };
79454 #endif /*VK_USE_PLATFORM_VI_NN*/
79455 
79456 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
79457   struct WaylandSurfaceCreateInfoKHR
79458   {
79459     static const bool allowDuplicate = false;
79460     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWaylandSurfaceCreateInfoKHR;
79461 
79462 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79463     VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {}, struct wl_display* display_ = {}, struct wl_surface* surface_ = {}) VULKAN_HPP_NOEXCEPT
79464     : flags( flags_ ), display( display_ ), surface( surface_ )
79465     {}
79466 
79467     VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79468 
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79469     WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79470     {
79471       *this = rhs;
79472     }
79473 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79474 
operator =VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79475     WaylandSurfaceCreateInfoKHR & operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79476     {
79477       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const *>( &rhs );
79478       return *this;
79479     }
79480 
operator =VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79481     WaylandSurfaceCreateInfoKHR & operator=( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79482     {
79483       memcpy( static_cast<void *>( this ), &rhs, sizeof( WaylandSurfaceCreateInfoKHR ) );
79484       return *this;
79485     }
79486 
setPNextVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79487     WaylandSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79488     {
79489       pNext = pNext_;
79490       return *this;
79491     }
79492 
setFlagsVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79493     WaylandSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
79494     {
79495       flags = flags_;
79496       return *this;
79497     }
79498 
setDisplayVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79499     WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display* display_ ) VULKAN_HPP_NOEXCEPT
79500     {
79501       display = display_;
79502       return *this;
79503     }
79504 
setSurfaceVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79505     WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface* surface_ ) VULKAN_HPP_NOEXCEPT
79506     {
79507       surface = surface_;
79508       return *this;
79509     }
79510 
79511 
operator VkWaylandSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79512     operator VkWaylandSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
79513     {
79514       return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( this );
79515     }
79516 
operator VkWaylandSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79517     operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
79518     {
79519       return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>( this );
79520     }
79521 
79522 
79523 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79524     auto operator<=>( WaylandSurfaceCreateInfoKHR const& ) const = default;
79525 #else
operator ==VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79526     bool operator==( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79527     {
79528       return ( sType == rhs.sType )
79529           && ( pNext == rhs.pNext )
79530           && ( flags == rhs.flags )
79531           && ( display == rhs.display )
79532           && ( surface == rhs.surface );
79533     }
79534 
operator !=VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79535     bool operator!=( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79536     {
79537       return !operator==( rhs );
79538     }
79539 #endif
79540 
79541 
79542 
79543   public:
79544     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR;
79545     const void* pNext = {};
79546     VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {};
79547     struct wl_display* display = {};
79548     struct wl_surface* surface = {};
79549 
79550   };
79551   static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
79552   static_assert( std::is_standard_layout<WaylandSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
79553 
79554   template <>
79555   struct CppType<StructureType, StructureType::eWaylandSurfaceCreateInfoKHR>
79556   {
79557     using Type = WaylandSurfaceCreateInfoKHR;
79558   };
79559 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
79560 
79561 #ifdef VK_USE_PLATFORM_WIN32_KHR
79562   struct Win32KeyedMutexAcquireReleaseInfoKHR
79563   {
79564     static const bool allowDuplicate = false;
79565     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
79566 
79567 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79568     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
79569     : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeouts( pAcquireTimeouts_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ )
79570     {}
79571 
79572     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79573 
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79574     Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79575     {
79576       *this = rhs;
79577     }
79578 
79579 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79580     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_ = {} )
79581     : 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() )
79582     {
79583 #ifdef VULKAN_HPP_NO_EXCEPTIONS
79584       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
79585       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeouts_.size() );
79586       VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeouts_.size() );
79587 #else
79588       if ( acquireSyncs_.size() != acquireKeys_.size() )
79589       {
79590         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireKeys_.size()" );
79591       }
79592       if ( acquireSyncs_.size() != acquireTimeouts_.size() )
79593       {
79594         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireTimeouts_.size()" );
79595       }
79596       if ( acquireKeys_.size() != acquireTimeouts_.size() )
79597       {
79598         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireKeys_.size() != acquireTimeouts_.size()" );
79599       }
79600 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
79601 
79602 #ifdef VULKAN_HPP_NO_EXCEPTIONS
79603       VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
79604 #else
79605       if ( releaseSyncs_.size() != releaseKeys_.size() )
79606       {
79607         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: releaseSyncs_.size() != releaseKeys_.size()" );
79608       }
79609 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
79610     }
79611 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79612 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79613 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79614     Win32KeyedMutexAcquireReleaseInfoKHR & operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79615     {
79616       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR const *>( &rhs );
79617       return *this;
79618     }
79619 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79620     Win32KeyedMutexAcquireReleaseInfoKHR & operator=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79621     {
79622       memcpy( static_cast<void *>( this ), &rhs, sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) );
79623       return *this;
79624     }
79625 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79626     Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79627     {
79628       pNext = pNext_;
79629       return *this;
79630     }
79631 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79632     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
79633     {
79634       acquireCount = acquireCount_;
79635       return *this;
79636     }
79637 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79638     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
79639     {
79640       pAcquireSyncs = pAcquireSyncs_;
79641       return *this;
79642     }
79643 
79644 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79645     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
79646     {
79647       acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
79648       pAcquireSyncs = acquireSyncs_.data();
79649       return *this;
79650     }
79651 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79652 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79653     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
79654     {
79655       pAcquireKeys = pAcquireKeys_;
79656       return *this;
79657     }
79658 
79659 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79660     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
79661     {
79662       acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
79663       pAcquireKeys = acquireKeys_.data();
79664       return *this;
79665     }
79666 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79667 
setPAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79668     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t* pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
79669     {
79670       pAcquireTimeouts = pAcquireTimeouts_;
79671       return *this;
79672     }
79673 
79674 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79675     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireTimeouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
79676     {
79677       acquireCount = static_cast<uint32_t>( acquireTimeouts_.size() );
79678       pAcquireTimeouts = acquireTimeouts_.data();
79679       return *this;
79680     }
79681 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79682 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79683     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
79684     {
79685       releaseCount = releaseCount_;
79686       return *this;
79687     }
79688 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79689     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
79690     {
79691       pReleaseSyncs = pReleaseSyncs_;
79692       return *this;
79693     }
79694 
79695 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79696     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
79697     {
79698       releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
79699       pReleaseSyncs = releaseSyncs_.data();
79700       return *this;
79701     }
79702 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79703 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79704     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
79705     {
79706       pReleaseKeys = pReleaseKeys_;
79707       return *this;
79708     }
79709 
79710 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79711     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
79712     {
79713       releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
79714       pReleaseKeys = releaseKeys_.data();
79715       return *this;
79716     }
79717 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79718 
79719 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79720     operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&() const VULKAN_HPP_NOEXCEPT
79721     {
79722       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
79723     }
79724 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79725     operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT
79726     {
79727       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
79728     }
79729 
79730 
79731 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79732     auto operator<=>( Win32KeyedMutexAcquireReleaseInfoKHR const& ) const = default;
79733 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79734     bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79735     {
79736       return ( sType == rhs.sType )
79737           && ( pNext == rhs.pNext )
79738           && ( acquireCount == rhs.acquireCount )
79739           && ( pAcquireSyncs == rhs.pAcquireSyncs )
79740           && ( pAcquireKeys == rhs.pAcquireKeys )
79741           && ( pAcquireTimeouts == rhs.pAcquireTimeouts )
79742           && ( releaseCount == rhs.releaseCount )
79743           && ( pReleaseSyncs == rhs.pReleaseSyncs )
79744           && ( pReleaseKeys == rhs.pReleaseKeys );
79745     }
79746 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR79747     bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79748     {
79749       return !operator==( rhs );
79750     }
79751 #endif
79752 
79753 
79754 
79755   public:
79756     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
79757     const void* pNext = {};
79758     uint32_t acquireCount = {};
79759     const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {};
79760     const uint64_t* pAcquireKeys = {};
79761     const uint32_t* pAcquireTimeouts = {};
79762     uint32_t releaseCount = {};
79763     const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {};
79764     const uint64_t* pReleaseKeys = {};
79765 
79766   };
79767   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), "struct and wrapper have different size!" );
79768   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoKHR>::value, "struct wrapper is not a standard layout!" );
79769 
79770   template <>
79771   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR>
79772   {
79773     using Type = Win32KeyedMutexAcquireReleaseInfoKHR;
79774   };
79775 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79776 
79777 #ifdef VK_USE_PLATFORM_WIN32_KHR
79778   struct Win32KeyedMutexAcquireReleaseInfoNV
79779   {
79780     static const bool allowDuplicate = false;
79781     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
79782 
79783 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79784     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
79785     : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ )
79786     {}
79787 
79788     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79789 
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79790     Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
79791     {
79792       *this = rhs;
79793     }
79794 
79795 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79796     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_ = {} )
79797     : 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() )
79798     {
79799 #ifdef VULKAN_HPP_NO_EXCEPTIONS
79800       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
79801       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeoutMilliseconds_.size() );
79802       VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeoutMilliseconds_.size() );
79803 #else
79804       if ( acquireSyncs_.size() != acquireKeys_.size() )
79805       {
79806         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireKeys_.size()" );
79807       }
79808       if ( acquireSyncs_.size() != acquireTimeoutMilliseconds_.size() )
79809       {
79810         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireTimeoutMilliseconds_.size()" );
79811       }
79812       if ( acquireKeys_.size() != acquireTimeoutMilliseconds_.size() )
79813       {
79814         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireKeys_.size() != acquireTimeoutMilliseconds_.size()" );
79815       }
79816 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
79817 
79818 #ifdef VULKAN_HPP_NO_EXCEPTIONS
79819       VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
79820 #else
79821       if ( releaseSyncs_.size() != releaseKeys_.size() )
79822       {
79823         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: releaseSyncs_.size() != releaseKeys_.size()" );
79824       }
79825 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
79826     }
79827 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79828 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79829 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79830     Win32KeyedMutexAcquireReleaseInfoNV & operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
79831     {
79832       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV const *>( &rhs );
79833       return *this;
79834     }
79835 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79836     Win32KeyedMutexAcquireReleaseInfoNV & operator=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
79837     {
79838       memcpy( static_cast<void *>( this ), &rhs, sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) );
79839       return *this;
79840     }
79841 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79842     Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79843     {
79844       pNext = pNext_;
79845       return *this;
79846     }
79847 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79848     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
79849     {
79850       acquireCount = acquireCount_;
79851       return *this;
79852     }
79853 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79854     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
79855     {
79856       pAcquireSyncs = pAcquireSyncs_;
79857       return *this;
79858     }
79859 
79860 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79861     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
79862     {
79863       acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
79864       pAcquireSyncs = acquireSyncs_.data();
79865       return *this;
79866     }
79867 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79868 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79869     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
79870     {
79871       pAcquireKeys = pAcquireKeys_;
79872       return *this;
79873     }
79874 
79875 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79876     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
79877     {
79878       acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
79879       pAcquireKeys = acquireKeys_.data();
79880       return *this;
79881     }
79882 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79883 
setPAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79884     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t* pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
79885     {
79886       pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_;
79887       return *this;
79888     }
79889 
79890 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79891     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireTimeoutMilliseconds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
79892     {
79893       acquireCount = static_cast<uint32_t>( acquireTimeoutMilliseconds_.size() );
79894       pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds_.data();
79895       return *this;
79896     }
79897 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79898 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79899     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
79900     {
79901       releaseCount = releaseCount_;
79902       return *this;
79903     }
79904 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79905     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
79906     {
79907       pReleaseSyncs = pReleaseSyncs_;
79908       return *this;
79909     }
79910 
79911 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79912     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
79913     {
79914       releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
79915       pReleaseSyncs = releaseSyncs_.data();
79916       return *this;
79917     }
79918 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79919 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79920     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
79921     {
79922       pReleaseKeys = pReleaseKeys_;
79923       return *this;
79924     }
79925 
79926 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79927     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
79928     {
79929       releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
79930       pReleaseKeys = releaseKeys_.data();
79931       return *this;
79932     }
79933 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79934 
79935 
operator VkWin32KeyedMutexAcquireReleaseInfoNV const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79936     operator VkWin32KeyedMutexAcquireReleaseInfoNV const&() const VULKAN_HPP_NOEXCEPT
79937     {
79938       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
79939     }
79940 
operator VkWin32KeyedMutexAcquireReleaseInfoNV&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79941     operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT
79942     {
79943       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
79944     }
79945 
79946 
79947 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79948     auto operator<=>( Win32KeyedMutexAcquireReleaseInfoNV const& ) const = default;
79949 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79950     bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
79951     {
79952       return ( sType == rhs.sType )
79953           && ( pNext == rhs.pNext )
79954           && ( acquireCount == rhs.acquireCount )
79955           && ( pAcquireSyncs == rhs.pAcquireSyncs )
79956           && ( pAcquireKeys == rhs.pAcquireKeys )
79957           && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds )
79958           && ( releaseCount == rhs.releaseCount )
79959           && ( pReleaseSyncs == rhs.pReleaseSyncs )
79960           && ( pReleaseKeys == rhs.pReleaseKeys );
79961     }
79962 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79963     bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
79964     {
79965       return !operator==( rhs );
79966     }
79967 #endif
79968 
79969 
79970 
79971   public:
79972     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
79973     const void* pNext = {};
79974     uint32_t acquireCount = {};
79975     const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {};
79976     const uint64_t* pAcquireKeys = {};
79977     const uint32_t* pAcquireTimeoutMilliseconds = {};
79978     uint32_t releaseCount = {};
79979     const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {};
79980     const uint64_t* pReleaseKeys = {};
79981 
79982   };
79983   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), "struct and wrapper have different size!" );
79984   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoNV>::value, "struct wrapper is not a standard layout!" );
79985 
79986   template <>
79987   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoNV>
79988   {
79989     using Type = Win32KeyedMutexAcquireReleaseInfoNV;
79990   };
79991 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79992 
79993 #ifdef VK_USE_PLATFORM_WIN32_KHR
79994   struct Win32SurfaceCreateInfoKHR
79995   {
79996     static const bool allowDuplicate = false;
79997     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32SurfaceCreateInfoKHR;
79998 
79999 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80000     VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {}, HINSTANCE hinstance_ = {}, HWND hwnd_ = {}) VULKAN_HPP_NOEXCEPT
80001     : flags( flags_ ), hinstance( hinstance_ ), hwnd( hwnd_ )
80002     {}
80003 
80004     VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80005 
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80006     Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80007     {
80008       *this = rhs;
80009     }
80010 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80011 
operator =VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80012     Win32SurfaceCreateInfoKHR & operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80013     {
80014       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const *>( &rhs );
80015       return *this;
80016     }
80017 
operator =VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80018     Win32SurfaceCreateInfoKHR & operator=( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80019     {
80020       memcpy( static_cast<void *>( this ), &rhs, sizeof( Win32SurfaceCreateInfoKHR ) );
80021       return *this;
80022     }
80023 
setPNextVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80024     Win32SurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80025     {
80026       pNext = pNext_;
80027       return *this;
80028     }
80029 
setFlagsVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80030     Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
80031     {
80032       flags = flags_;
80033       return *this;
80034     }
80035 
setHinstanceVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80036     Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT
80037     {
80038       hinstance = hinstance_;
80039       return *this;
80040     }
80041 
setHwndVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80042     Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT
80043     {
80044       hwnd = hwnd_;
80045       return *this;
80046     }
80047 
80048 
operator VkWin32SurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80049     operator VkWin32SurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
80050     {
80051       return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( this );
80052     }
80053 
operator VkWin32SurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80054     operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
80055     {
80056       return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>( this );
80057     }
80058 
80059 
80060 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80061     auto operator<=>( Win32SurfaceCreateInfoKHR const& ) const = default;
80062 #else
operator ==VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80063     bool operator==( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80064     {
80065       return ( sType == rhs.sType )
80066           && ( pNext == rhs.pNext )
80067           && ( flags == rhs.flags )
80068           && ( hinstance == rhs.hinstance )
80069           && ( hwnd == rhs.hwnd );
80070     }
80071 
operator !=VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80072     bool operator!=( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80073     {
80074       return !operator==( rhs );
80075     }
80076 #endif
80077 
80078 
80079 
80080   public:
80081     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR;
80082     const void* pNext = {};
80083     VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {};
80084     HINSTANCE hinstance = {};
80085     HWND hwnd = {};
80086 
80087   };
80088   static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
80089   static_assert( std::is_standard_layout<Win32SurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
80090 
80091   template <>
80092   struct CppType<StructureType, StructureType::eWin32SurfaceCreateInfoKHR>
80093   {
80094     using Type = Win32SurfaceCreateInfoKHR;
80095   };
80096 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80097 
80098   struct WriteDescriptorSetAccelerationStructureKHR
80099   {
80100     static const bool allowDuplicate = false;
80101     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
80102 
80103 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80104     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR(uint32_t accelerationStructureCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT
80105     : accelerationStructureCount( accelerationStructureCount_ ), pAccelerationStructures( pAccelerationStructures_ )
80106     {}
80107 
80108     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80109 
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80110     WriteDescriptorSetAccelerationStructureKHR( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80111     {
80112       *this = rhs;
80113     }
80114 
80115 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80116     WriteDescriptorSetAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_ )
80117     : accelerationStructureCount( static_cast<uint32_t>( accelerationStructures_.size() ) ), pAccelerationStructures( accelerationStructures_.data() )
80118     {}
80119 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80120 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80121 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80122     WriteDescriptorSetAccelerationStructureKHR & operator=( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80123     {
80124       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR const *>( &rhs );
80125       return *this;
80126     }
80127 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80128     WriteDescriptorSetAccelerationStructureKHR & operator=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80129     {
80130       memcpy( static_cast<void *>( this ), &rhs, sizeof( WriteDescriptorSetAccelerationStructureKHR ) );
80131       return *this;
80132     }
80133 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80134     WriteDescriptorSetAccelerationStructureKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80135     {
80136       pNext = pNext_;
80137       return *this;
80138     }
80139 
setAccelerationStructureCountVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80140     WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
80141     {
80142       accelerationStructureCount = accelerationStructureCount_;
80143       return *this;
80144     }
80145 
setPAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80146     WriteDescriptorSetAccelerationStructureKHR & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
80147     {
80148       pAccelerationStructures = pAccelerationStructures_;
80149       return *this;
80150     }
80151 
80152 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80153     WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
80154     {
80155       accelerationStructureCount = static_cast<uint32_t>( accelerationStructures_.size() );
80156       pAccelerationStructures = accelerationStructures_.data();
80157       return *this;
80158     }
80159 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80160 
80161 
operator VkWriteDescriptorSetAccelerationStructureKHR const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80162     operator VkWriteDescriptorSetAccelerationStructureKHR const&() const VULKAN_HPP_NOEXCEPT
80163     {
80164       return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>( this );
80165     }
80166 
operator VkWriteDescriptorSetAccelerationStructureKHR&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80167     operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT
80168     {
80169       return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>( this );
80170     }
80171 
80172 
80173 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80174     auto operator<=>( WriteDescriptorSetAccelerationStructureKHR const& ) const = default;
80175 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80176     bool operator==( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80177     {
80178       return ( sType == rhs.sType )
80179           && ( pNext == rhs.pNext )
80180           && ( accelerationStructureCount == rhs.accelerationStructureCount )
80181           && ( pAccelerationStructures == rhs.pAccelerationStructures );
80182     }
80183 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80184     bool operator!=( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80185     {
80186       return !operator==( rhs );
80187     }
80188 #endif
80189 
80190 
80191 
80192   public:
80193     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
80194     const void* pNext = {};
80195     uint32_t accelerationStructureCount = {};
80196     const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures = {};
80197 
80198   };
80199   static_assert( sizeof( WriteDescriptorSetAccelerationStructureKHR ) == sizeof( VkWriteDescriptorSetAccelerationStructureKHR ), "struct and wrapper have different size!" );
80200   static_assert( std::is_standard_layout<WriteDescriptorSetAccelerationStructureKHR>::value, "struct wrapper is not a standard layout!" );
80201 
80202   template <>
80203   struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureKHR>
80204   {
80205     using Type = WriteDescriptorSetAccelerationStructureKHR;
80206   };
80207   using WriteDescriptorSetAccelerationStructureNV = WriteDescriptorSetAccelerationStructureKHR;
80208 
80209   struct WriteDescriptorSetInlineUniformBlockEXT
80210   {
80211     static const bool allowDuplicate = false;
80212     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
80213 
80214 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80215     VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT(uint32_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT
80216     : dataSize( dataSize_ ), pData( pData_ )
80217     {}
80218 
80219     VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80220 
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80221     WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
80222     {
80223       *this = rhs;
80224     }
80225 
80226 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80227     template <typename T>
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80228     WriteDescriptorSetInlineUniformBlockEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ )
80229     : dataSize( static_cast<uint32_t>( data_.size() * sizeof(T) ) ), pData( data_.data() )
80230     {}
80231 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80232 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80233 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80234     WriteDescriptorSetInlineUniformBlockEXT & operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
80235     {
80236       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT const *>( &rhs );
80237       return *this;
80238     }
80239 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80240     WriteDescriptorSetInlineUniformBlockEXT & operator=( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
80241     {
80242       memcpy( static_cast<void *>( this ), &rhs, sizeof( WriteDescriptorSetInlineUniformBlockEXT ) );
80243       return *this;
80244     }
80245 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80246     WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80247     {
80248       pNext = pNext_;
80249       return *this;
80250     }
80251 
setDataSizeVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80252     WriteDescriptorSetInlineUniformBlockEXT & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT
80253     {
80254       dataSize = dataSize_;
80255       return *this;
80256     }
80257 
setPDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80258     WriteDescriptorSetInlineUniformBlockEXT & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT
80259     {
80260       pData = pData_;
80261       return *this;
80262     }
80263 
80264 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80265     template <typename T>
setDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80266     WriteDescriptorSetInlineUniformBlockEXT & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
80267     {
80268       dataSize = static_cast<uint32_t>( data_.size() * sizeof(T) );
80269       pData = data_.data();
80270       return *this;
80271     }
80272 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80273 
80274 
operator VkWriteDescriptorSetInlineUniformBlockEXT const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80275     operator VkWriteDescriptorSetInlineUniformBlockEXT const&() const VULKAN_HPP_NOEXCEPT
80276     {
80277       return *reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
80278     }
80279 
operator VkWriteDescriptorSetInlineUniformBlockEXT&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80280     operator VkWriteDescriptorSetInlineUniformBlockEXT &() VULKAN_HPP_NOEXCEPT
80281     {
80282       return *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
80283     }
80284 
80285 
80286 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80287     auto operator<=>( WriteDescriptorSetInlineUniformBlockEXT const& ) const = default;
80288 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80289     bool operator==( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
80290     {
80291       return ( sType == rhs.sType )
80292           && ( pNext == rhs.pNext )
80293           && ( dataSize == rhs.dataSize )
80294           && ( pData == rhs.pData );
80295     }
80296 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80297     bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
80298     {
80299       return !operator==( rhs );
80300     }
80301 #endif
80302 
80303 
80304 
80305   public:
80306     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
80307     const void* pNext = {};
80308     uint32_t dataSize = {};
80309     const void* pData = {};
80310 
80311   };
80312   static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "struct and wrapper have different size!" );
80313   static_assert( std::is_standard_layout<WriteDescriptorSetInlineUniformBlockEXT>::value, "struct wrapper is not a standard layout!" );
80314 
80315   template <>
80316   struct CppType<StructureType, StructureType::eWriteDescriptorSetInlineUniformBlockEXT>
80317   {
80318     using Type = WriteDescriptorSetInlineUniformBlockEXT;
80319   };
80320 
80321 #ifdef VK_USE_PLATFORM_XCB_KHR
80322   struct XcbSurfaceCreateInfoKHR
80323   {
80324     static const bool allowDuplicate = false;
80325     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXcbSurfaceCreateInfoKHR;
80326 
80327 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80328     VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {}, xcb_connection_t* connection_ = {}, xcb_window_t window_ = {}) VULKAN_HPP_NOEXCEPT
80329     : flags( flags_ ), connection( connection_ ), window( window_ )
80330     {}
80331 
80332     VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80333 
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80334     XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80335     {
80336       *this = rhs;
80337     }
80338 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80339 
operator =VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80340     XcbSurfaceCreateInfoKHR & operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80341     {
80342       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const *>( &rhs );
80343       return *this;
80344     }
80345 
operator =VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80346     XcbSurfaceCreateInfoKHR & operator=( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80347     {
80348       memcpy( static_cast<void *>( this ), &rhs, sizeof( XcbSurfaceCreateInfoKHR ) );
80349       return *this;
80350     }
80351 
setPNextVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80352     XcbSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80353     {
80354       pNext = pNext_;
80355       return *this;
80356     }
80357 
setFlagsVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80358     XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
80359     {
80360       flags = flags_;
80361       return *this;
80362     }
80363 
setConnectionVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80364     XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t* connection_ ) VULKAN_HPP_NOEXCEPT
80365     {
80366       connection = connection_;
80367       return *this;
80368     }
80369 
setWindowVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80370     XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT
80371     {
80372       window = window_;
80373       return *this;
80374     }
80375 
80376 
operator VkXcbSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80377     operator VkXcbSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
80378     {
80379       return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( this );
80380     }
80381 
operator VkXcbSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80382     operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
80383     {
80384       return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>( this );
80385     }
80386 
80387 
80388 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80389     auto operator<=>( XcbSurfaceCreateInfoKHR const& ) const = default;
80390 #else
operator ==VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80391     bool operator==( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80392     {
80393       return ( sType == rhs.sType )
80394           && ( pNext == rhs.pNext )
80395           && ( flags == rhs.flags )
80396           && ( connection == rhs.connection )
80397           && ( memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ) == 0 );
80398     }
80399 
operator !=VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80400     bool operator!=( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80401     {
80402       return !operator==( rhs );
80403     }
80404 #endif
80405 
80406 
80407 
80408   public:
80409     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR;
80410     const void* pNext = {};
80411     VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {};
80412     xcb_connection_t* connection = {};
80413     xcb_window_t window = {};
80414 
80415   };
80416   static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
80417   static_assert( std::is_standard_layout<XcbSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
80418 
80419   template <>
80420   struct CppType<StructureType, StructureType::eXcbSurfaceCreateInfoKHR>
80421   {
80422     using Type = XcbSurfaceCreateInfoKHR;
80423   };
80424 #endif /*VK_USE_PLATFORM_XCB_KHR*/
80425 
80426 #ifdef VK_USE_PLATFORM_XLIB_KHR
80427   struct XlibSurfaceCreateInfoKHR
80428   {
80429     static const bool allowDuplicate = false;
80430     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXlibSurfaceCreateInfoKHR;
80431 
80432 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80433     VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {}, Display* dpy_ = {}, Window window_ = {}) VULKAN_HPP_NOEXCEPT
80434     : flags( flags_ ), dpy( dpy_ ), window( window_ )
80435     {}
80436 
80437     VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80438 
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80439     XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80440     {
80441       *this = rhs;
80442     }
80443 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80444 
operator =VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80445     XlibSurfaceCreateInfoKHR & operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80446     {
80447       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const *>( &rhs );
80448       return *this;
80449     }
80450 
operator =VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80451     XlibSurfaceCreateInfoKHR & operator=( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80452     {
80453       memcpy( static_cast<void *>( this ), &rhs, sizeof( XlibSurfaceCreateInfoKHR ) );
80454       return *this;
80455     }
80456 
setPNextVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80457     XlibSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80458     {
80459       pNext = pNext_;
80460       return *this;
80461     }
80462 
setFlagsVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80463     XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
80464     {
80465       flags = flags_;
80466       return *this;
80467     }
80468 
setDpyVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80469     XlibSurfaceCreateInfoKHR & setDpy( Display* dpy_ ) VULKAN_HPP_NOEXCEPT
80470     {
80471       dpy = dpy_;
80472       return *this;
80473     }
80474 
setWindowVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80475     XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT
80476     {
80477       window = window_;
80478       return *this;
80479     }
80480 
80481 
operator VkXlibSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80482     operator VkXlibSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
80483     {
80484       return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( this );
80485     }
80486 
operator VkXlibSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80487     operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
80488     {
80489       return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>( this );
80490     }
80491 
80492 
80493 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80494     auto operator<=>( XlibSurfaceCreateInfoKHR const& ) const = default;
80495 #else
operator ==VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80496     bool operator==( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80497     {
80498       return ( sType == rhs.sType )
80499           && ( pNext == rhs.pNext )
80500           && ( flags == rhs.flags )
80501           && ( dpy == rhs.dpy )
80502           && ( memcmp( &window, &rhs.window, sizeof( Window ) ) == 0 );
80503     }
80504 
operator !=VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80505     bool operator!=( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80506     {
80507       return !operator==( rhs );
80508     }
80509 #endif
80510 
80511 
80512 
80513   public:
80514     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR;
80515     const void* pNext = {};
80516     VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {};
80517     Display* dpy = {};
80518     Window window = {};
80519 
80520   };
80521   static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
80522   static_assert( std::is_standard_layout<XlibSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
80523 
80524   template <>
80525   struct CppType<StructureType, StructureType::eXlibSurfaceCreateInfoKHR>
80526   {
80527     using Type = XlibSurfaceCreateInfoKHR;
80528   };
80529 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
80530 
80531   class DebugReportCallbackEXT
80532   {
80533   public:
80534     using CType = VkDebugReportCallbackEXT;
80535 
80536     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT;
80537     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT;
80538 
80539   public:
DebugReportCallbackEXT()80540     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT() VULKAN_HPP_NOEXCEPT
80541       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
80542     {}
80543 
DebugReportCallbackEXT(std::nullptr_t)80544     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
80545       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
80546     {}
80547 
DebugReportCallbackEXT(VkDebugReportCallbackEXT debugReportCallbackEXT)80548     VULKAN_HPP_TYPESAFE_EXPLICIT DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT ) VULKAN_HPP_NOEXCEPT
80549       : m_debugReportCallbackEXT( debugReportCallbackEXT )
80550     {}
80551 
80552 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugReportCallbackEXT debugReportCallbackEXT)80553     DebugReportCallbackEXT & operator=(VkDebugReportCallbackEXT debugReportCallbackEXT) VULKAN_HPP_NOEXCEPT
80554     {
80555       m_debugReportCallbackEXT = debugReportCallbackEXT;
80556       return *this;
80557     }
80558 #endif
80559 
operator =(std::nullptr_t)80560     DebugReportCallbackEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
80561     {
80562       m_debugReportCallbackEXT = VK_NULL_HANDLE;
80563       return *this;
80564     }
80565 
80566 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80567     auto operator<=>( DebugReportCallbackEXT const& ) const = default;
80568 #else
operator ==(DebugReportCallbackEXT const & rhs) const80569     bool operator==( DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
80570     {
80571       return m_debugReportCallbackEXT == rhs.m_debugReportCallbackEXT;
80572     }
80573 
operator !=(DebugReportCallbackEXT const & rhs) const80574     bool operator!=(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
80575     {
80576       return m_debugReportCallbackEXT != rhs.m_debugReportCallbackEXT;
80577     }
80578 
operator <(DebugReportCallbackEXT const & rhs) const80579     bool operator<(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
80580     {
80581       return m_debugReportCallbackEXT < rhs.m_debugReportCallbackEXT;
80582     }
80583 #endif
80584 
operator VkDebugReportCallbackEXT() const80585     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugReportCallbackEXT() const VULKAN_HPP_NOEXCEPT
80586     {
80587       return m_debugReportCallbackEXT;
80588     }
80589 
operator bool() const80590     explicit operator bool() const VULKAN_HPP_NOEXCEPT
80591     {
80592       return m_debugReportCallbackEXT != VK_NULL_HANDLE;
80593     }
80594 
operator !() const80595     bool operator!() const VULKAN_HPP_NOEXCEPT
80596     {
80597       return m_debugReportCallbackEXT == VK_NULL_HANDLE;
80598     }
80599 
80600   private:
80601     VkDebugReportCallbackEXT m_debugReportCallbackEXT;
80602   };
80603   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ), "handle and wrapper have different size!" );
80604 
80605   template <>
80606   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDebugReportCallbackEXT>
80607   {
80608     using type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
80609   };
80610 
80611   template <>
80612   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT>
80613   {
80614     using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
80615   };
80616 
80617 
80618   template <>
80619   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT>
80620   {
80621     using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
80622   };
80623 
80624 
80625   template <>
80626   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
80627   {
80628     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
80629   };
80630 
80631   class DebugUtilsMessengerEXT
80632   {
80633   public:
80634     using CType = VkDebugUtilsMessengerEXT;
80635 
80636     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT;
80637     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
80638 
80639   public:
DebugUtilsMessengerEXT()80640     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT() VULKAN_HPP_NOEXCEPT
80641       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
80642     {}
80643 
DebugUtilsMessengerEXT(std::nullptr_t)80644     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
80645       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
80646     {}
80647 
DebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)80648     VULKAN_HPP_TYPESAFE_EXPLICIT DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT ) VULKAN_HPP_NOEXCEPT
80649       : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT )
80650     {}
80651 
80652 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)80653     DebugUtilsMessengerEXT & operator=(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT) VULKAN_HPP_NOEXCEPT
80654     {
80655       m_debugUtilsMessengerEXT = debugUtilsMessengerEXT;
80656       return *this;
80657     }
80658 #endif
80659 
operator =(std::nullptr_t)80660     DebugUtilsMessengerEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
80661     {
80662       m_debugUtilsMessengerEXT = VK_NULL_HANDLE;
80663       return *this;
80664     }
80665 
80666 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80667     auto operator<=>( DebugUtilsMessengerEXT const& ) const = default;
80668 #else
operator ==(DebugUtilsMessengerEXT const & rhs) const80669     bool operator==( DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
80670     {
80671       return m_debugUtilsMessengerEXT == rhs.m_debugUtilsMessengerEXT;
80672     }
80673 
operator !=(DebugUtilsMessengerEXT const & rhs) const80674     bool operator!=(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
80675     {
80676       return m_debugUtilsMessengerEXT != rhs.m_debugUtilsMessengerEXT;
80677     }
80678 
operator <(DebugUtilsMessengerEXT const & rhs) const80679     bool operator<(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
80680     {
80681       return m_debugUtilsMessengerEXT < rhs.m_debugUtilsMessengerEXT;
80682     }
80683 #endif
80684 
operator VkDebugUtilsMessengerEXT() const80685     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugUtilsMessengerEXT() const VULKAN_HPP_NOEXCEPT
80686     {
80687       return m_debugUtilsMessengerEXT;
80688     }
80689 
operator bool() const80690     explicit operator bool() const VULKAN_HPP_NOEXCEPT
80691     {
80692       return m_debugUtilsMessengerEXT != VK_NULL_HANDLE;
80693     }
80694 
operator !() const80695     bool operator!() const VULKAN_HPP_NOEXCEPT
80696     {
80697       return m_debugUtilsMessengerEXT == VK_NULL_HANDLE;
80698     }
80699 
80700   private:
80701     VkDebugUtilsMessengerEXT m_debugUtilsMessengerEXT;
80702   };
80703   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ), "handle and wrapper have different size!" );
80704 
80705   template <>
80706   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDebugUtilsMessengerEXT>
80707   {
80708     using type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT;
80709   };
80710 
80711   template <>
80712   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT>
80713   {
80714     using Type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT;
80715   };
80716 
80717 
80718 
80719   template <>
80720   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
80721   {
80722     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
80723   };
80724 
80725 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80726   class Instance;
80727   template <typename Dispatch> class UniqueHandleTraits<DebugReportCallbackEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
80728   using UniqueDebugReportCallbackEXT = UniqueHandle<DebugReportCallbackEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
80729   template <typename Dispatch> class UniqueHandleTraits<DebugUtilsMessengerEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
80730   using UniqueDebugUtilsMessengerEXT = UniqueHandle<DebugUtilsMessengerEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
80731   template <typename Dispatch> class UniqueHandleTraits<SurfaceKHR, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
80732   using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
80733 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80734 
80735   class Instance
80736   {
80737   public:
80738     using CType = VkInstance;
80739 
80740     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eInstance;
80741     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance;
80742 
80743   public:
Instance()80744     VULKAN_HPP_CONSTEXPR Instance() VULKAN_HPP_NOEXCEPT
80745       : m_instance(VK_NULL_HANDLE)
80746     {}
80747 
Instance(std::nullptr_t)80748     VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
80749       : m_instance(VK_NULL_HANDLE)
80750     {}
80751 
Instance(VkInstance instance)80752     VULKAN_HPP_TYPESAFE_EXPLICIT Instance( VkInstance instance ) VULKAN_HPP_NOEXCEPT
80753       : m_instance( instance )
80754     {}
80755 
80756 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkInstance instance)80757     Instance & operator=(VkInstance instance) VULKAN_HPP_NOEXCEPT
80758     {
80759       m_instance = instance;
80760       return *this;
80761     }
80762 #endif
80763 
operator =(std::nullptr_t)80764     Instance & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
80765     {
80766       m_instance = VK_NULL_HANDLE;
80767       return *this;
80768     }
80769 
80770 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80771     auto operator<=>( Instance const& ) const = default;
80772 #else
operator ==(Instance const & rhs) const80773     bool operator==( Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
80774     {
80775       return m_instance == rhs.m_instance;
80776     }
80777 
operator !=(Instance const & rhs) const80778     bool operator!=(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
80779     {
80780       return m_instance != rhs.m_instance;
80781     }
80782 
operator <(Instance const & rhs) const80783     bool operator<(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
80784     {
80785       return m_instance < rhs.m_instance;
80786     }
80787 #endif
80788 
80789 
80790 #ifdef VK_USE_PLATFORM_ANDROID_KHR
80791     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80792     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;
80793 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80794     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80795     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;
80796 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80797   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80798   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;
80799 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80800 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80801 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
80802 
80803 
80804     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80805     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;
80806 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80807     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80808     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;
80809 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80810   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80811   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;
80812 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80813 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80814 
80815 
80816     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80817     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;
80818 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80819     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80820     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;
80821 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80822   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80823   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;
80824 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80825 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80826 
80827 
80828 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
80829     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80830     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;
80831 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80832     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80833     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;
80834 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80835   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80836   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;
80837 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80838 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80839 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
80840 
80841 
80842     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80843     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;
80844 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80845     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80846     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;
80847 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80848   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80849   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;
80850 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80851 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80852 
80853 
80854     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80855     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;
80856 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80857     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80858     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;
80859 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80860   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80861   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;
80862 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80863 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80864 
80865 
80866 #ifdef VK_USE_PLATFORM_IOS_MVK
80867     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80868     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;
80869 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80870     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80871     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;
80872 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80873   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80874   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;
80875 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80876 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80877 #endif /*VK_USE_PLATFORM_IOS_MVK*/
80878 
80879 
80880 #ifdef VK_USE_PLATFORM_FUCHSIA
80881     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80882     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;
80883 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80884     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80885     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;
80886 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80887   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80888   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;
80889 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80890 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80891 #endif /*VK_USE_PLATFORM_FUCHSIA*/
80892 
80893 
80894 #ifdef VK_USE_PLATFORM_MACOS_MVK
80895     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80896     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;
80897 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80898     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80899     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;
80900 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80901   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80902   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;
80903 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80904 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80905 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
80906 
80907 
80908 #ifdef VK_USE_PLATFORM_METAL_EXT
80909     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80910     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;
80911 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80912     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80913     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;
80914 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80915   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80916   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;
80917 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80918 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80919 #endif /*VK_USE_PLATFORM_METAL_EXT*/
80920 
80921 
80922 #ifdef VK_USE_PLATFORM_GGP
80923     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80924     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;
80925 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80926     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80927     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;
80928 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80929   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80930   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;
80931 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80932 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80933 #endif /*VK_USE_PLATFORM_GGP*/
80934 
80935 
80936 #ifdef VK_USE_PLATFORM_VI_NN
80937     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80938     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;
80939 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80940     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80941     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;
80942 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80943   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80944   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;
80945 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80946 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80947 #endif /*VK_USE_PLATFORM_VI_NN*/
80948 
80949 
80950 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
80951     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80952     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;
80953 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80954     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80955     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;
80956 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80957   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80958   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;
80959 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80960 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80961 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
80962 
80963 
80964 #ifdef VK_USE_PLATFORM_WIN32_KHR
80965     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80966     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;
80967 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80968     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80969     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;
80970 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80971   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80972   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;
80973 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80974 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80975 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80976 
80977 
80978 #ifdef VK_USE_PLATFORM_XCB_KHR
80979     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80980     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;
80981 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80982     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80983     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;
80984 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80985   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80986   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;
80987 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80988 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80989 #endif /*VK_USE_PLATFORM_XCB_KHR*/
80990 
80991 
80992 #ifdef VK_USE_PLATFORM_XLIB_KHR
80993     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80994     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;
80995 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80996     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80997     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;
80998 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
80999   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81000   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;
81001 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81002 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81003 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
81004 
81005 
81006     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81007     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;
81008 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81009     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81010     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;
81011 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81012 
81013 
81014     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81015     void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81016 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81017     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81018     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;
81019 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81020 
81021 
81022     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81023     void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81024 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81025     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81026     void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81027 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81028 
81029 
81030     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81031     void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81032 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81033     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81034     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;
81035 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81036 
81037 
81038     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81039     void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81040 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81041     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81042     void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81043 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81044 
81045 
81046     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81047     void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81048 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81049     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81050     void destroy( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81051 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81052 
81053 
81054     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81055     void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81056 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81057     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81058     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;
81059 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81060 
81061 
81062     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81063     void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81064 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81065     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81066     void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81067 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81068 
81069     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81070     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;
81071 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81072     template<typename Allocator  = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81073     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroups(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81074     template<typename Allocator  = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type = 0>
81075     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81076 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81077 
81078     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81079     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;
81080 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81081     template<typename Allocator  = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81082     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroupsKHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81083     template<typename Allocator  = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type = 0>
81084     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81085 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81086 
81087     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81088     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;
81089 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81090     template<typename Allocator  = std::allocator<PhysicalDevice>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81091     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type enumeratePhysicalDevices(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81092     template<typename Allocator  = std::allocator<PhysicalDevice>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDevice>::value, int>::type = 0>
81093     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81094 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81095 
81096 
81097     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81098     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81099 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81100     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81101     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81102 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81103 
81104 
81105     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81106     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;
81107 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81108     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81109     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;
81110 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81111 
operator VkInstance() const81112     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkInstance() const VULKAN_HPP_NOEXCEPT
81113     {
81114       return m_instance;
81115     }
81116 
operator bool() const81117     explicit operator bool() const VULKAN_HPP_NOEXCEPT
81118     {
81119       return m_instance != VK_NULL_HANDLE;
81120     }
81121 
operator !() const81122     bool operator!() const VULKAN_HPP_NOEXCEPT
81123     {
81124       return m_instance == VK_NULL_HANDLE;
81125     }
81126 
81127   private:
81128     VkInstance m_instance;
81129   };
81130   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Instance ) == sizeof( VkInstance ), "handle and wrapper have different size!" );
81131 
81132   template <>
81133   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eInstance>
81134   {
81135     using type = VULKAN_HPP_NAMESPACE::Instance;
81136   };
81137 
81138   template <>
81139   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eInstance>
81140   {
81141     using Type = VULKAN_HPP_NAMESPACE::Instance;
81142   };
81143 
81144 
81145   template <>
81146   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance>
81147   {
81148     using Type = VULKAN_HPP_NAMESPACE::Instance;
81149   };
81150 
81151 
81152   template <>
81153   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Instance>
81154   {
81155     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
81156   };
81157 
81158 #ifndef VULKAN_HPP_NO_SMART_HANDLE
81159   template <typename Dispatch> class UniqueHandleTraits<Instance, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
81160   using UniqueInstance = UniqueHandle<Instance, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
81161 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81162 
81163 
81164     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81165     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;
81166 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81167     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81168     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 );
81169 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81170   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81171   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 );
81172 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81173 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81174 
81175   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81176   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;
81177 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81178   template<typename Allocator  = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81179   VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81180   template<typename Allocator  = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type = 0>
81181   VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81182 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81183 
81184   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81185   VULKAN_HPP_NODISCARD Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) VULKAN_HPP_NOEXCEPT;
81186 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81187   template<typename Allocator  = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81188   VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81189   template<typename Allocator  = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type = 0>
81190   VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81191 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81192 
81193 
81194     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81195     VULKAN_HPP_NODISCARD Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT;
81196 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81197     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81198     typename ResultValueType<uint32_t>::type enumerateInstanceVersion( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81199 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81200 
81201 
81202   template <typename Dispatch>
createInstance(const VULKAN_HPP_NAMESPACE::InstanceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Instance * pInstance,Dispatch const & d)81203   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
81204   {
81205     return static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkInstance *>( pInstance ) ) );
81206   }
81207 
81208 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81209   template <typename Dispatch>
createInstance(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)81210   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 )
81211   {
81212     VULKAN_HPP_NAMESPACE::Instance instance;
81213     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 ) ) );
81214     return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstance" );
81215   }
81216 
81217 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81218   template <typename Dispatch>
createInstanceUnique(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)81219   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 )
81220   {
81221     VULKAN_HPP_NAMESPACE::Instance instance;
81222     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 ) ) );
81223     ObjectDestroy<NoParent, Dispatch> deleter( allocator, d );
81224     return createResultValue<VULKAN_HPP_NAMESPACE::Instance, Dispatch>( result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstanceUnique", deleter );
81225   }
81226 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81227 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81228 
81229   template<typename Dispatch>
enumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d)81230   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
81231   {
81232     return static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties*>( pProperties ) ) );
81233   }
81234 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81235   template<typename Allocator , typename Dispatch>
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d)81236   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Dispatch const &d )
81237   {
81238     std::vector<ExtensionProperties,Allocator> properties;
81239     uint32_t propertyCount;
81240     Result result;
81241     do
81242     {
81243       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
81244       if ( ( result == Result::eSuccess ) && propertyCount )
81245       {
81246         properties.resize( propertyCount );
81247         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
81248       }
81249     } while ( result == Result::eIncomplete );
81250     if ( result == Result::eSuccess )
81251     {
81252       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81253       properties.resize( propertyCount );
81254     }
81255     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
81256   }
81257   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type>
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,Allocator const & vectorAllocator,Dispatch const & d)81258   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d )
81259   {
81260     std::vector<ExtensionProperties,Allocator> properties( vectorAllocator );
81261     uint32_t propertyCount;
81262     Result result;
81263     do
81264     {
81265       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
81266       if ( ( result == Result::eSuccess ) && propertyCount )
81267       {
81268         properties.resize( propertyCount );
81269         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
81270       }
81271     } while ( result == Result::eIncomplete );
81272     if ( result == Result::eSuccess )
81273     {
81274       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81275       properties.resize( propertyCount );
81276     }
81277     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
81278   }
81279 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81280 
81281   template<typename Dispatch>
enumerateInstanceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d)81282   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d) VULKAN_HPP_NOEXCEPT
81283   {
81284     return static_cast<Result>( d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast<VkLayerProperties*>( pProperties ) ) );
81285   }
81286 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81287   template<typename Allocator , typename Dispatch>
enumerateInstanceLayerProperties(Dispatch const & d)81288   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Dispatch const &d )
81289   {
81290     std::vector<LayerProperties,Allocator> properties;
81291     uint32_t propertyCount;
81292     Result result;
81293     do
81294     {
81295       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
81296       if ( ( result == Result::eSuccess ) && propertyCount )
81297       {
81298         properties.resize( propertyCount );
81299         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
81300       }
81301     } while ( result == Result::eIncomplete );
81302     if ( result == Result::eSuccess )
81303     {
81304       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81305       properties.resize( propertyCount );
81306     }
81307     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
81308   }
81309   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type>
enumerateInstanceLayerProperties(Allocator const & vectorAllocator,Dispatch const & d)81310   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d )
81311   {
81312     std::vector<LayerProperties,Allocator> properties( vectorAllocator );
81313     uint32_t propertyCount;
81314     Result result;
81315     do
81316     {
81317       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
81318       if ( ( result == Result::eSuccess ) && propertyCount )
81319       {
81320         properties.resize( propertyCount );
81321         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
81322       }
81323     } while ( result == Result::eIncomplete );
81324     if ( result == Result::eSuccess )
81325     {
81326       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81327       properties.resize( propertyCount );
81328     }
81329     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
81330   }
81331 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81332 
81333 
81334   template <typename Dispatch>
enumerateInstanceVersion(uint32_t * pApiVersion,Dispatch const & d)81335   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const & d  ) VULKAN_HPP_NOEXCEPT
81336   {
81337     return static_cast<Result>( d.vkEnumerateInstanceVersion( pApiVersion ) );
81338   }
81339 
81340 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81341   template <typename Dispatch>
enumerateInstanceVersion(Dispatch const & d)81342   VULKAN_HPP_INLINE typename ResultValueType<uint32_t>::type enumerateInstanceVersion( Dispatch const & d )
81343   {
81344     uint32_t apiVersion;
81345     Result result = static_cast<Result>( d.vkEnumerateInstanceVersion( &apiVersion ) );
81346     return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceVersion" );
81347   }
81348 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81349 
81350 
81351   template <typename Dispatch>
begin(const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo * pBeginInfo,Dispatch const & d) const81352   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81353   {
81354     return static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( pBeginInfo ) ) );
81355   }
81356 
81357 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81358   template <typename Dispatch>
begin(const CommandBufferBeginInfo & beginInfo,Dispatch const & d) const81359   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d ) const
81360   {
81361     Result result = static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) ) );
81362     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" );
81363   }
81364 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81365 
81366 
81367   template <typename Dispatch>
beginConditionalRenderingEXT(const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin,Dispatch const & d) const81368   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81369   {
81370     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( pConditionalRenderingBegin ) );
81371   }
81372 
81373 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81374   template <typename Dispatch>
beginConditionalRenderingEXT(const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin,Dispatch const & d) const81375   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81376   {
81377     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( &conditionalRenderingBegin ) );
81378   }
81379 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81380 
81381 
81382   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const81383   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81384   {
81385     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
81386   }
81387 
81388 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81389   template <typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const81390   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81391   {
81392     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
81393   }
81394 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81395 
81396 
81397   template <typename Dispatch>
beginQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,Dispatch const & d) const81398   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
81399   {
81400     d.vkCmdBeginQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
81401   }
81402 
81403 
81404   template <typename Dispatch>
beginQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,uint32_t index,Dispatch const & d) const81405   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
81406   {
81407     d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
81408   }
81409 
81410 
81411   template <typename Dispatch>
beginRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const81412   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81413   {
81414     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), static_cast<VkSubpassContents>( contents ) );
81415   }
81416 
81417 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81418   template <typename Dispatch>
beginRenderPass(const RenderPassBeginInfo & renderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const81419   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81420   {
81421     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), static_cast<VkSubpassContents>( contents ) );
81422   }
81423 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81424 
81425 
81426   template <typename Dispatch>
beginRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const81427   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
81428   {
81429     d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
81430   }
81431 
81432 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81433   template <typename Dispatch>
beginRenderPass2(const RenderPassBeginInfo & renderPassBegin,const SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const81434   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81435   {
81436     d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
81437   }
81438 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81439 
81440   template <typename Dispatch>
beginRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const81441   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
81442   {
81443     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
81444   }
81445 
81446 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81447   template <typename Dispatch>
beginRenderPass2KHR(const RenderPassBeginInfo & renderPassBegin,const SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const81448   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81449   {
81450     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
81451   }
81452 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81453 
81454 
81455   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) const81456   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
81457   {
81458     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer *>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize *>( pCounterBufferOffsets ) );
81459   }
81460 
81461 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81462   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) const81463   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
81464   {
81465 #ifdef VULKAN_HPP_NO_EXCEPTIONS
81466     VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
81467 #else
81468     if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
81469   {
81470     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
81471   }
81472 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
81473 
81474     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) );
81475   }
81476 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81477 
81478 
81479   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) const81480   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
81481   {
81482     d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), firstSet, descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets );
81483   }
81484 
81485 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81486   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) const81487   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
81488   {
81489     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() );
81490   }
81491 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81492 
81493 
81494   template <typename Dispatch>
bindIndexBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::IndexType indexType,Dispatch const & d) const81495   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
81496   {
81497     d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkIndexType>( indexType ) );
81498   }
81499 
81500 
81501   template <typename Dispatch>
bindPipeline(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,Dispatch const & d) const81502   VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81503   {
81504     d.vkCmdBindPipeline( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
81505   }
81506 
81507 
81508   template <typename Dispatch>
bindPipelineShaderGroupNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t groupIndex,Dispatch const & d) const81509   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
81510   {
81511     d.vkCmdBindPipelineShaderGroupNV( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ), groupIndex );
81512   }
81513 
81514 
81515   template <typename Dispatch>
bindShadingRateImageNV(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,Dispatch const & d) const81516   VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81517   {
81518     d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
81519   }
81520 
81521 
81522   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) const81523   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
81524   {
81525     d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer *>( pBuffers ), reinterpret_cast<const VkDeviceSize *>( pOffsets ), reinterpret_cast<const VkDeviceSize *>( pSizes ) );
81526   }
81527 
81528 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81529   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) const81530   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
81531   {
81532 #ifdef VULKAN_HPP_NO_EXCEPTIONS
81533     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
81534     VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
81535 #else
81536     if ( buffers.size() != offsets.size() )
81537   {
81538     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" );
81539   }
81540     if ( !sizes.empty() && buffers.size() != sizes.size() )
81541   {
81542     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" );
81543   }
81544 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
81545 
81546     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() ) );
81547   }
81548 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81549 
81550 
81551   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) const81552   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
81553   {
81554     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer *>( pBuffers ), reinterpret_cast<const VkDeviceSize *>( pOffsets ) );
81555   }
81556 
81557 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81558   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) const81559   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
81560   {
81561 #ifdef VULKAN_HPP_NO_EXCEPTIONS
81562     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
81563 #else
81564     if ( buffers.size() != offsets.size() )
81565   {
81566     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" );
81567   }
81568 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
81569 
81570     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast<const VkBuffer *>( buffers.data() ), reinterpret_cast<const VkDeviceSize *>( offsets.data() ) );
81571   }
81572 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81573 
81574 
81575   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) const81576   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
81577   {
81578     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 ) );
81579   }
81580 
81581 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81582   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) const81583   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
81584   {
81585 #ifdef VULKAN_HPP_NO_EXCEPTIONS
81586     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
81587     VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
81588     VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() );
81589 #else
81590     if ( buffers.size() != offsets.size() )
81591   {
81592     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()" );
81593   }
81594     if ( !sizes.empty() && buffers.size() != sizes.size() )
81595   {
81596     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != sizes.size()" );
81597   }
81598     if ( !strides.empty() && buffers.size() != strides.size() )
81599   {
81600     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()" );
81601   }
81602 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
81603 
81604     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() ) );
81605   }
81606 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81607 
81608 
81609   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) const81610   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
81611   {
81612     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 ) );
81613   }
81614 
81615 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81616   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) const81617   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
81618   {
81619     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 ) );
81620   }
81621 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81622 
81623 
81624   template <typename Dispatch>
blitImage2KHR(const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR * pBlitImageInfo,Dispatch const & d) const81625   VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81626   {
81627     d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2KHR *>( pBlitImageInfo ) );
81628   }
81629 
81630 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81631   template <typename Dispatch>
blitImage2KHR(const BlitImageInfo2KHR & blitImageInfo,Dispatch const & d) const81632   VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81633   {
81634     d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2KHR *>( &blitImageInfo ) );
81635   }
81636 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81637 
81638 
81639 #ifdef VK_ENABLE_BETA_EXTENSIONS
81640   template <typename Dispatch>
buildAccelerationStructureIndirectKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfo,VULKAN_HPP_NAMESPACE::Buffer indirectBuffer,VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset,uint32_t indirectStride,Dispatch const & d) const81641   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureIndirectKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfo, VULKAN_HPP_NAMESPACE::Buffer indirectBuffer, VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset, uint32_t indirectStride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81642   {
81643     d.vkCmdBuildAccelerationStructureIndirectKHR( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfo ), static_cast<VkBuffer>( indirectBuffer ), static_cast<VkDeviceSize>( indirectOffset ), indirectStride );
81644   }
81645 
81646 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81647   template <typename Dispatch>
buildAccelerationStructureIndirectKHR(const AccelerationStructureBuildGeometryInfoKHR & info,VULKAN_HPP_NAMESPACE::Buffer indirectBuffer,VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset,uint32_t indirectStride,Dispatch const & d) const81648   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureIndirectKHR( const AccelerationStructureBuildGeometryInfoKHR & info, VULKAN_HPP_NAMESPACE::Buffer indirectBuffer, VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset, uint32_t indirectStride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81649   {
81650     d.vkCmdBuildAccelerationStructureIndirectKHR( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( &info ), static_cast<VkBuffer>( indirectBuffer ), static_cast<VkDeviceSize>( indirectOffset ), indirectStride );
81651   }
81652 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81653 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
81654 
81655 
81656 #ifdef VK_ENABLE_BETA_EXTENSIONS
81657   template <typename Dispatch>
buildAccelerationStructureKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos,Dispatch const & d) const81658   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81659   {
81660     d.vkCmdBuildAccelerationStructureKHR( m_commandBuffer, infoCount, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfos ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR * const *>( ppOffsetInfos ) );
81661   }
81662 
81663 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81664   template <typename Dispatch>
buildAccelerationStructureKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const> const & pOffsetInfos,Dispatch const & d) const81665   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const > const & pOffsetInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
81666   {
81667 #ifdef VULKAN_HPP_NO_EXCEPTIONS
81668     VULKAN_HPP_ASSERT( infos.size() == pOffsetInfos.size() );
81669 #else
81670     if ( infos.size() != pOffsetInfos.size() )
81671   {
81672     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructureKHR: infos.size() != pOffsetInfos.size()" );
81673   }
81674 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
81675 
81676     d.vkCmdBuildAccelerationStructureKHR( m_commandBuffer, infos.size(), reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR * const *>( pOffsetInfos.data() ) );
81677   }
81678 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81679 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
81680 
81681 
81682   template <typename Dispatch>
buildAccelerationStructureNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV * pInfo,VULKAN_HPP_NAMESPACE::Buffer instanceData,VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset,VULKAN_HPP_NAMESPACE::Bool32 update,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src,VULKAN_HPP_NAMESPACE::Buffer scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset,Dispatch const & d) const81683   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV* pInfo, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81684   {
81685     d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureInfoNV *>( pInfo ), static_cast<VkBuffer>( instanceData ), static_cast<VkDeviceSize>( instanceOffset ), static_cast<VkBool32>( update ), static_cast<VkAccelerationStructureKHR>( dst ), static_cast<VkAccelerationStructureKHR>( src ), static_cast<VkBuffer>( scratch ), static_cast<VkDeviceSize>( scratchOffset ) );
81686   }
81687 
81688 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81689   template <typename Dispatch>
buildAccelerationStructureNV(const AccelerationStructureInfoNV & info,VULKAN_HPP_NAMESPACE::Buffer instanceData,VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset,VULKAN_HPP_NAMESPACE::Bool32 update,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src,VULKAN_HPP_NAMESPACE::Buffer scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset,Dispatch const & d) const81690   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81691   {
81692     d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureInfoNV *>( &info ), static_cast<VkBuffer>( instanceData ), static_cast<VkDeviceSize>( instanceOffset ), static_cast<VkBool32>( update ), static_cast<VkAccelerationStructureKHR>( dst ), static_cast<VkAccelerationStructureKHR>( src ), static_cast<VkBuffer>( scratch ), static_cast<VkDeviceSize>( scratchOffset ) );
81693   }
81694 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81695 
81696 
81697   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) const81698   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
81699   {
81700     d.vkCmdClearAttachments( m_commandBuffer, attachmentCount, reinterpret_cast<const VkClearAttachment *>( pAttachments ), rectCount, reinterpret_cast<const VkClearRect *>( pRects ) );
81701   }
81702 
81703 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81704   template <typename Dispatch>
clearAttachments(ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments,ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects,Dispatch const & d) const81705   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
81706   {
81707     d.vkCmdClearAttachments( m_commandBuffer, attachments.size(), reinterpret_cast<const VkClearAttachment *>( attachments.data() ), rects.size(), reinterpret_cast<const VkClearRect *>( rects.data() ) );
81708   }
81709 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81710 
81711 
81712   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) const81713   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
81714   {
81715     d.vkCmdClearColorImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearColorValue *>( pColor ), rangeCount, reinterpret_cast<const VkImageSubresourceRange *>( pRanges ) );
81716   }
81717 
81718 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81719   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) const81720   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
81721   {
81722     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() ) );
81723   }
81724 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81725 
81726 
81727   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) const81728   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
81729   {
81730     d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearDepthStencilValue *>( pDepthStencil ), rangeCount, reinterpret_cast<const VkImageSubresourceRange *>( pRanges ) );
81731   }
81732 
81733 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81734   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) const81735   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
81736   {
81737     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() ) );
81738   }
81739 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81740 
81741 
81742 #ifdef VK_ENABLE_BETA_EXTENSIONS
81743   template <typename Dispatch>
copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const81744   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81745   {
81746     d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( pInfo ) );
81747   }
81748 
81749 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81750   template <typename Dispatch>
copyAccelerationStructureKHR(const CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const81751   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81752   {
81753     d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) );
81754   }
81755 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81756 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
81757 
81758 
81759   template <typename Dispatch>
copyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src,VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode,Dispatch const & d) const81760   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81761   {
81762     d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast<VkAccelerationStructureKHR>( dst ), static_cast<VkAccelerationStructureKHR>( src ), static_cast<VkCopyAccelerationStructureModeKHR>( mode ) );
81763   }
81764 
81765 
81766 #ifdef VK_ENABLE_BETA_EXTENSIONS
81767   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const81768   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81769   {
81770     d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( pInfo ) );
81771   }
81772 
81773 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81774   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const81775   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81776   {
81777     d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) );
81778   }
81779 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81780 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
81781 
81782 
81783   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) const81784   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
81785   {
81786     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferCopy *>( pRegions ) );
81787   }
81788 
81789 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81790   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) const81791   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
81792   {
81793     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regions.size(), reinterpret_cast<const VkBufferCopy *>( regions.data() ) );
81794   }
81795 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81796 
81797 
81798   template <typename Dispatch>
copyBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR * pCopyBufferInfo,Dispatch const & d) const81799   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81800   {
81801     d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2KHR *>( pCopyBufferInfo ) );
81802   }
81803 
81804 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81805   template <typename Dispatch>
copyBuffer2KHR(const CopyBufferInfo2KHR & copyBufferInfo,Dispatch const & d) const81806   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81807   {
81808     d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2KHR *>( &copyBufferInfo ) );
81809   }
81810 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81811 
81812 
81813   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) const81814   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
81815   {
81816     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkBufferImageCopy *>( pRegions ) );
81817   }
81818 
81819 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81820   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) const81821   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
81822   {
81823     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size(), reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) );
81824   }
81825 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81826 
81827 
81828   template <typename Dispatch>
copyBufferToImage2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR * pCopyBufferToImageInfo,Dispatch const & d) const81829   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81830   {
81831     d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferToImageInfo2KHR *>( pCopyBufferToImageInfo ) );
81832   }
81833 
81834 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81835   template <typename Dispatch>
copyBufferToImage2KHR(const CopyBufferToImageInfo2KHR & copyBufferToImageInfo,Dispatch const & d) const81836   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81837   {
81838     d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferToImageInfo2KHR *>( &copyBufferToImageInfo ) );
81839   }
81840 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81841 
81842 
81843   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) const81844   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
81845   {
81846     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 ) );
81847   }
81848 
81849 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81850   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) const81851   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
81852   {
81853     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() ) );
81854   }
81855 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81856 
81857 
81858   template <typename Dispatch>
copyImage2KHR(const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR * pCopyImageInfo,Dispatch const & d) const81859   VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81860   {
81861     d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2KHR *>( pCopyImageInfo ) );
81862   }
81863 
81864 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81865   template <typename Dispatch>
copyImage2KHR(const CopyImageInfo2KHR & copyImageInfo,Dispatch const & d) const81866   VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81867   {
81868     d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2KHR *>( &copyImageInfo ) );
81869   }
81870 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81871 
81872 
81873   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) const81874   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
81875   {
81876     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferImageCopy *>( pRegions ) );
81877   }
81878 
81879 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81880   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) const81881   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
81882   {
81883     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regions.size(), reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) );
81884   }
81885 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81886 
81887 
81888   template <typename Dispatch>
copyImageToBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR * pCopyImageToBufferInfo,Dispatch const & d) const81889   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81890   {
81891     d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageToBufferInfo2KHR *>( pCopyImageToBufferInfo ) );
81892   }
81893 
81894 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81895   template <typename Dispatch>
copyImageToBuffer2KHR(const CopyImageToBufferInfo2KHR & copyImageToBufferInfo,Dispatch const & d) const81896   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81897   {
81898     d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageToBufferInfo2KHR *>( &copyImageToBufferInfo ) );
81899   }
81900 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81901 
81902 
81903 #ifdef VK_ENABLE_BETA_EXTENSIONS
81904   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const81905   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81906   {
81907     d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( pInfo ) );
81908   }
81909 
81910 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81911   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const81912   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81913   {
81914     d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) );
81915   }
81916 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81917 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
81918 
81919 
81920   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) const81921   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
81922   {
81923     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 ) );
81924   }
81925 
81926 
81927   template <typename Dispatch>
debugMarkerBeginEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const81928   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81929   {
81930     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
81931   }
81932 
81933 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81934   template <typename Dispatch>
debugMarkerBeginEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const81935   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81936   {
81937     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
81938   }
81939 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81940 
81941 
81942   template <typename Dispatch>
debugMarkerEndEXT(Dispatch const & d) const81943   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81944   {
81945     d.vkCmdDebugMarkerEndEXT( m_commandBuffer );
81946   }
81947 
81948 
81949   template <typename Dispatch>
debugMarkerInsertEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const81950   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81951   {
81952     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
81953   }
81954 
81955 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81956   template <typename Dispatch>
debugMarkerInsertEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const81957   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81958   {
81959     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
81960   }
81961 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81962 
81963 
81964   template <typename Dispatch>
dispatch(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const81965   VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81966   {
81967     d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
81968   }
81969 
81970 
81971   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) const81972   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
81973   {
81974     d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
81975   }
81976 
81977   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) const81978   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
81979   {
81980     d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
81981   }
81982 
81983 
81984   template <typename Dispatch>
dispatchIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const81985   VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81986   {
81987     d.vkCmdDispatchIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
81988   }
81989 
81990 
81991   template <typename Dispatch>
draw(uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance,Dispatch const & d) const81992   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
81993   {
81994     d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
81995   }
81996 
81997 
81998   template <typename Dispatch>
drawIndexed(uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance,Dispatch const & d) const81999   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
82000   {
82001     d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
82002   }
82003 
82004 
82005   template <typename Dispatch>
drawIndexedIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const82006   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
82007   {
82008     d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
82009   }
82010 
82011 
82012   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) const82013   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
82014   {
82015     d.vkCmdDrawIndexedIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82016   }
82017 
82018   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) const82019   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
82020   {
82021     d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82022   }
82023 
82024   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) const82025   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
82026   {
82027     d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82028   }
82029 
82030 
82031   template <typename Dispatch>
drawIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const82032   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
82033   {
82034     d.vkCmdDrawIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
82035   }
82036 
82037 
82038   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) const82039   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
82040   {
82041     d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast<VkBuffer>( counterBuffer ), static_cast<VkDeviceSize>( counterBufferOffset ), counterOffset, vertexStride );
82042   }
82043 
82044 
82045   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) const82046   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
82047   {
82048     d.vkCmdDrawIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82049   }
82050 
82051   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) const82052   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
82053   {
82054     d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82055   }
82056 
82057   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) const82058   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
82059   {
82060     d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82061   }
82062 
82063 
82064   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) const82065   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
82066   {
82067     d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82068   }
82069 
82070 
82071   template <typename Dispatch>
drawMeshTasksIndirectNV(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const82072   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
82073   {
82074     d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
82075   }
82076 
82077 
82078   template <typename Dispatch>
drawMeshTasksNV(uint32_t taskCount,uint32_t firstTask,Dispatch const & d) const82079   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82080   {
82081     d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask );
82082   }
82083 
82084 
82085   template <typename Dispatch>
endConditionalRenderingEXT(Dispatch const & d) const82086   VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82087   {
82088     d.vkCmdEndConditionalRenderingEXT( m_commandBuffer );
82089   }
82090 
82091 
82092   template <typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const82093   VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82094   {
82095     d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer );
82096   }
82097 
82098 
82099   template <typename Dispatch>
endQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const82100   VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82101   {
82102     d.vkCmdEndQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query );
82103   }
82104 
82105 
82106   template <typename Dispatch>
endQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,uint32_t index,Dispatch const & d) const82107   VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82108   {
82109     d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, index );
82110   }
82111 
82112 
82113   template <typename Dispatch>
endRenderPass(Dispatch const & d) const82114   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82115   {
82116     d.vkCmdEndRenderPass( m_commandBuffer );
82117   }
82118 
82119 
82120   template <typename Dispatch>
endRenderPass2(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const82121   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82122   {
82123     d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
82124   }
82125 
82126 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82127   template <typename Dispatch>
endRenderPass2(const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const82128   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82129   {
82130     d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
82131   }
82132 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82133 
82134   template <typename Dispatch>
endRenderPass2KHR(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const82135   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82136   {
82137     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
82138   }
82139 
82140 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82141   template <typename Dispatch>
endRenderPass2KHR(const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const82142   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82143   {
82144     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
82145   }
82146 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82147 
82148 
82149   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) const82150   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
82151   {
82152     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer *>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize *>( pCounterBufferOffsets ) );
82153   }
82154 
82155 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82156   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) const82157   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
82158   {
82159 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82160     VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
82161 #else
82162     if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
82163   {
82164     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
82165   }
82166 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82167 
82168     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) );
82169   }
82170 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82171 
82172 
82173   template <typename Dispatch>
executeCommands(uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const82174   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82175   {
82176     d.vkCmdExecuteCommands( m_commandBuffer, commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
82177   }
82178 
82179 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82180   template <typename Dispatch>
executeCommands(ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const82181   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82182   {
82183     d.vkCmdExecuteCommands( m_commandBuffer, commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
82184   }
82185 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82186 
82187 
82188   template <typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const82189   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82190   {
82191     d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
82192   }
82193 
82194 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82195   template <typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const82196   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82197   {
82198     d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
82199   }
82200 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82201 
82202 
82203   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) const82204   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
82205   {
82206     d.vkCmdFillBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( size ), data );
82207   }
82208 
82209 
82210   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const82211   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82212   {
82213     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
82214   }
82215 
82216 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82217   template <typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const82218   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82219   {
82220     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
82221   }
82222 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82223 
82224 
82225   template <typename Dispatch>
nextSubpass(VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const82226   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82227   {
82228     d.vkCmdNextSubpass( m_commandBuffer, static_cast<VkSubpassContents>( contents ) );
82229   }
82230 
82231 
82232   template <typename Dispatch>
nextSubpass2(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const82233   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
82234   {
82235     d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
82236   }
82237 
82238 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82239   template <typename Dispatch>
nextSubpass2(const SubpassBeginInfo & subpassBeginInfo,const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const82240   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82241   {
82242     d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
82243   }
82244 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82245 
82246   template <typename Dispatch>
nextSubpass2KHR(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const82247   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
82248   {
82249     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
82250   }
82251 
82252 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82253   template <typename Dispatch>
nextSubpass2KHR(const SubpassBeginInfo & subpassBeginInfo,const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const82254   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82255   {
82256     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
82257   }
82258 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82259 
82260 
82261   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) const82262   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
82263   {
82264     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 ) );
82265   }
82266 
82267 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82268   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) const82269   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
82270   {
82271     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() ) );
82272   }
82273 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82274 
82275 
82276   template <typename Dispatch>
preprocessGeneratedCommandsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const82277   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82278   {
82279     d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
82280   }
82281 
82282 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82283   template <typename Dispatch>
preprocessGeneratedCommandsNV(const GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const82284   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82285   {
82286     d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
82287   }
82288 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82289 
82290 
82291   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) const82292   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
82293   {
82294     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, size, pValues );
82295   }
82296 
82297 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82298   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) const82299   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
82300   {
82301     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, values.size() * sizeof( T ), reinterpret_cast<const void *>( values.data() ) );
82302   }
82303 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82304 
82305 
82306   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) const82307   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
82308   {
82309     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ) );
82310   }
82311 
82312 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82313   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) const82314   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
82315   {
82316     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWrites.size(), reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ) );
82317   }
82318 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82319 
82320 
82321   template <typename Dispatch>
pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,const void * pData,Dispatch const & d) const82322   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
82323   {
82324     d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), static_cast<VkPipelineLayout>( layout ), set, pData );
82325   }
82326 
82327 
82328   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const82329   VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82330   {
82331     d.vkCmdResetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
82332   }
82333 
82334 
82335   template <typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const82336   VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82337   {
82338     d.vkCmdResetQueryPool( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
82339   }
82340 
82341 
82342   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) const82343   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
82344   {
82345     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 ) );
82346   }
82347 
82348 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82349   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) const82350   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
82351   {
82352     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() ) );
82353   }
82354 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82355 
82356 
82357   template <typename Dispatch>
resolveImage2KHR(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR * pResolveImageInfo,Dispatch const & d) const82358   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82359   {
82360     d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2KHR *>( pResolveImageInfo ) );
82361   }
82362 
82363 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82364   template <typename Dispatch>
resolveImage2KHR(const ResolveImageInfo2KHR & resolveImageInfo,Dispatch const & d) const82365   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82366   {
82367     d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2KHR *>( &resolveImageInfo ) );
82368   }
82369 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82370 
82371 
82372   template <typename Dispatch>
setBlendConstants(const float blendConstants[4],Dispatch const & d) const82373   VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82374   {
82375     d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
82376   }
82377 
82378 
82379   template <typename Dispatch>
setCheckpointNV(const void * pCheckpointMarker,Dispatch const & d) const82380   VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82381   {
82382     d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker );
82383   }
82384 
82385 
82386   template <typename Dispatch>
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders,Dispatch const & d) const82387   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
82388   {
82389     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrderCount, reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( pCustomSampleOrders ) );
82390   }
82391 
82392 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82393   template <typename Dispatch>
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders,Dispatch const & d) const82394   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
82395   {
82396     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrders.size(), reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( customSampleOrders.data() ) );
82397   }
82398 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82399 
82400 
82401   template <typename Dispatch>
setCullModeEXT(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode,Dispatch const & d) const82402   VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82403   {
82404     d.vkCmdSetCullModeEXT( m_commandBuffer, static_cast<VkCullModeFlags>( cullMode ) );
82405   }
82406 
82407 
82408   template <typename Dispatch>
setDepthBias(float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor,Dispatch const & d) const82409   VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82410   {
82411     d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
82412   }
82413 
82414 
82415   template <typename Dispatch>
setDepthBounds(float minDepthBounds,float maxDepthBounds,Dispatch const & d) const82416   VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82417   {
82418     d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
82419   }
82420 
82421 
82422   template <typename Dispatch>
setDepthBoundsTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable,Dispatch const & d) const82423   VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82424   {
82425     d.vkCmdSetDepthBoundsTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthBoundsTestEnable ) );
82426   }
82427 
82428 
82429   template <typename Dispatch>
setDepthCompareOpEXT(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp,Dispatch const & d) const82430   VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82431   {
82432     d.vkCmdSetDepthCompareOpEXT( m_commandBuffer, static_cast<VkCompareOp>( depthCompareOp ) );
82433   }
82434 
82435 
82436   template <typename Dispatch>
setDepthTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable,Dispatch const & d) const82437   VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82438   {
82439     d.vkCmdSetDepthTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthTestEnable ) );
82440   }
82441 
82442 
82443   template <typename Dispatch>
setDepthWriteEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable,Dispatch const & d) const82444   VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82445   {
82446     d.vkCmdSetDepthWriteEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthWriteEnable ) );
82447   }
82448 
82449 
82450   template <typename Dispatch>
setDeviceMask(uint32_t deviceMask,Dispatch const & d) const82451   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82452   {
82453     d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask );
82454   }
82455 
82456   template <typename Dispatch>
setDeviceMaskKHR(uint32_t deviceMask,Dispatch const & d) const82457   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82458   {
82459     d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask );
82460   }
82461 
82462 
82463   template <typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles,Dispatch const & d) const82464   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
82465   {
82466     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangleCount, reinterpret_cast<const VkRect2D *>( pDiscardRectangles ) );
82467   }
82468 
82469 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82470   template <typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles,Dispatch const & d) const82471   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82472   {
82473     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangles.size(), reinterpret_cast<const VkRect2D *>( discardRectangles.data() ) );
82474   }
82475 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82476 
82477 
82478   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const82479   VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82480   {
82481     d.vkCmdSetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
82482   }
82483 
82484 
82485   template <typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors,Dispatch const & d) const82486   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
82487   {
82488     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast<const VkRect2D *>( pExclusiveScissors ) );
82489   }
82490 
82491 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82492   template <typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors,Dispatch const & d) const82493   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82494   {
82495     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size(), reinterpret_cast<const VkRect2D *>( exclusiveScissors.data() ) );
82496   }
82497 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82498 
82499 
82500   template <typename Dispatch>
setFragmentShadingRateKHR(const VULKAN_HPP_NAMESPACE::Extent2D * pFragmentSize,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],Dispatch const & d) const82501   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
82502   {
82503     d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, reinterpret_cast<const VkExtent2D *>( pFragmentSize ), reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR*>( combinerOps ) );
82504   }
82505 
82506 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82507   template <typename Dispatch>
setFragmentShadingRateKHR(const Extent2D & fragmentSize,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],Dispatch const & d) const82508   VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82509   {
82510     d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, reinterpret_cast<const VkExtent2D *>( &fragmentSize ), reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR*>( combinerOps ) );
82511   }
82512 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82513 
82514 
82515   template <typename Dispatch>
setFrontFaceEXT(VULKAN_HPP_NAMESPACE::FrontFace frontFace,Dispatch const & d) const82516   VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82517   {
82518     d.vkCmdSetFrontFaceEXT( m_commandBuffer, static_cast<VkFrontFace>( frontFace ) );
82519   }
82520 
82521 
82522   template <typename Dispatch>
setLineStippleEXT(uint32_t lineStippleFactor,uint16_t lineStipplePattern,Dispatch const & d) const82523   VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82524   {
82525     d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern );
82526   }
82527 
82528 
82529   template <typename Dispatch>
setLineWidth(float lineWidth,Dispatch const & d) const82530   VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82531   {
82532     d.vkCmdSetLineWidth( m_commandBuffer, lineWidth );
82533   }
82534 
82535 
82536   template <typename Dispatch>
setPerformanceMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const82537   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82538   {
82539     return static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( pMarkerInfo ) ) );
82540   }
82541 
82542 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82543   template <typename Dispatch>
setPerformanceMarkerINTEL(const PerformanceMarkerInfoINTEL & markerInfo,Dispatch const & d) const82544   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d ) const
82545   {
82546     Result result = static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) ) );
82547     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" );
82548   }
82549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82550 
82551 
82552   template <typename Dispatch>
setPerformanceOverrideINTEL(const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL * pOverrideInfo,Dispatch const & d) const82553   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82554   {
82555     return static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( pOverrideInfo ) ) );
82556   }
82557 
82558 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82559   template <typename Dispatch>
setPerformanceOverrideINTEL(const PerformanceOverrideInfoINTEL & overrideInfo,Dispatch const & d) const82560   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d ) const
82561   {
82562     Result result = static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) ) );
82563     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" );
82564   }
82565 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82566 
82567 
82568   template <typename Dispatch>
setPerformanceStreamMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const82569   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82570   {
82571     return static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( pMarkerInfo ) ) );
82572   }
82573 
82574 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82575   template <typename Dispatch>
setPerformanceStreamMarkerINTEL(const PerformanceStreamMarkerInfoINTEL & markerInfo,Dispatch const & d) const82576   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d ) const
82577   {
82578     Result result = static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) ) );
82579     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" );
82580   }
82581 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82582 
82583 
82584   template <typename Dispatch>
setPrimitiveTopologyEXT(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology,Dispatch const & d) const82585   VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82586   {
82587     d.vkCmdSetPrimitiveTopologyEXT( m_commandBuffer, static_cast<VkPrimitiveTopology>( primitiveTopology ) );
82588   }
82589 
82590 
82591   template <typename Dispatch>
setSampleLocationsEXT(const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT * pSampleLocationsInfo,Dispatch const & d) const82592   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82593   {
82594     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT *>( pSampleLocationsInfo ) );
82595   }
82596 
82597 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82598   template <typename Dispatch>
setSampleLocationsEXT(const SampleLocationsInfoEXT & sampleLocationsInfo,Dispatch const & d) const82599   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82600   {
82601     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT *>( &sampleLocationsInfo ) );
82602   }
82603 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82604 
82605 
82606   template <typename Dispatch>
setScissor(uint32_t firstScissor,uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const82607   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
82608   {
82609     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
82610   }
82611 
82612 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82613   template <typename Dispatch>
setScissor(uint32_t firstScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,Dispatch const & d) const82614   VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82615   {
82616     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
82617   }
82618 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82619 
82620 
82621   template <typename Dispatch>
setScissorWithCountEXT(uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const82622   VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82623   {
82624     d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
82625   }
82626 
82627 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82628   template <typename Dispatch>
setScissorWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,Dispatch const & d) const82629   VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82630   {
82631     d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
82632   }
82633 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82634 
82635 
82636   template <typename Dispatch>
setStencilCompareMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t compareMask,Dispatch const & d) const82637   VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82638   {
82639     d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
82640   }
82641 
82642 
82643   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) const82644   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
82645   {
82646     d.vkCmdSetStencilOpEXT( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), static_cast<VkStencilOp>( failOp ), static_cast<VkStencilOp>( passOp ), static_cast<VkStencilOp>( depthFailOp ), static_cast<VkCompareOp>( compareOp ) );
82647   }
82648 
82649 
82650   template <typename Dispatch>
setStencilReference(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t reference,Dispatch const & d) const82651   VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82652   {
82653     d.vkCmdSetStencilReference( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), reference );
82654   }
82655 
82656 
82657   template <typename Dispatch>
setStencilTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable,Dispatch const & d) const82658   VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82659   {
82660     d.vkCmdSetStencilTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( stencilTestEnable ) );
82661   }
82662 
82663 
82664   template <typename Dispatch>
setStencilWriteMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t writeMask,Dispatch const & d) const82665   VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82666   {
82667     d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
82668   }
82669 
82670 
82671   template <typename Dispatch>
setViewport(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const82672   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
82673   {
82674     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
82675   }
82676 
82677 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82678   template <typename Dispatch>
setViewport(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,Dispatch const & d) const82679   VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82680   {
82681     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
82682   }
82683 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82684 
82685 
82686   template <typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes,Dispatch const & d) const82687   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
82688   {
82689     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkShadingRatePaletteNV *>( pShadingRatePalettes ) );
82690   }
82691 
82692 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82693   template <typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes,Dispatch const & d) const82694   VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82695   {
82696     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, shadingRatePalettes.size(), reinterpret_cast<const VkShadingRatePaletteNV *>( shadingRatePalettes.data() ) );
82697   }
82698 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82699 
82700 
82701   template <typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings,Dispatch const & d) const82702   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
82703   {
82704     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewportWScalingNV *>( pViewportWScalings ) );
82705   }
82706 
82707 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82708   template <typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings,Dispatch const & d) const82709   VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82710   {
82711     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportWScalings.size(), reinterpret_cast<const VkViewportWScalingNV *>( viewportWScalings.data() ) );
82712   }
82713 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82714 
82715 
82716   template <typename Dispatch>
setViewportWithCountEXT(uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const82717   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82718   {
82719     d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
82720   }
82721 
82722 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82723   template <typename Dispatch>
setViewportWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,Dispatch const & d) const82724   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82725   {
82726     d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
82727   }
82728 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82729 
82730 
82731 #ifdef VK_ENABLE_BETA_EXTENSIONS
82732   template <typename Dispatch>
traceRaysIndirectKHR(const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pRaygenShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pMissShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pHitShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pCallableShaderBindingTable,VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const82733   VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pCallableShaderBindingTable, VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82734   {
82735     d.vkCmdTraceRaysIndirectKHR( m_commandBuffer, reinterpret_cast<const VkStridedBufferRegionKHR *>( pRaygenShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pMissShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pHitShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pCallableShaderBindingTable ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
82736   }
82737 
82738 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82739   template <typename Dispatch>
traceRaysIndirectKHR(const StridedBufferRegionKHR & raygenShaderBindingTable,const StridedBufferRegionKHR & missShaderBindingTable,const StridedBufferRegionKHR & hitShaderBindingTable,const StridedBufferRegionKHR & callableShaderBindingTable,VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const82740   VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const StridedBufferRegionKHR & raygenShaderBindingTable, const StridedBufferRegionKHR & missShaderBindingTable, const StridedBufferRegionKHR & hitShaderBindingTable, const StridedBufferRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82741   {
82742     d.vkCmdTraceRaysIndirectKHR( m_commandBuffer, reinterpret_cast<const VkStridedBufferRegionKHR *>( &raygenShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &missShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &hitShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &callableShaderBindingTable ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
82743   }
82744 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82745 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82746 
82747 
82748 #ifdef VK_ENABLE_BETA_EXTENSIONS
82749   template <typename Dispatch>
traceRaysKHR(const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pRaygenShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pMissShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pHitShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const82750   VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82751   {
82752     d.vkCmdTraceRaysKHR( m_commandBuffer, reinterpret_cast<const VkStridedBufferRegionKHR *>( pRaygenShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pMissShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pHitShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pCallableShaderBindingTable ), width, height, depth );
82753   }
82754 
82755 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82756   template <typename Dispatch>
traceRaysKHR(const StridedBufferRegionKHR & raygenShaderBindingTable,const StridedBufferRegionKHR & missShaderBindingTable,const StridedBufferRegionKHR & hitShaderBindingTable,const StridedBufferRegionKHR & callableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const82757   VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const StridedBufferRegionKHR & raygenShaderBindingTable, const StridedBufferRegionKHR & missShaderBindingTable, const StridedBufferRegionKHR & hitShaderBindingTable, const StridedBufferRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82758   {
82759     d.vkCmdTraceRaysKHR( m_commandBuffer, reinterpret_cast<const VkStridedBufferRegionKHR *>( &raygenShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &missShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &hitShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &callableShaderBindingTable ), width, height, depth );
82760   }
82761 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82762 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82763 
82764 
82765   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) const82766   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
82767   {
82768     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 );
82769   }
82770 
82771 
82772   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) const82773   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
82774   {
82775     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( dataSize ), pData );
82776   }
82777 
82778 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82779   template <typename T, typename Dispatch>
updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,ArrayProxy<const T> const & data,Dispatch const & d) const82780   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
82781   {
82782     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), data.size() * sizeof( T ), reinterpret_cast<const void *>( data.data() ) );
82783   }
82784 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82785 
82786 
82787   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) const82788   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
82789   {
82790     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 ) );
82791   }
82792 
82793 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82794   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) const82795   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
82796   {
82797     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() ) );
82798   }
82799 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82800 
82801 
82802 #ifdef VK_ENABLE_BETA_EXTENSIONS
82803   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) const82804   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
82805   {
82806     d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR *>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
82807   }
82808 
82809 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82810   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) const82811   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
82812   {
82813     d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructures.size(), reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
82814   }
82815 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82816 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82817 
82818   template <typename Dispatch>
writeAccelerationStructuresPropertiesNV(uint32_t accelerationStructureCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const82819   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82820   {
82821     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR *>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
82822   }
82823 
82824 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82825   template <typename Dispatch>
writeAccelerationStructuresPropertiesNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const82826   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82827   {
82828     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructures.size(), reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
82829   }
82830 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82831 
82832 
82833   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) const82834   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
82835   {
82836     d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), marker );
82837   }
82838 
82839 
82840   template <typename Dispatch>
writeTimestamp(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const82841   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
82842   {
82843     d.vkCmdWriteTimestamp( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
82844   }
82845 
82846 
82847 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
82848   template <typename Dispatch>
end(Dispatch const & d) const82849   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::end( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82850   {
82851     return static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
82852   }
82853 #else
82854   template <typename Dispatch>
end(Dispatch const & d) const82855   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::end( Dispatch const & d ) const
82856   {
82857     Result result = static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
82858     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" );
82859   }
82860 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82861 
82862 
82863 
82864 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
82865   template <typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const82866   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82867   {
82868     return static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
82869   }
82870 #else
82871   template <typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const82872   VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const
82873   {
82874     Result result = static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
82875     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" );
82876   }
82877 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82878 
82879 
82880 
82881 #ifdef VK_USE_PLATFORM_WIN32_KHR
82882 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
82883   template <typename Dispatch>
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const82884   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82885   {
82886     return static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
82887   }
82888 #else
82889   template <typename Dispatch>
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const82890   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
82891   {
82892     Result result = static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
82893     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireFullScreenExclusiveModeEXT" );
82894   }
82895 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82896 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
82897 
82898 
82899 
82900   template <typename Dispatch>
acquireNextImage2KHR(const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex,Dispatch const & d) const82901   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
82902   {
82903     return static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR *>( pAcquireInfo ), pImageIndex ) );
82904   }
82905 
82906 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82907   template <typename Dispatch>
acquireNextImage2KHR(const AcquireNextImageInfoKHR & acquireInfo,Dispatch const & d) const82908   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d ) const
82909   {
82910     uint32_t imageIndex;
82911     Result result = static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR *>( &acquireInfo ), &imageIndex ) );
82912     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 } );
82913   }
82914 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82915 
82916 
82917   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) const82918   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
82919   {
82920     return static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), pImageIndex ) );
82921   }
82922 
82923 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82924   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) const82925   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
82926   {
82927     uint32_t imageIndex;
82928     Result result = static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), &imageIndex ) );
82929     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 } );
82930   }
82931 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82932 
82933 
82934   template <typename Dispatch>
acquirePerformanceConfigurationINTEL(const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL * pConfiguration,Dispatch const & d) const82935   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
82936   {
82937     return static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( pAcquireInfo ), reinterpret_cast< VkPerformanceConfigurationINTEL *>( pConfiguration ) ) );
82938   }
82939 
82940 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82941   template <typename Dispatch>
acquirePerformanceConfigurationINTEL(const PerformanceConfigurationAcquireInfoINTEL & acquireInfo,Dispatch const & d) const82942   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
82943   {
82944     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
82945     Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ), reinterpret_cast< VkPerformanceConfigurationINTEL *>( &configuration ) ) );
82946     return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTEL" );
82947   }
82948 
82949 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
82950   template <typename Dispatch>
acquirePerformanceConfigurationINTELUnique(const PerformanceConfigurationAcquireInfoINTEL & acquireInfo,Dispatch const & d) const82951   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
82952   {
82953     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
82954     Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ), reinterpret_cast< VkPerformanceConfigurationINTEL *>( &configuration ) ) );
82955     ObjectRelease<Device, Dispatch> deleter( *this, d );
82956     return createResultValue<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL, Dispatch>( result, configuration, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTELUnique", deleter );
82957   }
82958 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82959 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82960 
82961 
82962   template <typename Dispatch>
acquireProfilingLockKHR(const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR * pInfo,Dispatch const & d) const82963   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82964   {
82965     return static_cast<Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( pInfo ) ) );
82966   }
82967 
82968 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82969   template <typename Dispatch>
acquireProfilingLockKHR(const AcquireProfilingLockInfoKHR & info,Dispatch const & d) const82970   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d ) const
82971   {
82972     Result result = static_cast<Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) ) );
82973     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" );
82974   }
82975 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82976 
82977 
82978   template <typename Dispatch>
allocateCommandBuffers(const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const82979   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
82980   {
82981     return static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( pAllocateInfo ), reinterpret_cast< VkCommandBuffer *>( pCommandBuffers ) ) );
82982   }
82983 
82984 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82985   template <typename CommandBufferAllocator, typename Dispatch>
allocateCommandBuffers(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const82986   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
82987   {
82988     std::vector<CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount );
82989     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
82990     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
82991   }
82992 
82993   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) const82994   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
82995   {
82996     std::vector<CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount, commandBufferAllocator );
82997     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
82998     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
82999   }
83000 
83001 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83002   template <typename Dispatch, typename CommandBufferAllocator>
allocateCommandBuffersUnique(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const83003   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
83004   {
83005     std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers;
83006     std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
83007     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
83008     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83009     {
83010       uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
83011       PoolFree<Device, CommandPool, Dispatch> deleter( *this, allocateInfo.commandPool, d );
83012       for ( size_t i=0; i < allocateInfo.commandBufferCount; i++ )
83013       {
83014         uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffers[i], deleter ) );
83015       }
83016     }
83017     return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
83018   }
83019 
83020   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) const83021   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
83022   {
83023     std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers( commandBufferAllocator );
83024     std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
83025     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
83026     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83027     {
83028       uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
83029       PoolFree<Device, CommandPool, Dispatch> deleter( *this, allocateInfo.commandPool, d );
83030       for ( size_t i=0; i < allocateInfo.commandBufferCount; i++ )
83031       {
83032         uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffers[i], deleter ) );
83033       }
83034     }
83035     return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
83036   }
83037 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83038 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83039 
83040 
83041   template <typename Dispatch>
allocateDescriptorSets(const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const83042   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
83043   {
83044     return static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( pAllocateInfo ), reinterpret_cast< VkDescriptorSet *>( pDescriptorSets ) ) );
83045   }
83046 
83047 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83048   template <typename DescriptorSetAllocator, typename Dispatch>
allocateDescriptorSets(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const83049   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
83050   {
83051     std::vector<DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount );
83052     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
83053     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
83054   }
83055 
83056   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) const83057   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
83058   {
83059     std::vector<DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount, descriptorSetAllocator );
83060     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
83061     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
83062   }
83063 
83064 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83065   template <typename Dispatch, typename DescriptorSetAllocator>
allocateDescriptorSetsUnique(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const83066   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
83067   {
83068     std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets;
83069     std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
83070     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
83071     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83072     {
83073       uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
83074       PoolFree<Device, DescriptorPool, Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
83075       for ( size_t i=0; i < allocateInfo.descriptorSetCount; i++ )
83076       {
83077         uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSets[i], deleter ) );
83078       }
83079     }
83080     return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
83081   }
83082 
83083   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) const83084   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
83085   {
83086     std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets( descriptorSetAllocator );
83087     std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
83088     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
83089     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83090     {
83091       uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
83092       PoolFree<Device, DescriptorPool, Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
83093       for ( size_t i=0; i < allocateInfo.descriptorSetCount; i++ )
83094       {
83095         uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSets[i], deleter ) );
83096       }
83097     }
83098     return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
83099   }
83100 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83101 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83102 
83103 
83104   template <typename Dispatch>
allocateMemory(const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo * pAllocateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeviceMemory * pMemory,Dispatch const & d) const83105   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
83106   {
83107     return static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo *>( pAllocateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDeviceMemory *>( pMemory ) ) );
83108   }
83109 
83110 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83111   template <typename Dispatch>
allocateMemory(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83112   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
83113   {
83114     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
83115     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 ) ) );
83116     return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemory" );
83117   }
83118 
83119 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83120   template <typename Dispatch>
allocateMemoryUnique(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83121   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
83122   {
83123     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
83124     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 ) ) );
83125     ObjectFree<Device, Dispatch> deleter( *this, allocator, d );
83126     return createResultValue<VULKAN_HPP_NAMESPACE::DeviceMemory, Dispatch>( result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemoryUnique", deleter );
83127   }
83128 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83129 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83130 
83131 
83132 #ifdef VK_ENABLE_BETA_EXTENSIONS
83133   template <typename Dispatch>
bindAccelerationStructureMemoryKHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR * pBindInfos,Dispatch const & d) const83134   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryKHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83135   {
83136     return static_cast<Result>( d.vkBindAccelerationStructureMemoryKHR( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( pBindInfos ) ) );
83137   }
83138 
83139 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83140   template <typename Dispatch>
bindAccelerationStructureMemoryKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos,Dispatch const & d) const83141   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindAccelerationStructureMemoryKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos, Dispatch const & d ) const
83142   {
83143     Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryKHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( bindInfos.data() ) ) );
83144     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryKHR" );
83145   }
83146 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83147 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83148 
83149   template <typename Dispatch>
bindAccelerationStructureMemoryNV(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR * pBindInfos,Dispatch const & d) const83150   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83151   {
83152     return static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( pBindInfos ) ) );
83153   }
83154 
83155 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83156   template <typename Dispatch>
bindAccelerationStructureMemoryNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos,Dispatch const & d) const83157   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindAccelerationStructureMemoryNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos, Dispatch const & d ) const
83158   {
83159     Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( bindInfos.data() ) ) );
83160     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" );
83161   }
83162 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83163 
83164 
83165 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83166   template <typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const83167   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
83168   {
83169     return static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
83170   }
83171 #else
83172   template <typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const83173   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
83174   {
83175     Result result = static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
83176     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory" );
83177   }
83178 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83179 
83180 
83181 
83182   template <typename Dispatch>
bindBufferMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const83183   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
83184   {
83185     return static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
83186   }
83187 
83188 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83189   template <typename Dispatch>
bindBufferMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,Dispatch const & d) const83190   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
83191   {
83192     Result result = static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
83193     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" );
83194   }
83195 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83196 
83197   template <typename Dispatch>
bindBufferMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const83198   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
83199   {
83200     return static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
83201   }
83202 
83203 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83204   template <typename Dispatch>
bindBufferMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,Dispatch const & d) const83205   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
83206   {
83207     Result result = static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
83208     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" );
83209   }
83210 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83211 
83212 
83213 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83214   template <typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const83215   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
83216   {
83217     return static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
83218   }
83219 #else
83220   template <typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const83221   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
83222   {
83223     Result result = static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
83224     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory" );
83225   }
83226 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83227 
83228 
83229 
83230   template <typename Dispatch>
bindImageMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const83231   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
83232   {
83233     return static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
83234   }
83235 
83236 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83237   template <typename Dispatch>
bindImageMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,Dispatch const & d) const83238   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
83239   {
83240     Result result = static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
83241     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" );
83242   }
83243 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83244 
83245   template <typename Dispatch>
bindImageMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const83246   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
83247   {
83248     return static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
83249   }
83250 
83251 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83252   template <typename Dispatch>
bindImageMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,Dispatch const & d) const83253   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
83254   {
83255     Result result = static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
83256     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" );
83257   }
83258 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83259 
83260 
83261 #ifdef VK_ENABLE_BETA_EXTENSIONS
83262   template <typename Dispatch>
buildAccelerationStructureKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos,Dispatch const & d) const83263   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::buildAccelerationStructureKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83264   {
83265     return static_cast<Result>( d.vkBuildAccelerationStructureKHR( m_device, infoCount, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfos ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR * const *>( ppOffsetInfos ) ) );
83266   }
83267 
83268 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83269   template <typename Dispatch>
buildAccelerationStructureKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const> const & pOffsetInfos,Dispatch const & d) const83270   VULKAN_HPP_INLINE Result Device::buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const > const & pOffsetInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
83271   {
83272 #ifdef VULKAN_HPP_NO_EXCEPTIONS
83273     VULKAN_HPP_ASSERT( infos.size() == pOffsetInfos.size() );
83274 #else
83275     if ( infos.size() != pOffsetInfos.size() )
83276   {
83277     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructureKHR: infos.size() != pOffsetInfos.size()" );
83278   }
83279 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
83280 
83281     Result result = static_cast<Result>( d.vkBuildAccelerationStructureKHR( m_device, infos.size(), reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR * const *>( pOffsetInfos.data() ) ) );
83282     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
83283   }
83284 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83285 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83286 
83287 
83288 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83289   template <typename Dispatch>
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const83290   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83291   {
83292     return static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
83293   }
83294 #else
83295   template <typename Dispatch>
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const83296   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
83297   {
83298     Result result = static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
83299     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::compileDeferredNV" );
83300   }
83301 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83302 
83303 
83304 
83305 #ifdef VK_ENABLE_BETA_EXTENSIONS
83306   template <typename Dispatch>
copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const83307   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83308   {
83309     return static_cast<Result>( d.vkCopyAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( pInfo ) ) );
83310   }
83311 
83312 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83313   template <typename Dispatch>
copyAccelerationStructureKHR(const CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const83314   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const
83315   {
83316     Result result = static_cast<Result>( d.vkCopyAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) ) );
83317     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
83318   }
83319 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83320 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83321 
83322 
83323 #ifdef VK_ENABLE_BETA_EXTENSIONS
83324   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const83325   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83326   {
83327     return static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( pInfo ) ) );
83328   }
83329 
83330 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83331   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const83332   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const
83333   {
83334     Result result = static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) ) );
83335     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
83336   }
83337 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83338 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83339 
83340 
83341 #ifdef VK_ENABLE_BETA_EXTENSIONS
83342   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const83343   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83344   {
83345     return static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( pInfo ) ) );
83346   }
83347 
83348 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83349   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const83350   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const
83351   {
83352     Result result = static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) ) );
83353     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
83354   }
83355 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83356 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83357 
83358 
83359 #ifdef VK_ENABLE_BETA_EXTENSIONS
83360   template <typename Dispatch>
createAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructure,Dispatch const & d) const83361   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
83362   {
83363     return static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkAccelerationStructureKHR *>( pAccelerationStructure ) ) );
83364   }
83365 
83366 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83367   template <typename Dispatch>
createAccelerationStructureKHR(const AccelerationStructureCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83368   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
83369   {
83370     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
83371     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 ) ) );
83372     return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHR" );
83373   }
83374 
83375 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83376   template <typename Dispatch>
createAccelerationStructureKHRUnique(const AccelerationStructureCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83377   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
83378   {
83379     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
83380     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 ) ) );
83381     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83382     return createResultValue<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR, Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHRUnique", deleter );
83383   }
83384 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83385 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83386 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83387 
83388 
83389   template <typename Dispatch>
createAccelerationStructureNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructure,Dispatch const & d) const83390   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
83391   {
83392     return static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkAccelerationStructureNV *>( pAccelerationStructure ) ) );
83393   }
83394 
83395 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83396   template <typename Dispatch>
createAccelerationStructureNV(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83397   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>::type Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83398   {
83399     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
83400     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 ) ) );
83401     return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNV" );
83402   }
83403 
83404 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83405   template <typename Dispatch>
createAccelerationStructureNVUnique(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83406   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
83407   {
83408     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
83409     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 ) ) );
83410     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83411     return createResultValue<VULKAN_HPP_NAMESPACE::AccelerationStructureNV, Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNVUnique", deleter );
83412   }
83413 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83414 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83415 
83416 
83417   template <typename Dispatch>
createBuffer(const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Buffer * pBuffer,Dispatch const & d) const83418   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
83419   {
83420     return static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkBuffer *>( pBuffer ) ) );
83421   }
83422 
83423 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83424   template <typename Dispatch>
createBuffer(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83425   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
83426   {
83427     VULKAN_HPP_NAMESPACE::Buffer buffer;
83428     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 ) ) );
83429     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBuffer" );
83430   }
83431 
83432 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83433   template <typename Dispatch>
createBufferUnique(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83434   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
83435   {
83436     VULKAN_HPP_NAMESPACE::Buffer buffer;
83437     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 ) ) );
83438     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83439     return createResultValue<VULKAN_HPP_NAMESPACE::Buffer, Dispatch>( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferUnique", deleter );
83440   }
83441 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83443 
83444 
83445   template <typename Dispatch>
createBufferView(const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::BufferView * pView,Dispatch const & d) const83446   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
83447   {
83448     return static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkBufferView *>( pView ) ) );
83449   }
83450 
83451 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83452   template <typename Dispatch>
createBufferView(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83453   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
83454   {
83455     VULKAN_HPP_NAMESPACE::BufferView view;
83456     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 ) ) );
83457     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferView" );
83458   }
83459 
83460 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83461   template <typename Dispatch>
createBufferViewUnique(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83462   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
83463   {
83464     VULKAN_HPP_NAMESPACE::BufferView view;
83465     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 ) ) );
83466     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83467     return createResultValue<VULKAN_HPP_NAMESPACE::BufferView, Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferViewUnique", deleter );
83468   }
83469 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83470 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83471 
83472 
83473   template <typename Dispatch>
createCommandPool(const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::CommandPool * pCommandPool,Dispatch const & d) const83474   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
83475   {
83476     return static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkCommandPool *>( pCommandPool ) ) );
83477   }
83478 
83479 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83480   template <typename Dispatch>
createCommandPool(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83481   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
83482   {
83483     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
83484     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 ) ) );
83485     return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPool" );
83486   }
83487 
83488 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83489   template <typename Dispatch>
createCommandPoolUnique(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83490   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
83491   {
83492     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
83493     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 ) ) );
83494     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83495     return createResultValue<VULKAN_HPP_NAMESPACE::CommandPool, Dispatch>( result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPoolUnique", deleter );
83496   }
83497 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83498 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83499 
83500 
83501   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) const83502   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
83503   {
83504     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 ) ) );
83505   }
83506 
83507 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83508   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) const83509   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
83510   {
83511     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
83512     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() ) ) );
83513     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83514   }
83515 
83516   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) const83517   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
83518   {
83519     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
83520     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() ) ) );
83521     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83522   }
83523 
83524   template <typename Dispatch>
createComputePipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83525   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83526   {
83527     Pipeline pipeline;
83528     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 ) ) );
83529     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipeline", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83530   }
83531 
83532 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83533   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) const83534   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
83535   {
83536     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
83537     std::vector<Pipeline> pipelines( createInfos.size() );
83538     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() ) ) );
83539     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
83540     {
83541       uniquePipelines.reserve( createInfos.size() );
83542       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83543       for ( size_t i=0; i < createInfos.size(); i++ )
83544       {
83545         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
83546       }
83547     }
83548     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83549   }
83550 
83551   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) const83552   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
83553   {
83554     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
83555     std::vector<Pipeline> pipelines( createInfos.size() );
83556     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() ) ) );
83557     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
83558     {
83559       uniquePipelines.reserve( createInfos.size() );
83560       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83561       for ( size_t i=0; i < createInfos.size(); i++ )
83562       {
83563         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
83564       }
83565     }
83566     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83567   }
83568 
83569   template <typename Dispatch>
createComputePipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83570   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83571   {
83572     Pipeline pipeline;
83573     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 ) ) );
83574     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83575     return createResultValue<Pipeline, Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelineUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter );
83576   }
83577 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83579 
83580 
83581 #ifdef VK_ENABLE_BETA_EXTENSIONS
83582   template <typename Dispatch>
createDeferredOperationKHR(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeferredOperationKHR * pDeferredOperation,Dispatch const & d) const83583   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
83584   {
83585     return static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDeferredOperationKHR *>( pDeferredOperation ) ) );
83586   }
83587 
83588 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83589   template <typename Dispatch>
createDeferredOperationKHR(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83590   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>::type Device::createDeferredOperationKHR( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83591   {
83592     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
83593     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 ) ) );
83594     return createResultValue( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHR" );
83595   }
83596 
83597 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83598   template <typename Dispatch>
createDeferredOperationKHRUnique(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83599   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>>::type Device::createDeferredOperationKHRUnique( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83600   {
83601     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
83602     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 ) ) );
83603     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83604     return createResultValue<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHRUnique", deleter );
83605   }
83606 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83607 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83608 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83609 
83610 
83611   template <typename Dispatch>
createDescriptorPool(const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorPool * pDescriptorPool,Dispatch const & d) const83612   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
83613   {
83614     return static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorPool *>( pDescriptorPool ) ) );
83615   }
83616 
83617 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83618   template <typename Dispatch>
createDescriptorPool(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83619   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
83620   {
83621     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
83622     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 ) ) );
83623     return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPool" );
83624   }
83625 
83626 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83627   template <typename Dispatch>
createDescriptorPoolUnique(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83628   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
83629   {
83630     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
83631     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 ) ) );
83632     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83633     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorPool, Dispatch>( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPoolUnique", deleter );
83634   }
83635 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83636 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83637 
83638 
83639   template <typename Dispatch>
createDescriptorSetLayout(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayout,Dispatch const & d) const83640   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
83641   {
83642     return static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorSetLayout *>( pSetLayout ) ) );
83643   }
83644 
83645 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83646   template <typename Dispatch>
createDescriptorSetLayout(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83647   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
83648   {
83649     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
83650     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 ) ) );
83651     return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayout" );
83652   }
83653 
83654 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83655   template <typename Dispatch>
createDescriptorSetLayoutUnique(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83656   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
83657   {
83658     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
83659     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 ) ) );
83660     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83661     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorSetLayout, Dispatch>( result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayoutUnique", deleter );
83662   }
83663 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83664 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83665 
83666 
83667   template <typename Dispatch>
createDescriptorUpdateTemplate(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const83668   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
83669   {
83670     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) );
83671   }
83672 
83673 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83674   template <typename Dispatch>
createDescriptorUpdateTemplate(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83675   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
83676   {
83677     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
83678     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 ) ) );
83679     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplate" );
83680   }
83681 
83682 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83683   template <typename Dispatch>
createDescriptorUpdateTemplateUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83684   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
83685   {
83686     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
83687     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 ) ) );
83688     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83689     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateUnique", deleter );
83690   }
83691 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83692 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83693 
83694   template <typename Dispatch>
createDescriptorUpdateTemplateKHR(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const83695   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
83696   {
83697     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) );
83698   }
83699 
83700 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83701   template <typename Dispatch>
createDescriptorUpdateTemplateKHR(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83702   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
83703   {
83704     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
83705     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 ) ) );
83706     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHR" );
83707   }
83708 
83709 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83710   template <typename Dispatch>
createDescriptorUpdateTemplateKHRUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83711   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
83712   {
83713     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
83714     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 ) ) );
83715     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83716     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHRUnique", deleter );
83717   }
83718 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83719 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83720 
83721 
83722   template <typename Dispatch>
createEvent(const VULKAN_HPP_NAMESPACE::EventCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Event * pEvent,Dispatch const & d) const83723   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
83724   {
83725     return static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkEvent *>( pEvent ) ) );
83726   }
83727 
83728 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83729   template <typename Dispatch>
createEvent(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83730   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
83731   {
83732     VULKAN_HPP_NAMESPACE::Event event;
83733     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 ) ) );
83734     return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEvent" );
83735   }
83736 
83737 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83738   template <typename Dispatch>
createEventUnique(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83739   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
83740   {
83741     VULKAN_HPP_NAMESPACE::Event event;
83742     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 ) ) );
83743     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83744     return createResultValue<VULKAN_HPP_NAMESPACE::Event, Dispatch>( result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEventUnique", deleter );
83745   }
83746 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83747 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83748 
83749 
83750   template <typename Dispatch>
createFence(const VULKAN_HPP_NAMESPACE::FenceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const83751   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
83752   {
83753     return static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) );
83754   }
83755 
83756 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83757   template <typename Dispatch>
createFence(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83758   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
83759   {
83760     VULKAN_HPP_NAMESPACE::Fence fence;
83761     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 ) ) );
83762     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFence" );
83763   }
83764 
83765 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83766   template <typename Dispatch>
createFenceUnique(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83767   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
83768   {
83769     VULKAN_HPP_NAMESPACE::Fence fence;
83770     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 ) ) );
83771     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83772     return createResultValue<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFenceUnique", deleter );
83773   }
83774 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83775 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83776 
83777 
83778   template <typename Dispatch>
createFramebuffer(const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Framebuffer * pFramebuffer,Dispatch const & d) const83779   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
83780   {
83781     return static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkFramebuffer *>( pFramebuffer ) ) );
83782   }
83783 
83784 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83785   template <typename Dispatch>
createFramebuffer(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83786   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
83787   {
83788     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
83789     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 ) ) );
83790     return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebuffer" );
83791   }
83792 
83793 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83794   template <typename Dispatch>
createFramebufferUnique(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83795   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
83796   {
83797     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
83798     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 ) ) );
83799     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83800     return createResultValue<VULKAN_HPP_NAMESPACE::Framebuffer, Dispatch>( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebufferUnique", deleter );
83801   }
83802 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83803 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83804 
83805 
83806   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) const83807   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
83808   {
83809     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 ) ) );
83810   }
83811 
83812 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83813   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) const83814   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
83815   {
83816     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
83817     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() ) ) );
83818     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83819   }
83820 
83821   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) const83822   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
83823   {
83824     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
83825     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() ) ) );
83826     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83827   }
83828 
83829   template <typename Dispatch>
createGraphicsPipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83830   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83831   {
83832     Pipeline pipeline;
83833     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 ) ) );
83834     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipeline", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83835   }
83836 
83837 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83838   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) const83839   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
83840   {
83841     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
83842     std::vector<Pipeline> pipelines( createInfos.size() );
83843     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() ) ) );
83844     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
83845     {
83846       uniquePipelines.reserve( createInfos.size() );
83847       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83848       for ( size_t i=0; i < createInfos.size(); i++ )
83849       {
83850         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
83851       }
83852     }
83853     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83854   }
83855 
83856   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) const83857   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
83858   {
83859     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
83860     std::vector<Pipeline> pipelines( createInfos.size() );
83861     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() ) ) );
83862     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
83863     {
83864       uniquePipelines.reserve( createInfos.size() );
83865       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83866       for ( size_t i=0; i < createInfos.size(); i++ )
83867       {
83868         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
83869       }
83870     }
83871     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83872   }
83873 
83874   template <typename Dispatch>
createGraphicsPipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83875   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83876   {
83877     Pipeline pipeline;
83878     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 ) ) );
83879     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83880     return createResultValue<Pipeline, Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelineUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter );
83881   }
83882 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83883 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83884 
83885 
83886   template <typename Dispatch>
createImage(const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Image * pImage,Dispatch const & d) const83887   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
83888   {
83889     return static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkImage *>( pImage ) ) );
83890   }
83891 
83892 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83893   template <typename Dispatch>
createImage(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83894   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
83895   {
83896     VULKAN_HPP_NAMESPACE::Image image;
83897     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 ) ) );
83898     return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImage" );
83899   }
83900 
83901 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83902   template <typename Dispatch>
createImageUnique(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83903   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
83904   {
83905     VULKAN_HPP_NAMESPACE::Image image;
83906     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 ) ) );
83907     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83908     return createResultValue<VULKAN_HPP_NAMESPACE::Image, Dispatch>( result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageUnique", deleter );
83909   }
83910 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83911 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83912 
83913 
83914   template <typename Dispatch>
createImageView(const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ImageView * pView,Dispatch const & d) const83915   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
83916   {
83917     return static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkImageView *>( pView ) ) );
83918   }
83919 
83920 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83921   template <typename Dispatch>
createImageView(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83922   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
83923   {
83924     VULKAN_HPP_NAMESPACE::ImageView view;
83925     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 ) ) );
83926     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageView" );
83927   }
83928 
83929 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83930   template <typename Dispatch>
createImageViewUnique(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83931   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
83932   {
83933     VULKAN_HPP_NAMESPACE::ImageView view;
83934     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 ) ) );
83935     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83936     return createResultValue<VULKAN_HPP_NAMESPACE::ImageView, Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageViewUnique", deleter );
83937   }
83938 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83939 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83940 
83941 
83942   template <typename Dispatch>
createIndirectCommandsLayoutNV(const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV * pIndirectCommandsLayout,Dispatch const & d) const83943   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
83944   {
83945     return static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkIndirectCommandsLayoutNV *>( pIndirectCommandsLayout ) ) );
83946   }
83947 
83948 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83949   template <typename Dispatch>
createIndirectCommandsLayoutNV(const IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83950   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
83951   {
83952     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
83953     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 ) ) );
83954     return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNV" );
83955   }
83956 
83957 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83958   template <typename Dispatch>
createIndirectCommandsLayoutNVUnique(const IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83959   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
83960   {
83961     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
83962     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 ) ) );
83963     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83964     return createResultValue<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV, Dispatch>( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNVUnique", deleter );
83965   }
83966 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83967 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83968 
83969 
83970   template <typename Dispatch>
createPipelineCache(const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineCache * pPipelineCache,Dispatch const & d) const83971   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
83972   {
83973     return static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipelineCache *>( pPipelineCache ) ) );
83974   }
83975 
83976 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83977   template <typename Dispatch>
createPipelineCache(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83978   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
83979   {
83980     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
83981     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 ) ) );
83982     return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCache" );
83983   }
83984 
83985 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83986   template <typename Dispatch>
createPipelineCacheUnique(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83987   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
83988   {
83989     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
83990     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 ) ) );
83991     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83992     return createResultValue<VULKAN_HPP_NAMESPACE::PipelineCache, Dispatch>( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCacheUnique", deleter );
83993   }
83994 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83995 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83996 
83997 
83998   template <typename Dispatch>
createPipelineLayout(const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineLayout * pPipelineLayout,Dispatch const & d) const83999   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
84000   {
84001     return static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipelineLayout *>( pPipelineLayout ) ) );
84002   }
84003 
84004 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84005   template <typename Dispatch>
createPipelineLayout(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84006   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
84007   {
84008     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
84009     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 ) ) );
84010     return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayout" );
84011   }
84012 
84013 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84014   template <typename Dispatch>
createPipelineLayoutUnique(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84015   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
84016   {
84017     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
84018     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 ) ) );
84019     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84020     return createResultValue<VULKAN_HPP_NAMESPACE::PipelineLayout, Dispatch>( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayoutUnique", deleter );
84021   }
84022 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84023 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84024 
84025 
84026   template <typename Dispatch>
createPrivateDataSlotEXT(const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT * pPrivateDataSlot,Dispatch const & d) const84027   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
84028   {
84029     return static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPrivateDataSlotEXT *>( pPrivateDataSlot ) ) );
84030   }
84031 
84032 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84033   template <typename Dispatch>
createPrivateDataSlotEXT(const PrivateDataSlotCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84034   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>::type Device::createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84035   {
84036     VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
84037     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 ) ) );
84038     return createResultValue( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXT" );
84039   }
84040 
84041 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84042   template <typename Dispatch>
createPrivateDataSlotEXTUnique(const PrivateDataSlotCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84043   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
84044   {
84045     VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
84046     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 ) ) );
84047     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84048     return createResultValue<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT, Dispatch>( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXTUnique", deleter );
84049   }
84050 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84051 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84052 
84053 
84054   template <typename Dispatch>
createQueryPool(const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::QueryPool * pQueryPool,Dispatch const & d) const84055   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
84056   {
84057     return static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkQueryPool *>( pQueryPool ) ) );
84058   }
84059 
84060 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84061   template <typename Dispatch>
createQueryPool(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84062   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
84063   {
84064     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
84065     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 ) ) );
84066     return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPool" );
84067   }
84068 
84069 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84070   template <typename Dispatch>
createQueryPoolUnique(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84071   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
84072   {
84073     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
84074     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 ) ) );
84075     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84076     return createResultValue<VULKAN_HPP_NAMESPACE::QueryPool, Dispatch>( result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPoolUnique", deleter );
84077   }
84078 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84079 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84080 
84081 
84082 #ifdef VK_ENABLE_BETA_EXTENSIONS
84083   template <typename Dispatch>
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,uint32_t createInfoCount,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,Dispatch const & d) const84084   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84085   {
84086     return static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfoCount, reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) );
84087   }
84088 
84089 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84090   template <typename PipelineAllocator, typename Dispatch>
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84091   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84092   {
84093     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
84094     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
84095     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 } );
84096   }
84097 
84098   template <typename PipelineAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type >
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84099   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84100   {
84101     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
84102     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
84103     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 } );
84104   }
84105 
84106   template <typename Dispatch>
createRayTracingPipelineKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84107   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84108   {
84109     Pipeline pipeline;
84110     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
84111     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 } );
84112   }
84113 
84114 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84115   template <typename Dispatch, typename PipelineAllocator>
createRayTracingPipelinesKHRUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84116   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84117   {
84118     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
84119     std::vector<Pipeline> pipelines( createInfos.size() );
84120     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
84121     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 ) )
84122     {
84123       uniquePipelines.reserve( createInfos.size() );
84124       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84125       for ( size_t i=0; i < createInfos.size(); i++ )
84126       {
84127         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84128       }
84129     }
84130     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 } );
84131   }
84132 
84133   template <typename Dispatch, typename PipelineAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type >
createRayTracingPipelinesKHRUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84134   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84135   {
84136     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
84137     std::vector<Pipeline> pipelines( createInfos.size() );
84138     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
84139     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 ) )
84140     {
84141       uniquePipelines.reserve( createInfos.size() );
84142       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84143       for ( size_t i=0; i < createInfos.size(); i++ )
84144       {
84145         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84146       }
84147     }
84148     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 } );
84149   }
84150 
84151   template <typename Dispatch>
createRayTracingPipelineKHRUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84152   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84153   {
84154     Pipeline pipeline;
84155     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
84156     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84157     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 );
84158   }
84159 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84160 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84161 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84162 
84163 
84164   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) const84165   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
84166   {
84167     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 ) ) );
84168   }
84169 
84170 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84171   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) const84172   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
84173   {
84174     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
84175     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() ) ) );
84176     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84177   }
84178 
84179   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) const84180   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
84181   {
84182     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
84183     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() ) ) );
84184     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84185   }
84186 
84187   template <typename Dispatch>
createRayTracingPipelineNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84188   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84189   {
84190     Pipeline pipeline;
84191     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 ) ) );
84192     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84193   }
84194 
84195 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84196   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) const84197   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
84198   {
84199     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
84200     std::vector<Pipeline> pipelines( createInfos.size() );
84201     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() ) ) );
84202     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84203     {
84204       uniquePipelines.reserve( createInfos.size() );
84205       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84206       for ( size_t i=0; i < createInfos.size(); i++ )
84207       {
84208         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84209       }
84210     }
84211     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84212   }
84213 
84214   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) const84215   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
84216   {
84217     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
84218     std::vector<Pipeline> pipelines( createInfos.size() );
84219     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() ) ) );
84220     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84221     {
84222       uniquePipelines.reserve( createInfos.size() );
84223       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84224       for ( size_t i=0; i < createInfos.size(); i++ )
84225       {
84226         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84227       }
84228     }
84229     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84230   }
84231 
84232   template <typename Dispatch>
createRayTracingPipelineNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84233   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84234   {
84235     Pipeline pipeline;
84236     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 ) ) );
84237     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84238     return createResultValue<Pipeline, Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter );
84239   }
84240 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84241 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84242 
84243 
84244   template <typename Dispatch>
createRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const84245   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
84246   {
84247     return static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) );
84248   }
84249 
84250 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84251   template <typename Dispatch>
createRenderPass(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84252   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
84253   {
84254     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84255     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 ) ) );
84256     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass" );
84257   }
84258 
84259 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84260   template <typename Dispatch>
createRenderPassUnique(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84261   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
84262   {
84263     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84264     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 ) ) );
84265     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84266     return createResultValue<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPassUnique", deleter );
84267   }
84268 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84269 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84270 
84271 
84272   template <typename Dispatch>
createRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const84273   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
84274   {
84275     return static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) );
84276   }
84277 
84278 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84279   template <typename Dispatch>
createRenderPass2(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84280   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
84281   {
84282     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84283     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 ) ) );
84284     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2" );
84285   }
84286 
84287 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84288   template <typename Dispatch>
createRenderPass2Unique(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84289   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
84290   {
84291     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84292     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 ) ) );
84293     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84294     return createResultValue<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2Unique", deleter );
84295   }
84296 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84297 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84298 
84299   template <typename Dispatch>
createRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const84300   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
84301   {
84302     return static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) );
84303   }
84304 
84305 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84306   template <typename Dispatch>
createRenderPass2KHR(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84307   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
84308   {
84309     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84310     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 ) ) );
84311     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHR" );
84312   }
84313 
84314 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84315   template <typename Dispatch>
createRenderPass2KHRUnique(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84316   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
84317   {
84318     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84319     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 ) ) );
84320     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84321     return createResultValue<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHRUnique", deleter );
84322   }
84323 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84324 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84325 
84326 
84327   template <typename Dispatch>
createSampler(const VULKAN_HPP_NAMESPACE::SamplerCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Sampler * pSampler,Dispatch const & d) const84328   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
84329   {
84330     return static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSampler *>( pSampler ) ) );
84331   }
84332 
84333 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84334   template <typename Dispatch>
createSampler(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84335   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
84336   {
84337     VULKAN_HPP_NAMESPACE::Sampler sampler;
84338     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 ) ) );
84339     return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSampler" );
84340   }
84341 
84342 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84343   template <typename Dispatch>
createSamplerUnique(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84344   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
84345   {
84346     VULKAN_HPP_NAMESPACE::Sampler sampler;
84347     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 ) ) );
84348     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84349     return createResultValue<VULKAN_HPP_NAMESPACE::Sampler, Dispatch>( result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerUnique", deleter );
84350   }
84351 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84352 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84353 
84354 
84355   template <typename Dispatch>
createSamplerYcbcrConversion(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const84356   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
84357   {
84358     return static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) );
84359   }
84360 
84361 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84362   template <typename Dispatch>
createSamplerYcbcrConversion(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84363   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
84364   {
84365     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
84366     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 ) ) );
84367     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversion" );
84368   }
84369 
84370 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84371   template <typename Dispatch>
createSamplerYcbcrConversionUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84372   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
84373   {
84374     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
84375     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 ) ) );
84376     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84377     return createResultValue<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionUnique", deleter );
84378   }
84379 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84380 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84381 
84382   template <typename Dispatch>
createSamplerYcbcrConversionKHR(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const84383   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
84384   {
84385     return static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) );
84386   }
84387 
84388 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84389   template <typename Dispatch>
createSamplerYcbcrConversionKHR(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84390   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
84391   {
84392     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
84393     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 ) ) );
84394     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHR" );
84395   }
84396 
84397 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84398   template <typename Dispatch>
createSamplerYcbcrConversionKHRUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84399   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
84400   {
84401     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
84402     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 ) ) );
84403     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84404     return createResultValue<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHRUnique", deleter );
84405   }
84406 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84407 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84408 
84409 
84410   template <typename Dispatch>
createSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Semaphore * pSemaphore,Dispatch const & d) const84411   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
84412   {
84413     return static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSemaphore *>( pSemaphore ) ) );
84414   }
84415 
84416 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84417   template <typename Dispatch>
createSemaphore(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84418   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
84419   {
84420     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
84421     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 ) ) );
84422     return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphore" );
84423   }
84424 
84425 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84426   template <typename Dispatch>
createSemaphoreUnique(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84427   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
84428   {
84429     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
84430     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 ) ) );
84431     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84432     return createResultValue<VULKAN_HPP_NAMESPACE::Semaphore, Dispatch>( result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphoreUnique", deleter );
84433   }
84434 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84435 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84436 
84437 
84438   template <typename Dispatch>
createShaderModule(const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ShaderModule * pShaderModule,Dispatch const & d) const84439   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
84440   {
84441     return static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkShaderModule *>( pShaderModule ) ) );
84442   }
84443 
84444 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84445   template <typename Dispatch>
createShaderModule(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84446   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
84447   {
84448     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
84449     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 ) ) );
84450     return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModule" );
84451   }
84452 
84453 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84454   template <typename Dispatch>
createShaderModuleUnique(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84455   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
84456   {
84457     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
84458     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 ) ) );
84459     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84460     return createResultValue<VULKAN_HPP_NAMESPACE::ShaderModule, Dispatch>( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModuleUnique", deleter );
84461   }
84462 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84463 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84464 
84465 
84466   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) const84467   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
84468   {
84469     return static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, swapchainCount, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSwapchainKHR *>( pSwapchains ) ) );
84470   }
84471 
84472 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84473   template <typename SwapchainKHRAllocator, typename Dispatch>
createSharedSwapchainsKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84474   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
84475   {
84476     std::vector<SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size() );
84477     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() ) ) );
84478     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
84479   }
84480 
84481   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) const84482   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
84483   {
84484     std::vector<SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size(), swapchainKHRAllocator );
84485     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() ) ) );
84486     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
84487   }
84488 
84489   template <typename Dispatch>
createSharedSwapchainKHR(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84490   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<SwapchainKHR>::type Device::createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84491   {
84492     SwapchainKHR swapchain;
84493     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 ) ) );
84494     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHR" );
84495   }
84496 
84497 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84498   template <typename Dispatch, typename SwapchainKHRAllocator>
createSharedSwapchainsKHRUnique(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84499   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
84500   {
84501     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains;
84502     std::vector<SwapchainKHR> swapchains( createInfos.size() );
84503     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() ) ) );
84504     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
84505     {
84506       uniqueSwapchains.reserve( createInfos.size() );
84507       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84508       for ( size_t i=0; i < createInfos.size(); i++ )
84509       {
84510         uniqueSwapchains.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchains[i], deleter ) );
84511       }
84512     }
84513     return createResultValue( result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
84514   }
84515 
84516   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) const84517   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
84518   {
84519     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains( swapchainKHRAllocator );
84520     std::vector<SwapchainKHR> swapchains( createInfos.size() );
84521     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() ) ) );
84522     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
84523     {
84524       uniqueSwapchains.reserve( createInfos.size() );
84525       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84526       for ( size_t i=0; i < createInfos.size(); i++ )
84527       {
84528         uniqueSwapchains.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchains[i], deleter ) );
84529       }
84530     }
84531     return createResultValue( result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
84532   }
84533 
84534   template <typename Dispatch>
createSharedSwapchainKHRUnique(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84535   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR, Dispatch>>::type Device::createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84536   {
84537     SwapchainKHR swapchain;
84538     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 ) ) );
84539     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84540     return createResultValue<SwapchainKHR, Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHRUnique", deleter );
84541   }
84542 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84543 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84544 
84545 
84546   template <typename Dispatch>
createSwapchainKHR(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchain,Dispatch const & d) const84547   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
84548   {
84549     return static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSwapchainKHR *>( pSwapchain ) ) );
84550   }
84551 
84552 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84553   template <typename Dispatch>
createSwapchainKHR(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84554   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
84555   {
84556     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
84557     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 ) ) );
84558     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHR" );
84559   }
84560 
84561 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84562   template <typename Dispatch>
createSwapchainKHRUnique(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84563   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
84564   {
84565     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
84566     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 ) ) );
84567     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84568     return createResultValue<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHRUnique", deleter );
84569   }
84570 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84571 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84572 
84573 
84574   template <typename Dispatch>
createValidationCacheEXT(const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pValidationCache,Dispatch const & d) const84575   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
84576   {
84577     return static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkValidationCacheEXT *>( pValidationCache ) ) );
84578   }
84579 
84580 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84581   template <typename Dispatch>
createValidationCacheEXT(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84582   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>::type Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84583   {
84584     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
84585     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 ) ) );
84586     return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXT" );
84587   }
84588 
84589 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84590   template <typename Dispatch>
createValidationCacheEXTUnique(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84591   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
84592   {
84593     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
84594     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 ) ) );
84595     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84596     return createResultValue<VULKAN_HPP_NAMESPACE::ValidationCacheEXT, Dispatch>( result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXTUnique", deleter );
84597   }
84598 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84599 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84600 
84601 
84602   template <typename Dispatch>
debugMarkerSetObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT * pNameInfo,Dispatch const & d) const84603   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84604   {
84605     return static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( pNameInfo ) ) );
84606   }
84607 
84608 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84609   template <typename Dispatch>
debugMarkerSetObjectNameEXT(const DebugMarkerObjectNameInfoEXT & nameInfo,Dispatch const & d) const84610   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
84611   {
84612     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) ) );
84613     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" );
84614   }
84615 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84616 
84617 
84618   template <typename Dispatch>
debugMarkerSetObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT * pTagInfo,Dispatch const & d) const84619   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84620   {
84621     return static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( pTagInfo ) ) );
84622   }
84623 
84624 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84625   template <typename Dispatch>
debugMarkerSetObjectTagEXT(const DebugMarkerObjectTagInfoEXT & tagInfo,Dispatch const & d) const84626   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
84627   {
84628     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) ) );
84629     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" );
84630   }
84631 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84632 
84633 
84634 #ifdef VK_ENABLE_BETA_EXTENSIONS
84635 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
84636   template <typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const84637   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84638   {
84639     return static_cast<Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
84640   }
84641 #else
84642   template <typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const84643   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const
84644   {
84645     Result result = static_cast<Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
84646     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::deferredOperationJoinKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR, VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR } );
84647   }
84648 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84649 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84650 
84651 
84652 
84653 #ifdef VK_ENABLE_BETA_EXTENSIONS
84654   template <typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84655   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84656   {
84657     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84658   }
84659 
84660 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84661   template <typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84662   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84663   {
84664     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84665   }
84666 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84667 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84668 
84669   template <typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84670   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84671   {
84672     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84673   }
84674 
84675 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84676   template <typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84677   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84678   {
84679     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84680   }
84681 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84682 
84683 
84684   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84685   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84686   {
84687 #ifdef VK_ENABLE_BETA_EXTENSIONS
84688     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84689 #else
84690     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84691 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84692 
84693   }
84694 
84695 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84696   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84697   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84698   {
84699 #ifdef VK_ENABLE_BETA_EXTENSIONS
84700     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84701 #else
84702     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84703 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84704 
84705   }
84706 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84707 
84708 
84709   template <typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84710   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84711   {
84712     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84713   }
84714 
84715 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84716   template <typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84717   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84718   {
84719     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84720   }
84721 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84722 
84723 
84724   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84725   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84726   {
84727     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84728   }
84729 
84730 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84731   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84732   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84733   {
84734     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84735   }
84736 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84737 
84738 
84739   template <typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84740   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84741   {
84742     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84743   }
84744 
84745 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84746   template <typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84747   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84748   {
84749     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84750   }
84751 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84752 
84753 
84754   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84755   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84756   {
84757     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84758   }
84759 
84760 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84761   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84762   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84763   {
84764     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84765   }
84766 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84767 
84768 
84769   template <typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84770   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84771   {
84772     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84773   }
84774 
84775 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84776   template <typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84777   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84778   {
84779     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84780   }
84781 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84782 
84783 
84784   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84785   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84786   {
84787     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84788   }
84789 
84790 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84791   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84792   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84793   {
84794     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84795   }
84796 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84797 
84798 
84799 #ifdef VK_ENABLE_BETA_EXTENSIONS
84800   template <typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84801   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84802   {
84803     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84804   }
84805 
84806 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84807   template <typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84808   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84809   {
84810     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84811   }
84812 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84813 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84814 
84815 
84816 #ifdef VK_ENABLE_BETA_EXTENSIONS
84817   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84818   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84819   {
84820     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84821   }
84822 
84823 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84824   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84825   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84826   {
84827     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84828   }
84829 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84830 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84831 
84832 
84833   template <typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84834   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84835   {
84836     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84837   }
84838 
84839 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84840   template <typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84841   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84842   {
84843     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84844   }
84845 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84846 
84847 
84848   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84849   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84850   {
84851     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84852   }
84853 
84854 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84855   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84856   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84857   {
84858     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84859   }
84860 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84861 
84862 
84863   template <typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84864   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84865   {
84866     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84867   }
84868 
84869 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84870   template <typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84871   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84872   {
84873     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84874   }
84875 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84876 
84877 
84878   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84879   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84880   {
84881     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84882   }
84883 
84884 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84885   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84886   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84887   {
84888     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84889   }
84890 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84891 
84892 
84893   template <typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84894   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84895   {
84896     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84897   }
84898 
84899 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84900   template <typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84901   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84902   {
84903     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84904   }
84905 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84906 
84907   template <typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84908   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84909   {
84910     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84911   }
84912 
84913 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84914   template <typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84915   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84916   {
84917     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84918   }
84919 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84920 
84921 
84922   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84923   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84924   {
84925     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84926   }
84927 
84928 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84929   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84930   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84931   {
84932     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84933   }
84934 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84935 
84936 
84937   template <typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84938   VULKAN_HPP_INLINE void Device::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84939   {
84940     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84941   }
84942 
84943 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84944   template <typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84945   VULKAN_HPP_INLINE void Device::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84946   {
84947     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84948   }
84949 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84950 
84951 
84952   template <typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84953   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84954   {
84955     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84956   }
84957 
84958 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84959   template <typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84960   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84961   {
84962     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84963   }
84964 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84965 
84966 
84967   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84968   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84969   {
84970     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84971   }
84972 
84973 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84974   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84975   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84976   {
84977     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84978   }
84979 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84980 
84981 
84982   template <typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84983   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84984   {
84985     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84986   }
84987 
84988 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84989   template <typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84990   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84991   {
84992     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84993   }
84994 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84995 
84996 
84997   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84998   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84999   {
85000     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85001   }
85002 
85003 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85004   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85005   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85006   {
85007     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85008   }
85009 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85010 
85011 
85012   template <typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85013   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85014   {
85015     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85016   }
85017 
85018 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85019   template <typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85020   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85021   {
85022     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85023   }
85024 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85025 
85026 
85027   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85028   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85029   {
85030     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85031   }
85032 
85033 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85034   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85035   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85036   {
85037     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85038   }
85039 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85040 
85041 
85042   template <typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85043   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85044   {
85045     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85046   }
85047 
85048 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85049   template <typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85050   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85051   {
85052     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85053   }
85054 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85055 
85056 
85057   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85058   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85059   {
85060     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85061   }
85062 
85063 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85064   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85065   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85066   {
85067     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85068   }
85069 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85070 
85071 
85072   template <typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85073   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85074   {
85075     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85076   }
85077 
85078 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85079   template <typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85080   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85081   {
85082     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85083   }
85084 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85085 
85086 
85087   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85088   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85089   {
85090     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85091   }
85092 
85093 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85094   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85095   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85096   {
85097     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85098   }
85099 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85100 
85101 
85102   template <typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85103   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85104   {
85105     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85106   }
85107 
85108 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85109   template <typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85110   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85111   {
85112     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85113   }
85114 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85115 
85116 
85117   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85118   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85119   {
85120     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85121   }
85122 
85123 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85124   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85125   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85126   {
85127     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85128   }
85129 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85130 
85131 
85132   template <typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85133   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85134   {
85135     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85136   }
85137 
85138 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85139   template <typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85140   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85141   {
85142     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85143   }
85144 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85145 
85146 
85147   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85148   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85149   {
85150     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85151   }
85152 
85153 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85154   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85155   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85156   {
85157     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85158   }
85159 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85160 
85161 
85162   template <typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85163   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85164   {
85165     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85166   }
85167 
85168 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85169   template <typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85170   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85171   {
85172     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85173   }
85174 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85175 
85176 
85177   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85178   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85179   {
85180     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85181   }
85182 
85183 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85184   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85185   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85186   {
85187     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85188   }
85189 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85190 
85191 
85192   template <typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85193   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85194   {
85195     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85196   }
85197 
85198 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85199   template <typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85200   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85201   {
85202     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85203   }
85204 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85205 
85206 
85207   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85208   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85209   {
85210     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85211   }
85212 
85213 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85214   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85215   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85216   {
85217     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85218   }
85219 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85220 
85221 
85222   template <typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85223   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85224   {
85225     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85226   }
85227 
85228 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85229   template <typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85230   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85231   {
85232     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85233   }
85234 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85235 
85236 
85237   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85238   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85239   {
85240     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85241   }
85242 
85243 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85244   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85245   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85246   {
85247     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85248   }
85249 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85250 
85251 
85252   template <typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85253   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85254   {
85255     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85256   }
85257 
85258 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85259   template <typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85260   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85261   {
85262     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85263   }
85264 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85265 
85266 
85267   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85268   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85269   {
85270     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85271   }
85272 
85273 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85274   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85275   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85276   {
85277     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85278   }
85279 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85280 
85281 
85282   template <typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85283   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85284   {
85285     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85286   }
85287 
85288 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85289   template <typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85290   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85291   {
85292     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85293   }
85294 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85295 
85296 
85297   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85298   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85299   {
85300     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85301   }
85302 
85303 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85304   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85305   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85306   {
85307     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85308   }
85309 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85310 
85311 
85312   template <typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85313   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85314   {
85315     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85316   }
85317 
85318 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85319   template <typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85320   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85321   {
85322     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85323   }
85324 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85325 
85326 
85327   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85328   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85329   {
85330     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85331   }
85332 
85333 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85334   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85335   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85336   {
85337     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85338   }
85339 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85340 
85341 
85342   template <typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85343   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85344   {
85345     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85346   }
85347 
85348 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85349   template <typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85350   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85351   {
85352     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85353   }
85354 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85355 
85356   template <typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85357   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85358   {
85359     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85360   }
85361 
85362 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85363   template <typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85364   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85365   {
85366     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85367   }
85368 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85369 
85370 
85371   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85372   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85373   {
85374     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85375   }
85376 
85377 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85378   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85379   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85380   {
85381     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85382   }
85383 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85384 
85385 
85386   template <typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85387   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85388   {
85389     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85390   }
85391 
85392 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85393   template <typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85394   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85395   {
85396     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85397   }
85398 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85399 
85400 
85401   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85402   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85403   {
85404     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85405   }
85406 
85407 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85408   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85409   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85410   {
85411     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85412   }
85413 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85414 
85415 
85416   template <typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85417   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85418   {
85419     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85420   }
85421 
85422 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85423   template <typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85424   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85425   {
85426     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85427   }
85428 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85429 
85430 
85431   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85432   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85433   {
85434     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85435   }
85436 
85437 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85438   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85439   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85440   {
85441     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85442   }
85443 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85444 
85445 
85446   template <typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85447   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85448   {
85449     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85450   }
85451 
85452 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85453   template <typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85454   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85455   {
85456     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85457   }
85458 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85459 
85460 
85461   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85462   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85463   {
85464     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85465   }
85466 
85467 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85468   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85469   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85470   {
85471     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85472   }
85473 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85474 
85475 
85476   template <typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85477   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85478   {
85479     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85480   }
85481 
85482 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85483   template <typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85484   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85485   {
85486     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85487   }
85488 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85489 
85490 
85491   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85492   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85493   {
85494     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85495   }
85496 
85497 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85498   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85499   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85500   {
85501     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85502   }
85503 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85504 
85505 
85506 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
85507   template <typename Dispatch>
waitIdle(Dispatch const & d) const85508   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitIdle( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85509   {
85510     return static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
85511   }
85512 #else
85513   template <typename Dispatch>
waitIdle(Dispatch const & d) const85514   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::waitIdle( Dispatch const & d ) const
85515   {
85516     Result result = static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
85517     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" );
85518   }
85519 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85520 
85521 
85522 
85523   template <typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT * pDisplayPowerInfo,Dispatch const & d) const85524   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
85525   {
85526     return static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( pDisplayPowerInfo ) ) );
85527   }
85528 
85529 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85530   template <typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayPowerInfoEXT & displayPowerInfo,Dispatch const & d) const85531   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d ) const
85532   {
85533     Result result = static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( &displayPowerInfo ) ) );
85534     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" );
85535   }
85536 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85537 
85538 
85539   template <typename Dispatch>
flushMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const85540   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
85541   {
85542     return static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
85543   }
85544 
85545 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85546   template <typename Dispatch>
flushMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,Dispatch const & d) const85547   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
85548   {
85549     Result result = static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
85550     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" );
85551   }
85552 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85553 
85554 
85555   template <typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const85556   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
85557   {
85558     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
85559   }
85560 
85561 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85562   template <typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const85563   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
85564   {
85565     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
85566   }
85567 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85568 
85569 
85570   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::CommandPool commandPool,uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const85571   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
85572   {
85573     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
85574   }
85575 
85576 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85577   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::CommandPool commandPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const85578   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
85579   {
85580     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
85581   }
85582 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85583 
85584 
85585   template <typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const85586   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
85587   {
85588     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ) ) );
85589   }
85590 
85591 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85592   template <typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,Dispatch const & d) const85593   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
85594   {
85595     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size(), reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ) ) );
85596     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::freeDescriptorSets" );
85597   }
85598 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85599 
85600 
85601   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const85602   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
85603   {
85604     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ) ) );
85605   }
85606 
85607 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85608   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,Dispatch const & d) const85609   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
85610   {
85611     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size(), reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ) ) );
85612     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::free" );
85613   }
85614 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85615 
85616 
85617   template <typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85618   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85619   {
85620     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85621   }
85622 
85623 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85624   template <typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85625   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85626   {
85627     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85628   }
85629 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85630 
85631 
85632   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DeviceMemory memory,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85633   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85634   {
85635     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85636   }
85637 
85638 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85639   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85640   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85641   {
85642     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85643   }
85644 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85645 
85646 
85647 #ifdef VK_ENABLE_BETA_EXTENSIONS
85648   template <typename Dispatch>
getAccelerationStructureAddressKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR * pInfo,Dispatch const & d) const85649   VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85650   {
85651     return static_cast<DeviceAddress>( d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( pInfo ) ) );
85652   }
85653 
85654 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85655   template <typename Dispatch>
getAccelerationStructureAddressKHR(const AccelerationStructureDeviceAddressInfoKHR & info,Dispatch const & d) const85656   VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85657   {
85658     return d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( &info ) );
85659   }
85660 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85661 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85662 
85663 
85664   template <typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,size_t dataSize,void * pData,Dispatch const & d) const85665   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85666   {
85667     return static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), dataSize, pData ) );
85668   }
85669 
85670 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85671   template <typename T, typename Dispatch>
85672   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,ArrayProxy<T> const & data,Dispatch const & d) const85673   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getAccelerationStructureHandleNV(  VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, ArrayProxy<T> const &data, Dispatch const &d  ) const
85674   {
85675         Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
85676     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureHandleNV" );
85677 
85678   }
85679 
85680   template <typename T, typename Allocator, typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,size_t dataSize,Dispatch const & d) const85681   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<T,Allocator>>::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, size_t dataSize, Dispatch const & d ) const
85682   {
85683     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
85684     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
85685     Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), data.size(), reinterpret_cast<void*>( data.data() ) ) );
85686     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
85687   }
85688 
85689   template <typename T, typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Dispatch const & d) const85690   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<T>::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Dispatch const & d ) const
85691   {
85692     T data;
85693     Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), sizeof( T ), reinterpret_cast<void*>( &data ) ) );
85694     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
85695   }
85696 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85697 
85698 
85699 #ifdef VK_ENABLE_BETA_EXTENSIONS
85700   template <typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const85701   VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85702   {
85703     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
85704   }
85705 
85706 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85707   template <typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const AccelerationStructureMemoryRequirementsInfoKHR & info,Dispatch const & d) const85708   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85709   {
85710     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
85711     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
85712     return memoryRequirements;
85713   }
85714 
85715   template <typename X, typename Y, typename... Z, typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const AccelerationStructureMemoryRequirementsInfoKHR & info,Dispatch const & d) const85716   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85717   {
85718     StructureChain<X, Y, Z...> structureChain;
85719     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
85720     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
85721     return structureChain;
85722   }
85723 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85724 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85725 
85726 
85727   template <typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR * pMemoryRequirements,Dispatch const & d) const85728   VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85729   {
85730     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( pInfo ), reinterpret_cast< VkMemoryRequirements2KHR *>( pMemoryRequirements ) );
85731   }
85732 
85733 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85734   template <typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const85735   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85736   {
85737     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements;
85738     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ), reinterpret_cast< VkMemoryRequirements2KHR *>( &memoryRequirements ) );
85739     return memoryRequirements;
85740   }
85741 
85742   template <typename X, typename Y, typename... Z, typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const85743   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85744   {
85745     StructureChain<X, Y, Z...> structureChain;
85746     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
85747     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ), reinterpret_cast< VkMemoryRequirements2KHR *>( &memoryRequirements ) );
85748     return structureChain;
85749   }
85750 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85751 
85752 
85753 #ifdef VK_USE_PLATFORM_ANDROID_KHR
85754   template <typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer * buffer,VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID * pProperties,Dispatch const & d) const85755   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
85756   {
85757     return static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast< VkAndroidHardwareBufferPropertiesANDROID *>( pProperties ) ) );
85758   }
85759 
85760 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85761   template <typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const85762   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
85763   {
85764     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties;
85765     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast< VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
85766     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
85767   }
85768 
85769   template <typename X, typename Y, typename... Z, typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const85770   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
85771   {
85772     StructureChain<X, Y, Z...> structureChain;
85773     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>();
85774     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast< VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
85775     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
85776   }
85777 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85778 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
85779 
85780 
85781   template <typename Dispatch>
getBufferAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const85782   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85783   {
85784     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
85785   }
85786 
85787 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85788   template <typename Dispatch>
getBufferAddress(const BufferDeviceAddressInfo & info,Dispatch const & d) const85789   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85790   {
85791     return d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
85792   }
85793 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85794 
85795   template <typename Dispatch>
getBufferAddressEXT(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const85796   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85797   {
85798     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
85799   }
85800 
85801 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85802   template <typename Dispatch>
getBufferAddressEXT(const BufferDeviceAddressInfo & info,Dispatch const & d) const85803   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85804   {
85805     return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
85806   }
85807 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85808 
85809   template <typename Dispatch>
getBufferAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const85810   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85811   {
85812     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
85813   }
85814 
85815 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85816   template <typename Dispatch>
getBufferAddressKHR(const BufferDeviceAddressInfo & info,Dispatch const & d) const85817   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85818   {
85819     return d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
85820   }
85821 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85822 
85823 
85824   template <typename Dispatch>
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const85825   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85826   {
85827     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast< VkMemoryRequirements *>( pMemoryRequirements ) );
85828   }
85829 
85830 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85831   template <typename Dispatch>
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,Dispatch const & d) const85832   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85833   {
85834     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
85835     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast< VkMemoryRequirements *>( &memoryRequirements ) );
85836     return memoryRequirements;
85837   }
85838 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85839 
85840 
85841   template <typename Dispatch>
getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const85842   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85843   {
85844     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
85845   }
85846 
85847 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85848   template <typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const85849   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85850   {
85851     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
85852     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
85853     return memoryRequirements;
85854   }
85855 
85856   template <typename X, typename Y, typename... Z, typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const85857   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85858   {
85859     StructureChain<X, Y, Z...> structureChain;
85860     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
85861     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
85862     return structureChain;
85863   }
85864 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85865 
85866   template <typename Dispatch>
getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const85867   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85868   {
85869     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
85870   }
85871 
85872 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85873   template <typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const85874   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85875   {
85876     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
85877     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
85878     return memoryRequirements;
85879   }
85880 
85881   template <typename X, typename Y, typename... Z, typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const85882   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85883   {
85884     StructureChain<X, Y, Z...> structureChain;
85885     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
85886     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
85887     return structureChain;
85888   }
85889 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85890 
85891 
85892   template <typename Dispatch>
getBufferOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const85893   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85894   {
85895     return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) );
85896   }
85897 
85898 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85899   template <typename Dispatch>
getBufferOpaqueCaptureAddress(const BufferDeviceAddressInfo & info,Dispatch const & d) const85900   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85901   {
85902     return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
85903   }
85904 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85905 
85906   template <typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const85907   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85908   {
85909     return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) );
85910   }
85911 
85912 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85913   template <typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const BufferDeviceAddressInfo & info,Dispatch const & d) const85914   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85915   {
85916     return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
85917   }
85918 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85919 
85920   template<typename Dispatch>
getCalibratedTimestampsEXT(uint32_t timestampCount,const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation,Dispatch const & d) const85921   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
85922   {
85923     return static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampCount, reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( pTimestampInfos ), pTimestamps, pMaxDeviation ) );
85924   }
85925 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85926   template<typename Dispatch>
getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,ArrayProxy<uint64_t> const & timestamps,Dispatch const & d) const85927   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
85928   {
85929 #ifdef VULKAN_HPP_NO_EXCEPTIONS
85930     VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() );
85931 #else
85932     if ( timestampInfos.size() != timestamps.size() )
85933     {
85934       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::getCalibratedTimestampsEXT: timestampInfos.size() != timestamps.size()" );
85935     }
85936 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
85937     uint64_t maxDeviation;
85938     Result result = static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size() , reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
85939     return createResultValue( result, maxDeviation, VULKAN_HPP_NAMESPACE_STRING"::Device::getCalibratedTimestampsEXT" );
85940   }
85941 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85942 
85943 #ifdef VK_ENABLE_BETA_EXTENSIONS
85944 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
85945   template<typename Dispatch>
getDeferredOperationMaxConcurrencyKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const85946   VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85947   {
85948     return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) );
85949   }
85950 #else
85951   template<typename Dispatch>
getDeferredOperationMaxConcurrencyKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const85952   VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85953   {
85954     return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) );
85955   }
85956 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85957 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85958 
85959 
85960 #ifdef VK_ENABLE_BETA_EXTENSIONS
85961 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
85962   template <typename Dispatch>
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const85963   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85964   {
85965     return static_cast<Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
85966   }
85967 #else
85968   template <typename Dispatch>
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const85969   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const
85970   {
85971     Result result = static_cast<Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
85972     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getDeferredOperationResultKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
85973   }
85974 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85975 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85976 
85977 
85978 
85979   template <typename Dispatch>
getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const85980   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85981   {
85982     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( pSupport ) );
85983   }
85984 
85985 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85986   template <typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const85987   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85988   {
85989     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
85990     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( &support ) );
85991     return support;
85992   }
85993 
85994   template <typename X, typename Y, typename... Z, typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const85995   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85996   {
85997     StructureChain<X, Y, Z...> structureChain;
85998     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
85999     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( &support ) );
86000     return structureChain;
86001   }
86002 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86003 
86004   template <typename Dispatch>
getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const86005   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86006   {
86007     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( pSupport ) );
86008   }
86009 
86010 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86011   template <typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const86012   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86013   {
86014     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
86015     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( &support ) );
86016     return support;
86017   }
86018 
86019   template <typename X, typename Y, typename... Z, typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const86020   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86021   {
86022     StructureChain<X, Y, Z...> structureChain;
86023     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
86024     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( &support ) );
86025     return structureChain;
86026   }
86027 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86028 
86029 
86030 #ifdef VK_ENABLE_BETA_EXTENSIONS
86031   template <typename Dispatch>
getAccelerationStructureCompatibilityKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR * version,Dispatch const & d) const86032   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR* version, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86033   {
86034     return static_cast<Result>( d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast<const VkAccelerationStructureVersionKHR *>( version ) ) );
86035   }
86036 
86037 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86038   template <typename Dispatch>
getAccelerationStructureCompatibilityKHR(const AccelerationStructureVersionKHR & version,Dispatch const & d) const86039   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionKHR & version, Dispatch const & d ) const
86040   {
86041     Result result = static_cast<Result>( d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast<const VkAccelerationStructureVersionKHR *>( &version ) ) );
86042     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureCompatibilityKHR" );
86043   }
86044 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86045 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
86046 
86047 
86048   template <typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const86049   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
86050   {
86051     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) );
86052   }
86053 
86054 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86055   template <typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const86056   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
86057   {
86058     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
86059     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) );
86060     return peerMemoryFeatures;
86061   }
86062 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86063 
86064   template <typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const86065   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
86066   {
86067     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) );
86068   }
86069 
86070 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86071   template <typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const86072   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
86073   {
86074     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
86075     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) );
86076     return peerMemoryFeatures;
86077   }
86078 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86079 
86080 
86081   template <typename Dispatch>
getGroupPresentCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities,Dispatch const & d) const86082   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86083   {
86084     return static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast< VkDeviceGroupPresentCapabilitiesKHR *>( pDeviceGroupPresentCapabilities ) ) );
86085   }
86086 
86087 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86088   template <typename Dispatch>
getGroupPresentCapabilitiesKHR(Dispatch const & d) const86089   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type Device::getGroupPresentCapabilitiesKHR( Dispatch const & d ) const
86090   {
86091     VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
86092     Result result = static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast< VkDeviceGroupPresentCapabilitiesKHR *>( &deviceGroupPresentCapabilities ) ) );
86093     return createResultValue( result, deviceGroupPresentCapabilities, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" );
86094   }
86095 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86096 
86097 
86098 #ifdef VK_USE_PLATFORM_WIN32_KHR
86099   template <typename Dispatch>
getGroupSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const86100   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
86101   {
86102     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) );
86103   }
86104 
86105 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86106   template <typename Dispatch>
getGroupSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const86107   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
86108   {
86109     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
86110     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
86111     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" );
86112   }
86113 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86114 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
86115 
86116 
86117   template <typename Dispatch>
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const86118   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
86119   {
86120     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) );
86121   }
86122 
86123 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86124   template <typename Dispatch>
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const86125   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
86126   {
86127     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
86128     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
86129     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" );
86130   }
86131 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86132 
86133 
86134   template <typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize * pCommittedMemoryInBytes,Dispatch const & d) const86135   VULKAN_HPP_INLINE void Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86136   {
86137     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast< VkDeviceSize *>( pCommittedMemoryInBytes ) );
86138   }
86139 
86140 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86141   template <typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const86142   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86143   {
86144     VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes;
86145     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast< VkDeviceSize *>( &committedMemoryInBytes ) );
86146     return committedMemoryInBytes;
86147   }
86148 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86149 
86150 
86151   template <typename Dispatch>
getMemoryOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const86152   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86153   {
86154     return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( pInfo ) );
86155   }
86156 
86157 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86158   template <typename Dispatch>
getMemoryOpaqueCaptureAddress(const DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const86159   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86160   {
86161     return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
86162   }
86163 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86164 
86165   template <typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const86166   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86167   {
86168     return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( pInfo ) );
86169   }
86170 
86171 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86172   template <typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const86173   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86174   {
86175     return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
86176   }
86177 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86178 
86179 
86180   template <typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const86181   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86182   {
86183     return d.vkGetDeviceProcAddr( m_device, pName );
86184   }
86185 
86186 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86187   template <typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const86188   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86189   {
86190     return d.vkGetDeviceProcAddr( m_device, name.c_str() );
86191   }
86192 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86193 
86194   template<typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const86195   VULKAN_HPP_INLINE void Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
86196   {
86197     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue*>( pQueue ) );
86198   }
86199 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86200   template<typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,Dispatch const & d) const86201   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
86202   {
86203     VULKAN_HPP_NAMESPACE::Queue queue;
86204     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue*>( &queue ) );
86205     return queue;
86206   }
86207 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86208 
86209   template<typename Dispatch>
getQueue2(const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 * pQueueInfo,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const86210   VULKAN_HPP_INLINE void Device::getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
86211   {
86212     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2*>( pQueueInfo ), reinterpret_cast<VkQueue*>( pQueue ) );
86213   }
86214 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86215   template<typename Dispatch>
getQueue2(const DeviceQueueInfo2 & queueInfo,Dispatch const & d) const86216   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
86217   {
86218     VULKAN_HPP_NAMESPACE::Queue queue;
86219     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2*>( &queueInfo ), reinterpret_cast<VkQueue*>( &queue ) );
86220     return queue;
86221   }
86222 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86223 
86224 
86225 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86226   template <typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const86227   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86228   {
86229     return static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
86230   }
86231 #else
86232   template <typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const86233   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
86234   {
86235     Result result = static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
86236     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEventStatus", { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } );
86237   }
86238 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86239 
86240 
86241 
86242   template <typename Dispatch>
getFenceFdKHR(const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const86243   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86244   {
86245     return static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
86246   }
86247 
86248 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86249   template <typename Dispatch>
getFenceFdKHR(const FenceGetFdInfoKHR & getFdInfo,Dispatch const & d) const86250   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
86251   {
86252     int fd;
86253     Result result = static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR *>( &getFdInfo ), &fd ) );
86254     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" );
86255   }
86256 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86257 
86258 
86259 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86260   template <typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const86261   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86262   {
86263     return static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
86264   }
86265 #else
86266   template <typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const86267   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
86268   {
86269     Result result = static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
86270     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceStatus", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
86271   }
86272 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86273 
86274 
86275 
86276 #ifdef VK_USE_PLATFORM_WIN32_KHR
86277   template <typename Dispatch>
getFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const86278   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86279   {
86280     return static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
86281   }
86282 
86283 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86284   template <typename Dispatch>
getFenceWin32HandleKHR(const FenceGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const86285   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
86286   {
86287     HANDLE handle;
86288     Result result = static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
86289     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" );
86290   }
86291 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86292 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
86293 
86294 
86295   template <typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const86296   VULKAN_HPP_INLINE void Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86297   {
86298     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
86299   }
86300 
86301 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86302   template <typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const86303   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86304   {
86305     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
86306     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
86307     return memoryRequirements;
86308   }
86309 
86310   template <typename X, typename Y, typename... Z, typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const86311   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86312   {
86313     StructureChain<X, Y, Z...> structureChain;
86314     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
86315     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
86316     return structureChain;
86317   }
86318 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86319 
86320 
86321   template <typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT * pProperties,Dispatch const & d) const86322   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
86323   {
86324     return static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast< VkImageDrmFormatModifierPropertiesEXT *>( pProperties ) ) );
86325   }
86326 
86327 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86328   template <typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const86329   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const
86330   {
86331     VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties;
86332     Result result = static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast< VkImageDrmFormatModifierPropertiesEXT *>( &properties ) ) );
86333     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageDrmFormatModifierPropertiesEXT" );
86334   }
86335 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86336 
86337 
86338   template <typename Dispatch>
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const86339   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86340   {
86341     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast< VkMemoryRequirements *>( pMemoryRequirements ) );
86342   }
86343 
86344 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86345   template <typename Dispatch>
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const86346   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86347   {
86348     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
86349     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast< VkMemoryRequirements *>( &memoryRequirements ) );
86350     return memoryRequirements;
86351   }
86352 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86353 
86354 
86355   template <typename Dispatch>
getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const86356   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86357   {
86358     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
86359   }
86360 
86361 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86362   template <typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const86363   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86364   {
86365     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
86366     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
86367     return memoryRequirements;
86368   }
86369 
86370   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const86371   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86372   {
86373     StructureChain<X, Y, Z...> structureChain;
86374     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
86375     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
86376     return structureChain;
86377   }
86378 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86379 
86380   template <typename Dispatch>
getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const86381   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86382   {
86383     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
86384   }
86385 
86386 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86387   template <typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const86388   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86389   {
86390     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
86391     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
86392     return memoryRequirements;
86393   }
86394 
86395   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const86396   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86397   {
86398     StructureChain<X, Y, Z...> structureChain;
86399     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
86400     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast< VkMemoryRequirements2 *>( &memoryRequirements ) );
86401     return structureChain;
86402   }
86403 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86404 
86405 
86406   template <typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements * pSparseMemoryRequirements,Dispatch const & d) const86407   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
86408   {
86409     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements *>( pSparseMemoryRequirements ) );
86410   }
86411 
86412 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86413   template <typename SparseImageMemoryRequirementsAllocator, typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const86414   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const
86415   {
86416     std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements;
86417     uint32_t sparseMemoryRequirementCount;
86418     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
86419     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
86420     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) );
86421     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
86422     return sparseMemoryRequirements;
86423   }
86424 
86425   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) const86426   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, Dispatch const & d ) const
86427   {
86428     std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements( sparseImageMemoryRequirementsAllocator );
86429     uint32_t sparseMemoryRequirementCount;
86430     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
86431     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
86432     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) );
86433     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
86434     return sparseMemoryRequirements;
86435   }
86436 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86437 
86438 
86439   template <typename Dispatch>
getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const86440   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
86441   {
86442     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
86443   }
86444 
86445 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86446   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch>
getImageSparseMemoryRequirements2(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const86447   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const
86448   {
86449     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
86450     uint32_t sparseMemoryRequirementCount;
86451     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
86452     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
86453     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
86454     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
86455     return sparseMemoryRequirements;
86456   }
86457 
86458   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) const86459   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d ) const
86460   {
86461     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements( sparseImageMemoryRequirements2Allocator );
86462     uint32_t sparseMemoryRequirementCount;
86463     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
86464     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
86465     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
86466     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
86467     return sparseMemoryRequirements;
86468   }
86469 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86470 
86471   template <typename Dispatch>
getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const86472   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
86473   {
86474     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
86475   }
86476 
86477 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86478   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch>
getImageSparseMemoryRequirements2KHR(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const86479   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const
86480   {
86481     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
86482     uint32_t sparseMemoryRequirementCount;
86483     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
86484     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
86485     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
86486     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
86487     return sparseMemoryRequirements;
86488   }
86489 
86490   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) const86491   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d ) const
86492   {
86493     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements( sparseImageMemoryRequirements2Allocator );
86494     uint32_t sparseMemoryRequirementCount;
86495     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
86496     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
86497     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
86498     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
86499     return sparseMemoryRequirements;
86500   }
86501 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86502 
86503 
86504   template <typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource * pSubresource,VULKAN_HPP_NAMESPACE::SubresourceLayout * pLayout,Dispatch const & d) const86505   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
86506   {
86507     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource *>( pSubresource ), reinterpret_cast< VkSubresourceLayout *>( pLayout ) );
86508   }
86509 
86510 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86511   template <typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const ImageSubresource & subresource,Dispatch const & d) const86512   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
86513   {
86514     VULKAN_HPP_NAMESPACE::SubresourceLayout layout;
86515     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource *>( &subresource ), reinterpret_cast< VkSubresourceLayout *>( &layout ) );
86516     return layout;
86517   }
86518 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86519 
86520 
86521   template <typename Dispatch>
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX * pProperties,Dispatch const & d) const86522   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
86523   {
86524     return static_cast<Result>( d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast< VkImageViewAddressPropertiesNVX *>( pProperties ) ) );
86525   }
86526 
86527 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86528   template <typename Dispatch>
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,Dispatch const & d) const86529   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
86530   {
86531     VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties;
86532     Result result = static_cast<Result>( d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast< VkImageViewAddressPropertiesNVX *>( &properties ) ) );
86533     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewAddressNVX" );
86534   }
86535 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86536 
86537 
86538   template <typename Dispatch>
getImageViewHandleNVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo,Dispatch const & d) const86539   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86540   {
86541     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX *>( pInfo ) );
86542   }
86543 
86544 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86545   template <typename Dispatch>
getImageViewHandleNVX(const ImageViewHandleInfoNVX & info,Dispatch const & d) const86546   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86547   {
86548     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX *>( &info ) );
86549   }
86550 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86551 
86552 
86553 #ifdef VK_USE_PLATFORM_ANDROID_KHR
86554   template <typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer,Dispatch const & d) const86555   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
86556   {
86557     return static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( pInfo ), pBuffer ) );
86558   }
86559 
86560 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86561   template <typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const MemoryGetAndroidHardwareBufferInfoANDROID & info,Dispatch const & d) const86562   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<struct AHardwareBuffer*>::type Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const & d ) const
86563   {
86564     struct AHardwareBuffer* buffer;
86565     Result result = static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( &info ), &buffer ) );
86566     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" );
86567   }
86568 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86569 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
86570 
86571 
86572   template <typename Dispatch>
getMemoryFdKHR(const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const86573   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86574   {
86575     return static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
86576   }
86577 
86578 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86579   template <typename Dispatch>
getMemoryFdKHR(const MemoryGetFdInfoKHR & getFdInfo,Dispatch const & d) const86580   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
86581   {
86582     int fd;
86583     Result result = static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR *>( &getFdInfo ), &fd ) );
86584     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" );
86585   }
86586 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86587 
86588 
86589   template <typename Dispatch>
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR * pMemoryFdProperties,Dispatch const & d) const86590   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
86591   {
86592     return static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast< VkMemoryFdPropertiesKHR *>( pMemoryFdProperties ) ) );
86593   }
86594 
86595 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86596   template <typename Dispatch>
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,Dispatch const & d) const86597   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
86598   {
86599     VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties;
86600     Result result = static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast< VkMemoryFdPropertiesKHR *>( &memoryFdProperties ) ) );
86601     return createResultValue( result, memoryFdProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" );
86602   }
86603 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86604 
86605 
86606   template <typename Dispatch>
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties,Dispatch const & d) const86607   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
86608   {
86609     return static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast< VkMemoryHostPointerPropertiesEXT *>( pMemoryHostPointerProperties ) ) );
86610   }
86611 
86612 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86613   template <typename Dispatch>
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,Dispatch const & d) const86614   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
86615   {
86616     VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
86617     Result result = static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast< VkMemoryHostPointerPropertiesEXT *>( &memoryHostPointerProperties ) ) );
86618     return createResultValue( result, memoryHostPointerProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" );
86619   }
86620 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86621 
86622 
86623 #ifdef VK_USE_PLATFORM_WIN32_KHR
86624   template <typename Dispatch>
getMemoryWin32HandleKHR(const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const86625   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86626   {
86627     return static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
86628   }
86629 
86630 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86631   template <typename Dispatch>
getMemoryWin32HandleKHR(const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const86632   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
86633   {
86634     HANDLE handle;
86635     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
86636     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" );
86637   }
86638 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86639 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
86640 
86641 
86642 #ifdef VK_USE_PLATFORM_WIN32_KHR
86643   template <typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle,Dispatch const & d) const86644   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
86645   {
86646     return static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), pHandle ) );
86647   }
86648 
86649 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86650   template <typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,Dispatch const & d) const86651   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
86652   {
86653     HANDLE handle;
86654     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle ) );
86655     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleNV" );
86656   }
86657 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86658 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
86659 
86660 
86661 #ifdef VK_USE_PLATFORM_WIN32_KHR
86662   template <typename Dispatch>
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties,Dispatch const & d) const86663   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
86664   {
86665     return static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast< VkMemoryWin32HandlePropertiesKHR *>( pMemoryWin32HandleProperties ) ) );
86666   }
86667 
86668 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86669   template <typename Dispatch>
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,Dispatch const & d) const86670   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
86671   {
86672     VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
86673     Result result = static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast< VkMemoryWin32HandlePropertiesKHR *>( &memoryWin32HandleProperties ) ) );
86674     return createResultValue( result, memoryWin32HandleProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" );
86675   }
86676 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86677 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
86678 
86679   template<typename Dispatch>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE * pPresentationTimings,Dispatch const & d) const86680   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
86681   {
86682     return static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), pPresentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( pPresentationTimings ) ) );
86683   }
86684 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86685   template<typename Allocator , typename Dispatch>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const86686   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const
86687   {
86688     std::vector<PastPresentationTimingGOOGLE,Allocator> presentationTimings;
86689     uint32_t presentationTimingCount;
86690     Result result;
86691     do
86692     {
86693       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
86694       if ( ( result == Result::eSuccess ) && presentationTimingCount )
86695       {
86696         presentationTimings.resize( presentationTimingCount );
86697         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( presentationTimings.data() ) ) );
86698       }
86699     } while ( result == Result::eIncomplete );
86700     if ( result == Result::eSuccess )
86701     {
86702       VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
86703       presentationTimings.resize( presentationTimingCount );
86704     }
86705     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
86706   }
86707   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PastPresentationTimingGOOGLE>::value, int>::type>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Allocator const & vectorAllocator,Dispatch const & d) const86708   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const
86709   {
86710     std::vector<PastPresentationTimingGOOGLE,Allocator> presentationTimings( vectorAllocator );
86711     uint32_t presentationTimingCount;
86712     Result result;
86713     do
86714     {
86715       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
86716       if ( ( result == Result::eSuccess ) && presentationTimingCount )
86717       {
86718         presentationTimings.resize( presentationTimingCount );
86719         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( presentationTimings.data() ) ) );
86720       }
86721     } while ( result == Result::eIncomplete );
86722     if ( result == Result::eSuccess )
86723     {
86724       VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
86725       presentationTimings.resize( presentationTimingCount );
86726     }
86727     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
86728   }
86729 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86730 
86731 
86732   template <typename Dispatch>
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,VULKAN_HPP_NAMESPACE::PerformanceValueINTEL * pValue,Dispatch const & d) const86733   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
86734   {
86735     return static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast< VkPerformanceValueINTEL *>( pValue ) ) );
86736   }
86737 
86738 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86739   template <typename Dispatch>
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,Dispatch const & d) const86740   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
86741   {
86742     VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value;
86743     Result result = static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast< VkPerformanceValueINTEL *>( &value ) ) );
86744     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" );
86745   }
86746 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86747 
86748   template<typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,size_t * pDataSize,void * pData,Dispatch const & d) const86749   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
86750   {
86751     return static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), pDataSize, pData ) );
86752   }
86753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86754   template<typename Allocator , typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Dispatch const & d) const86755   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const &d ) const
86756   {
86757     std::vector<uint8_t,Allocator> data;
86758     size_t dataSize;
86759     Result result;
86760     do
86761     {
86762       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
86763       if ( ( result == Result::eSuccess ) && dataSize )
86764       {
86765         data.resize( dataSize );
86766         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
86767       }
86768     } while ( result == Result::eIncomplete );
86769     if ( result == Result::eSuccess )
86770     {
86771       VULKAN_HPP_ASSERT( dataSize <= data.size() );
86772       data.resize( dataSize );
86773     }
86774     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
86775   }
86776   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Allocator const & vectorAllocator,Dispatch const & d) const86777   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Allocator const& vectorAllocator, Dispatch const &d ) const
86778   {
86779     std::vector<uint8_t,Allocator> data( vectorAllocator );
86780     size_t dataSize;
86781     Result result;
86782     do
86783     {
86784       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
86785       if ( ( result == Result::eSuccess ) && dataSize )
86786       {
86787         data.resize( dataSize );
86788         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
86789       }
86790     } while ( result == Result::eIncomplete );
86791     if ( result == Result::eSuccess )
86792     {
86793       VULKAN_HPP_ASSERT( dataSize <= data.size() );
86794       data.resize( dataSize );
86795     }
86796     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
86797   }
86798 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86799 
86800   template<typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR * pInternalRepresentations,Dispatch const & d) const86801   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
86802   {
86803     return static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( pExecutableInfo ), pInternalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( pInternalRepresentations ) ) );
86804   }
86805 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86806   template<typename Allocator , typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const86807   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d ) const
86808   {
86809     std::vector<PipelineExecutableInternalRepresentationKHR,Allocator> internalRepresentations;
86810     uint32_t internalRepresentationCount;
86811     Result result;
86812     do
86813     {
86814       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, nullptr ) );
86815       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
86816       {
86817         internalRepresentations.resize( internalRepresentationCount );
86818         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( internalRepresentations.data() ) ) );
86819       }
86820     } while ( result == Result::eIncomplete );
86821     if ( result == Result::eSuccess )
86822     {
86823       VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
86824       internalRepresentations.resize( internalRepresentationCount );
86825     }
86826     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
86827   }
86828   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableInternalRepresentationKHR>::value, int>::type>
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,Allocator const & vectorAllocator,Dispatch const & d) const86829   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
86830   {
86831     std::vector<PipelineExecutableInternalRepresentationKHR,Allocator> internalRepresentations( vectorAllocator );
86832     uint32_t internalRepresentationCount;
86833     Result result;
86834     do
86835     {
86836       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, nullptr ) );
86837       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
86838       {
86839         internalRepresentations.resize( internalRepresentationCount );
86840         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( internalRepresentations.data() ) ) );
86841       }
86842     } while ( result == Result::eIncomplete );
86843     if ( result == Result::eSuccess )
86844     {
86845       VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
86846       internalRepresentations.resize( internalRepresentationCount );
86847     }
86848     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
86849   }
86850 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86851 
86852   template<typename Dispatch>
getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR * pProperties,Dispatch const & d) const86853   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
86854   {
86855     return static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( pPipelineInfo ), pExecutableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( pProperties ) ) );
86856   }
86857 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86858   template<typename Allocator , typename Dispatch>
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,Dispatch const & d) const86859   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const &d ) const
86860   {
86861     std::vector<PipelineExecutablePropertiesKHR,Allocator> properties;
86862     uint32_t executableCount;
86863     Result result;
86864     do
86865     {
86866       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, nullptr ) );
86867       if ( ( result == Result::eSuccess ) && executableCount )
86868       {
86869         properties.resize( executableCount );
86870         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( properties.data() ) ) );
86871       }
86872     } while ( result == Result::eIncomplete );
86873     if ( result == Result::eSuccess )
86874     {
86875       VULKAN_HPP_ASSERT( executableCount <= properties.size() );
86876       properties.resize( executableCount );
86877     }
86878     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
86879   }
86880   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutablePropertiesKHR>::value, int>::type>
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,Allocator const & vectorAllocator,Dispatch const & d) const86881   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
86882   {
86883     std::vector<PipelineExecutablePropertiesKHR,Allocator> properties( vectorAllocator );
86884     uint32_t executableCount;
86885     Result result;
86886     do
86887     {
86888       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, nullptr ) );
86889       if ( ( result == Result::eSuccess ) && executableCount )
86890       {
86891         properties.resize( executableCount );
86892         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( properties.data() ) ) );
86893       }
86894     } while ( result == Result::eIncomplete );
86895     if ( result == Result::eSuccess )
86896     {
86897       VULKAN_HPP_ASSERT( executableCount <= properties.size() );
86898       properties.resize( executableCount );
86899     }
86900     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
86901   }
86902 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86903 
86904   template<typename Dispatch>
getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR * pStatistics,Dispatch const & d) const86905   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
86906   {
86907     return static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( pExecutableInfo ), pStatisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( pStatistics ) ) );
86908   }
86909 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86910   template<typename Allocator , typename Dispatch>
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const86911   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d ) const
86912   {
86913     std::vector<PipelineExecutableStatisticKHR,Allocator> statistics;
86914     uint32_t statisticCount;
86915     Result result;
86916     do
86917     {
86918       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, nullptr ) );
86919       if ( ( result == Result::eSuccess ) && statisticCount )
86920       {
86921         statistics.resize( statisticCount );
86922         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( statistics.data() ) ) );
86923       }
86924     } while ( result == Result::eIncomplete );
86925     if ( result == Result::eSuccess )
86926     {
86927       VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
86928       statistics.resize( statisticCount );
86929     }
86930     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
86931   }
86932   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableStatisticKHR>::value, int>::type>
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,Allocator const & vectorAllocator,Dispatch const & d) const86933   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
86934   {
86935     std::vector<PipelineExecutableStatisticKHR,Allocator> statistics( vectorAllocator );
86936     uint32_t statisticCount;
86937     Result result;
86938     do
86939     {
86940       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, nullptr ) );
86941       if ( ( result == Result::eSuccess ) && statisticCount )
86942       {
86943         statistics.resize( statisticCount );
86944         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( statistics.data() ) ) );
86945       }
86946     } while ( result == Result::eIncomplete );
86947     if ( result == Result::eSuccess )
86948     {
86949       VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
86950       statistics.resize( statisticCount );
86951     }
86952     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
86953   }
86954 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86955 
86956 
86957   template <typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t * pData,Dispatch const & d) const86958   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
86959   {
86960     d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), pData );
86961   }
86962 
86963 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86964   template <typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Dispatch const & d) const86965   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
86966   {
86967     uint64_t data;
86968     d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), &data );
86969     return data;
86970   }
86971 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86972 
86973 
86974   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) const86975   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
86976   {
86977     return static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, dataSize, pData, static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
86978   }
86979 
86980 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86981   template <typename T, typename Dispatch>
86982   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) const86983   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
86984   {
86985         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 ) ) );
86986     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } );
86987 
86988   }
86989 
86990   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) const86991   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
86992   {
86993     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
86994     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
86995     Result result = static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, data.size(), reinterpret_cast<void*>( data.data() ), static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
86996     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResults", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
86997   }
86998 
86999   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) const87000   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
87001   {
87002     T data;
87003     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 ) ) );
87004     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResult", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
87005   }
87006 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87007 
87008 
87009 #ifdef VK_ENABLE_BETA_EXTENSIONS
87010   template <typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const87011   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
87012   {
87013     return static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
87014   }
87015 
87016 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87017   template <typename T, typename Dispatch>
87018   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) const87019   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
87020   {
87021         Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
87022     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
87023 
87024   }
87025 
87026   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) const87027   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
87028   {
87029     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
87030     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
87031     Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size(), reinterpret_cast<void*>( data.data() ) ) );
87032     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
87033   }
87034 
87035   template <typename T, typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandleKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const87036   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
87037   {
87038     T data;
87039     Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void*>( &data ) ) );
87040     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandleKHR" );
87041   }
87042 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87043 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
87044 
87045 
87046 #ifdef VK_ENABLE_BETA_EXTENSIONS
87047   template <typename Dispatch>
getRayTracingShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const87048   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
87049   {
87050     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
87051   }
87052 
87053 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87054   template <typename T, typename Dispatch>
87055   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) const87056   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
87057   {
87058         Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
87059     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesKHR" );
87060 
87061   }
87062 
87063   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) const87064   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
87065   {
87066     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
87067     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
87068     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size(), reinterpret_cast<void*>( data.data() ) ) );
87069     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesKHR" );
87070   }
87071 
87072   template <typename T, typename Dispatch>
getRayTracingShaderGroupHandleKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const87073   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
87074   {
87075     T data;
87076     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void*>( &data ) ) );
87077     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleKHR" );
87078   }
87079 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87080 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
87081 
87082   template <typename Dispatch>
getRayTracingShaderGroupHandlesNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const87083   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
87084   {
87085     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
87086   }
87087 
87088 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87089   template <typename T, typename Dispatch>
87090   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) const87091   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
87092   {
87093         Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
87094     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesNV" );
87095 
87096   }
87097 
87098   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) const87099   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
87100   {
87101     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
87102     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
87103     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size(), reinterpret_cast<void*>( data.data() ) ) );
87104     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesNV" );
87105   }
87106 
87107   template <typename T, typename Dispatch>
getRayTracingShaderGroupHandleNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const87108   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
87109   {
87110     T data;
87111     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void*>( &data ) ) );
87112     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleNV" );
87113   }
87114 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87115 
87116 
87117   template <typename Dispatch>
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE * pDisplayTimingProperties,Dispatch const & d) const87118   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
87119   {
87120     return static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast< VkRefreshCycleDurationGOOGLE *>( pDisplayTimingProperties ) ) );
87121   }
87122 
87123 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87124   template <typename Dispatch>
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87125   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
87126   {
87127     VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties;
87128     Result result = static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast< VkRefreshCycleDurationGOOGLE *>( &displayTimingProperties ) ) );
87129     return createResultValue( result, displayTimingProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getRefreshCycleDurationGOOGLE" );
87130   }
87131 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87132 
87133 
87134   template <typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,VULKAN_HPP_NAMESPACE::Extent2D * pGranularity,Dispatch const & d) const87135   VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87136   {
87137     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast< VkExtent2D *>( pGranularity ) );
87138   }
87139 
87140 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87141   template <typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Dispatch const & d) const87142   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87143   {
87144     VULKAN_HPP_NAMESPACE::Extent2D granularity;
87145     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast< VkExtent2D *>( &granularity ) );
87146     return granularity;
87147   }
87148 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87149 
87150 
87151   template <typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const87152   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87153   {
87154     return static_cast<Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
87155   }
87156 
87157 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87158   template <typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const87159   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
87160   {
87161     uint64_t value;
87162     Result result = static_cast<Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
87163     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValue" );
87164   }
87165 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87166 
87167   template <typename Dispatch>
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const87168   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87169   {
87170     return static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
87171   }
87172 
87173 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87174   template <typename Dispatch>
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const87175   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
87176   {
87177     uint64_t value;
87178     Result result = static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
87179     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValueKHR" );
87180   }
87181 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87182 
87183 
87184   template <typename Dispatch>
getSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const87185   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87186   {
87187     return static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
87188   }
87189 
87190 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87191   template <typename Dispatch>
getSemaphoreFdKHR(const SemaphoreGetFdInfoKHR & getFdInfo,Dispatch const & d) const87192   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
87193   {
87194     int fd;
87195     Result result = static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( &getFdInfo ), &fd ) );
87196     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" );
87197   }
87198 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87199 
87200 
87201 #ifdef VK_USE_PLATFORM_WIN32_KHR
87202   template <typename Dispatch>
getSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const87203   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87204   {
87205     return static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
87206   }
87207 
87208 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87209   template <typename Dispatch>
getSemaphoreWin32HandleKHR(const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const87210   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
87211   {
87212     HANDLE handle;
87213     Result result = static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
87214     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" );
87215   }
87216 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87217 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87218 
87219   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) const87220   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
87221   {
87222     return static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), pInfoSize, pInfo ) );
87223   }
87224 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87225   template<typename Allocator , typename Dispatch>
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,Dispatch const & d) const87226   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const &d ) const
87227   {
87228     std::vector<uint8_t,Allocator> info;
87229     size_t infoSize;
87230     Result result;
87231     do
87232     {
87233       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
87234       if ( ( result == Result::eSuccess ) && infoSize )
87235       {
87236         info.resize( infoSize );
87237         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() ) ) );
87238       }
87239     } while ( result == Result::eIncomplete );
87240     if ( result == Result::eSuccess )
87241     {
87242       VULKAN_HPP_ASSERT( infoSize <= info.size() );
87243       info.resize( infoSize );
87244     }
87245     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
87246   }
87247   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type>
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,Allocator const & vectorAllocator,Dispatch const & d) const87248   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Allocator const& vectorAllocator, Dispatch const &d ) const
87249   {
87250     std::vector<uint8_t,Allocator> info( vectorAllocator );
87251     size_t infoSize;
87252     Result result;
87253     do
87254     {
87255       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
87256       if ( ( result == Result::eSuccess ) && infoSize )
87257       {
87258         info.resize( infoSize );
87259         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() ) ) );
87260       }
87261     } while ( result == Result::eIncomplete );
87262     if ( result == Result::eSuccess )
87263     {
87264       VULKAN_HPP_ASSERT( infoSize <= info.size() );
87265       info.resize( infoSize );
87266     }
87267     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
87268   }
87269 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87270 
87271 
87272   template <typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue,Dispatch const & d) const87273   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
87274   {
87275     return static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), pCounterValue ) );
87276   }
87277 
87278 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87279   template <typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,Dispatch const & d) const87280   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
87281   {
87282     uint64_t counterValue;
87283     Result result = static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) );
87284     return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainCounterEXT" );
87285   }
87286 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87287 
87288   template<typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VULKAN_HPP_NAMESPACE::Image * pSwapchainImages,Dispatch const & d) const87289   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
87290   {
87291     return static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), pSwapchainImageCount, reinterpret_cast<VkImage*>( pSwapchainImages ) ) );
87292   }
87293 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87294   template<typename Allocator , typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87295   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image,Allocator>>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const
87296   {
87297     std::vector<Image,Allocator> swapchainImages;
87298     uint32_t swapchainImageCount;
87299     Result result;
87300     do
87301     {
87302       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
87303       if ( ( result == Result::eSuccess ) && swapchainImageCount )
87304       {
87305         swapchainImages.resize( swapchainImageCount );
87306         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage*>( swapchainImages.data() ) ) );
87307       }
87308     } while ( result == Result::eIncomplete );
87309     if ( result == Result::eSuccess )
87310     {
87311       VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
87312       swapchainImages.resize( swapchainImageCount );
87313     }
87314     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
87315   }
87316   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Image>::value, int>::type>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Allocator const & vectorAllocator,Dispatch const & d) const87317   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image,Allocator>>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const
87318   {
87319     std::vector<Image,Allocator> swapchainImages( vectorAllocator );
87320     uint32_t swapchainImageCount;
87321     Result result;
87322     do
87323     {
87324       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
87325       if ( ( result == Result::eSuccess ) && swapchainImageCount )
87326       {
87327         swapchainImages.resize( swapchainImageCount );
87328         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage*>( swapchainImages.data() ) ) );
87329       }
87330     } while ( result == Result::eIncomplete );
87331     if ( result == Result::eSuccess )
87332     {
87333       VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
87334       swapchainImages.resize( swapchainImageCount );
87335     }
87336     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
87337   }
87338 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87339 
87340 
87341 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87342   template <typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87343   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87344   {
87345     return static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
87346   }
87347 #else
87348   template <typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87349   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
87350   {
87351     Result result = static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
87352     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainStatusKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
87353   }
87354 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87355 
87356 
87357   template<typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,size_t * pDataSize,void * pData,Dispatch const & d) const87358   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
87359   {
87360     return static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), pDataSize, pData ) );
87361   }
87362 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87363   template<typename Allocator , typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Dispatch const & d) const87364   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const &d ) const
87365   {
87366     std::vector<uint8_t,Allocator> data;
87367     size_t dataSize;
87368     Result result;
87369     do
87370     {
87371       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
87372       if ( ( result == Result::eSuccess ) && dataSize )
87373       {
87374         data.resize( dataSize );
87375         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
87376       }
87377     } while ( result == Result::eIncomplete );
87378     if ( result == Result::eSuccess )
87379     {
87380       VULKAN_HPP_ASSERT( dataSize <= data.size() );
87381       data.resize( dataSize );
87382     }
87383     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
87384   }
87385   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Allocator const & vectorAllocator,Dispatch const & d) const87386   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Allocator const& vectorAllocator, Dispatch const &d ) const
87387   {
87388     std::vector<uint8_t,Allocator> data( vectorAllocator );
87389     size_t dataSize;
87390     Result result;
87391     do
87392     {
87393       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
87394       if ( ( result == Result::eSuccess ) && dataSize )
87395       {
87396         data.resize( dataSize );
87397         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
87398       }
87399     } while ( result == Result::eIncomplete );
87400     if ( result == Result::eSuccess )
87401     {
87402       VULKAN_HPP_ASSERT( dataSize <= data.size() );
87403       data.resize( dataSize );
87404     }
87405     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
87406   }
87407 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87408 
87409 
87410   template <typename Dispatch>
importFenceFdKHR(const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR * pImportFenceFdInfo,Dispatch const & d) const87411   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87412   {
87413     return static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( pImportFenceFdInfo ) ) );
87414   }
87415 
87416 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87417   template <typename Dispatch>
importFenceFdKHR(const ImportFenceFdInfoKHR & importFenceFdInfo,Dispatch const & d) const87418   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d ) const
87419   {
87420     Result result = static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) ) );
87421     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" );
87422   }
87423 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87424 
87425 
87426 #ifdef VK_USE_PLATFORM_WIN32_KHR
87427   template <typename Dispatch>
importFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo,Dispatch const & d) const87428   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87429   {
87430     return static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( pImportFenceWin32HandleInfo ) ) );
87431   }
87432 
87433 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87434   template <typename Dispatch>
importFenceWin32HandleKHR(const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo,Dispatch const & d) const87435   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d ) const
87436   {
87437     Result result = static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) ) );
87438     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" );
87439   }
87440 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87441 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87442 
87443 
87444   template <typename Dispatch>
importSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo,Dispatch const & d) const87445   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87446   {
87447     return static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( pImportSemaphoreFdInfo ) ) );
87448   }
87449 
87450 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87451   template <typename Dispatch>
importSemaphoreFdKHR(const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo,Dispatch const & d) const87452   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d ) const
87453   {
87454     Result result = static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) ) );
87455     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" );
87456   }
87457 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87458 
87459 
87460 #ifdef VK_USE_PLATFORM_WIN32_KHR
87461   template <typename Dispatch>
importSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo,Dispatch const & d) const87462   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87463   {
87464     return static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( pImportSemaphoreWin32HandleInfo ) ) );
87465   }
87466 
87467 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87468   template <typename Dispatch>
importSemaphoreWin32HandleKHR(const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo,Dispatch const & d) const87469   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d ) const
87470   {
87471     Result result = static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) ) );
87472     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" );
87473   }
87474 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87475 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87476 
87477 
87478   template <typename Dispatch>
initializePerformanceApiINTEL(const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL * pInitializeInfo,Dispatch const & d) const87479   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87480   {
87481     return static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( pInitializeInfo ) ) );
87482   }
87483 
87484 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87485   template <typename Dispatch>
initializePerformanceApiINTEL(const InitializePerformanceApiInfoINTEL & initializeInfo,Dispatch const & d) const87486   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d ) const
87487   {
87488     Result result = static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) ) );
87489     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" );
87490   }
87491 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87492 
87493 
87494   template <typename Dispatch>
invalidateMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const87495   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
87496   {
87497     return static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
87498   }
87499 
87500 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87501   template <typename Dispatch>
invalidateMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,Dispatch const & d) const87502   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
87503   {
87504     Result result = static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
87505     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" );
87506   }
87507 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87508 
87509 
87510   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) const87511   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
87512   {
87513     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 ) );
87514   }
87515 
87516 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87517   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) const87518   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
87519   {
87520     void* pData;
87521     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 ) );
87522     return createResultValue( result, pData, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory" );
87523   }
87524 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87525 
87526 
87527   template <typename Dispatch>
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::PipelineCache * pSrcCaches,Dispatch const & d) const87528   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
87529   {
87530     return static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCacheCount, reinterpret_cast<const VkPipelineCache *>( pSrcCaches ) ) );
87531   }
87532 
87533 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87534   template <typename Dispatch>
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches,Dispatch const & d) const87535   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
87536   {
87537     Result result = static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCaches.size(), reinterpret_cast<const VkPipelineCache *>( srcCaches.data() ) ) );
87538     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergePipelineCaches" );
87539   }
87540 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87541 
87542 
87543   template <typename Dispatch>
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pSrcCaches,Dispatch const & d) const87544   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
87545   {
87546     return static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCacheCount, reinterpret_cast<const VkValidationCacheEXT *>( pSrcCaches ) ) );
87547   }
87548 
87549 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87550   template <typename Dispatch>
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches,Dispatch const & d) const87551   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
87552   {
87553     Result result = static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCaches.size(), reinterpret_cast<const VkValidationCacheEXT *>( srcCaches.data() ) ) );
87554     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergeValidationCachesEXT" );
87555   }
87556 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87557 
87558 
87559   template <typename Dispatch>
registerEventEXT(const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT * pDeviceEventInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const87560   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
87561   {
87562     return static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT *>( pDeviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) );
87563   }
87564 
87565 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87566   template <typename Dispatch>
registerEventEXT(const DeviceEventInfoEXT & deviceEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87567   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type Device::registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
87568   {
87569     VULKAN_HPP_NAMESPACE::Fence fence;
87570     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 ) ) );
87571     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXT" );
87572   }
87573 
87574 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
87575   template <typename Dispatch>
registerEventEXTUnique(const DeviceEventInfoEXT & deviceEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87576   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
87577   {
87578     VULKAN_HPP_NAMESPACE::Fence fence;
87579     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 ) ) );
87580     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
87581     return createResultValue<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXTUnique", deleter );
87582   }
87583 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87584 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87585 
87586 
87587   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) const87588   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
87589   {
87590     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 ) ) );
87591   }
87592 
87593 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87594   template <typename Dispatch>
registerDisplayEventEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayEventInfoEXT & displayEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87595   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
87596   {
87597     VULKAN_HPP_NAMESPACE::Fence fence;
87598     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 ) ) );
87599     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXT" );
87600   }
87601 
87602 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
87603   template <typename Dispatch>
registerDisplayEventEXTUnique(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayEventInfoEXT & displayEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87604   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
87605   {
87606     VULKAN_HPP_NAMESPACE::Fence fence;
87607     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 ) ) );
87608     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
87609     return createResultValue<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXTUnique", deleter );
87610   }
87611 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87612 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87613 
87614 
87615 #ifdef VK_USE_PLATFORM_WIN32_KHR
87616 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87617   template <typename Dispatch>
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87618   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87619   {
87620     return static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
87621   }
87622 #else
87623   template <typename Dispatch>
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87624   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
87625   {
87626     Result result = static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
87627     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseFullScreenExclusiveModeEXT" );
87628   }
87629 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87630 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87631 
87632 
87633 
87634 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87635   template <typename Dispatch>
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const87636   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87637   {
87638     return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
87639   }
87640 #else
87641   template <typename Dispatch>
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const87642   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
87643   {
87644     Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
87645     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releasePerformanceConfigurationINTEL" );
87646   }
87647 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87648 
87649 
87650 
87651 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87652   template <typename Dispatch>
release(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const87653   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87654   {
87655     return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
87656   }
87657 #else
87658   template <typename Dispatch>
release(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const87659   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
87660   {
87661     Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
87662     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::release" );
87663   }
87664 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87665 
87666 
87667 
87668   template <typename Dispatch>
releaseProfilingLockKHR(Dispatch const & d) const87669   VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87670   {
87671     d.vkReleaseProfilingLockKHR( m_device );
87672   }
87673 
87674 
87675 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87676   template <typename Dispatch>
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const87677   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
87678   {
87679     return static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
87680   }
87681 #else
87682   template <typename Dispatch>
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const87683   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d ) const
87684   {
87685     Result result = static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
87686     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetCommandPool" );
87687   }
87688 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87689 
87690 
87691 
87692 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87693   template <typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const87694   VULKAN_HPP_INLINE Result Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87695   {
87696     return static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
87697   }
87698 #else
87699   template <typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const87700   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d ) const
87701   {
87702     Result result = static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
87703     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetDescriptorPool" );
87704   }
87705 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87706 
87707 
87708 
87709 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87710   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const87711   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87712   {
87713     return static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
87714   }
87715 #else
87716   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const87717   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
87718   {
87719     Result result = static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
87720     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetEvent" );
87721   }
87722 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87723 
87724 
87725 
87726   template <typename Dispatch>
resetFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,Dispatch const & d) const87727   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
87728   {
87729     return static_cast<Result>( d.vkResetFences( m_device, fenceCount, reinterpret_cast<const VkFence *>( pFences ) ) );
87730   }
87731 
87732 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87733   template <typename Dispatch>
resetFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,Dispatch const & d) const87734   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, Dispatch const & d ) const
87735   {
87736     Result result = static_cast<Result>( d.vkResetFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) ) );
87737     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" );
87738   }
87739 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87740 
87741 
87742   template <typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const87743   VULKAN_HPP_INLINE void Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87744   {
87745     d.vkResetQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
87746   }
87747 
87748   template <typename Dispatch>
resetQueryPoolEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const87749   VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87750   {
87751     d.vkResetQueryPoolEXT( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
87752   }
87753 
87754 
87755   template <typename Dispatch>
setDebugUtilsObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo,Dispatch const & d) const87756   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87757   {
87758     return static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( pNameInfo ) ) );
87759   }
87760 
87761 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87762   template <typename Dispatch>
setDebugUtilsObjectNameEXT(const DebugUtilsObjectNameInfoEXT & nameInfo,Dispatch const & d) const87763   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
87764   {
87765     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) ) );
87766     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" );
87767   }
87768 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87769 
87770 
87771   template <typename Dispatch>
setDebugUtilsObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT * pTagInfo,Dispatch const & d) const87772   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87773   {
87774     return static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( pTagInfo ) ) );
87775   }
87776 
87777 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87778   template <typename Dispatch>
setDebugUtilsObjectTagEXT(const DebugUtilsObjectTagInfoEXT & tagInfo,Dispatch const & d) const87779   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
87780   {
87781     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) ) );
87782     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" );
87783   }
87784 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87785 
87786 
87787 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87788   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const87789   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87790   {
87791     return static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
87792   }
87793 #else
87794   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const87795   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
87796   {
87797     Result result = static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
87798     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setEvent" );
87799   }
87800 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87801 
87802 
87803 
87804   template <typename Dispatch>
setHdrMetadataEXT(uint32_t swapchainCount,const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains,const VULKAN_HPP_NAMESPACE::HdrMetadataEXT * pMetadata,Dispatch const & d) const87805   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
87806   {
87807     d.vkSetHdrMetadataEXT( m_device, swapchainCount, reinterpret_cast<const VkSwapchainKHR *>( pSwapchains ), reinterpret_cast<const VkHdrMetadataEXT *>( pMetadata ) );
87808   }
87809 
87810 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87811   template <typename Dispatch>
setHdrMetadataEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains,ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata,Dispatch const & d) const87812   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
87813   {
87814 #ifdef VULKAN_HPP_NO_EXCEPTIONS
87815     VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() );
87816 #else
87817     if ( swapchains.size() != metadata.size() )
87818   {
87819     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" );
87820   }
87821 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
87822 
87823     d.vkSetHdrMetadataEXT( m_device, swapchains.size(), reinterpret_cast<const VkSwapchainKHR *>( swapchains.data() ), reinterpret_cast<const VkHdrMetadataEXT *>( metadata.data() ) );
87824   }
87825 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87826 
87827 
87828   template <typename Dispatch>
setLocalDimmingAMD(VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain,VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable,Dispatch const & d) const87829   VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87830   {
87831     d.vkSetLocalDimmingAMD( m_device, static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
87832   }
87833 
87834 
87835 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87836   template <typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t data,Dispatch const & d) const87837   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
87838   {
87839     return static_cast<Result>( d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), data ) );
87840   }
87841 #else
87842   template <typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t data,Dispatch const & d) const87843   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
87844   {
87845     Result result = static_cast<Result>( d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), data ) );
87846     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" );
87847   }
87848 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87849 
87850 
87851 
87852   template <typename Dispatch>
signalSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const87853   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87854   {
87855     return static_cast<Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
87856   }
87857 
87858 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87859   template <typename Dispatch>
signalSemaphore(const SemaphoreSignalInfo & signalInfo,Dispatch const & d) const87860   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
87861   {
87862     Result result = static_cast<Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
87863     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" );
87864   }
87865 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87866 
87867   template <typename Dispatch>
signalSemaphoreKHR(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const87868   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87869   {
87870     return static_cast<Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
87871   }
87872 
87873 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87874   template <typename Dispatch>
signalSemaphoreKHR(const SemaphoreSignalInfo & signalInfo,Dispatch const & d) const87875   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
87876   {
87877     Result result = static_cast<Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
87878     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" );
87879   }
87880 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87881 
87882 
87883   template <typename Dispatch>
trimCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const87884   VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87885   {
87886     d.vkTrimCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
87887   }
87888 
87889   template <typename Dispatch>
trimCommandPoolKHR(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const87890   VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87891   {
87892     d.vkTrimCommandPoolKHR( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
87893   }
87894 
87895 
87896   template <typename Dispatch>
uninitializePerformanceApiINTEL(Dispatch const & d) const87897   VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87898   {
87899     d.vkUninitializePerformanceApiINTEL( m_device );
87900   }
87901 
87902 
87903   template <typename Dispatch>
unmapMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const87904   VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87905   {
87906     d.vkUnmapMemory( m_device, static_cast<VkDeviceMemory>( memory ) );
87907   }
87908 
87909 
87910   template <typename Dispatch>
updateDescriptorSetWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const87911   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
87912   {
87913     d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
87914   }
87915 
87916   template <typename Dispatch>
updateDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const87917   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
87918   {
87919     d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
87920   }
87921 
87922 
87923   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) const87924   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
87925   {
87926     d.vkUpdateDescriptorSets( m_device, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast<const VkCopyDescriptorSet *>( pDescriptorCopies ) );
87927   }
87928 
87929 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87930   template <typename Dispatch>
updateDescriptorSets(ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies,Dispatch const & d) const87931   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
87932   {
87933     d.vkUpdateDescriptorSets( m_device, descriptorWrites.size(), reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ), descriptorCopies.size(), reinterpret_cast<const VkCopyDescriptorSet *>( descriptorCopies.data() ) );
87934   }
87935 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87936 
87937 
87938   template <typename Dispatch>
waitForFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const87939   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
87940   {
87941     return static_cast<Result>( d.vkWaitForFences( m_device, fenceCount, reinterpret_cast<const VkFence *>( pFences ), static_cast<VkBool32>( waitAll ), timeout ) );
87942   }
87943 
87944 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87945   template <typename Dispatch>
waitForFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const87946   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
87947   {
87948     Result result = static_cast<Result>( d.vkWaitForFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout ) );
87949     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
87950   }
87951 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87952 
87953 
87954   template <typename Dispatch>
waitSemaphores(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const87955   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
87956   {
87957     return static_cast<Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
87958   }
87959 
87960 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87961   template <typename Dispatch>
waitSemaphores(const SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const87962   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const
87963   {
87964     Result result = static_cast<Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
87965     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
87966   }
87967 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87968 
87969   template <typename Dispatch>
waitSemaphoresKHR(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const87970   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
87971   {
87972     return static_cast<Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
87973   }
87974 
87975 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87976   template <typename Dispatch>
waitSemaphoresKHR(const SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const87977   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const
87978   {
87979     Result result = static_cast<Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
87980     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
87981   }
87982 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87983 
87984 #ifdef VK_ENABLE_BETA_EXTENSIONS
87985   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) const87986   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
87987   {
87988     return static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR*>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), dataSize, pData, stride ) );
87989   }
87990 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87991   template<typename T, typename Dispatch>
writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,ArrayProxy<T> const & data,size_t stride,Dispatch const & d) const87992   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
87993   {
87994     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 ) );
87995     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::writeAccelerationStructuresPropertiesKHR" );
87996   }
87997 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87998 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
87999 
88000 
88001 #ifdef VK_USE_PLATFORM_ANDROID_KHR
88002   template <typename Dispatch>
createAndroidSurfaceKHR(const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88003   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
88004   {
88005     return static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88006   }
88007 
88008 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88009   template <typename Dispatch>
createAndroidSurfaceKHR(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88010   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
88011   {
88012     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88013     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 ) ) );
88014     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHR" );
88015   }
88016 
88017 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88018   template <typename Dispatch>
createAndroidSurfaceKHRUnique(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88019   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
88020   {
88021     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88022     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 ) ) );
88023     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88024     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHRUnique", deleter );
88025   }
88026 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88027 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88028 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
88029 
88030 
88031   template <typename Dispatch>
createDebugReportCallbackEXT(const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT * pCallback,Dispatch const & d) const88032   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
88033   {
88034     return static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDebugReportCallbackEXT *>( pCallback ) ) );
88035   }
88036 
88037 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88038   template <typename Dispatch>
createDebugReportCallbackEXT(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88039   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>::type Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88040   {
88041     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
88042     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 ) ) );
88043     return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXT" );
88044   }
88045 
88046 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88047   template <typename Dispatch>
createDebugReportCallbackEXTUnique(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88048   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
88049   {
88050     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
88051     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 ) ) );
88052     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88053     return createResultValue<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT, Dispatch>( result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXTUnique", deleter );
88054   }
88055 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88056 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88057 
88058 
88059   template <typename Dispatch>
createDebugUtilsMessengerEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT * pMessenger,Dispatch const & d) const88060   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
88061   {
88062     return static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDebugUtilsMessengerEXT *>( pMessenger ) ) );
88063   }
88064 
88065 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88066   template <typename Dispatch>
createDebugUtilsMessengerEXT(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88067   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>::type Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88068   {
88069     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
88070     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 ) ) );
88071     return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXT" );
88072   }
88073 
88074 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88075   template <typename Dispatch>
createDebugUtilsMessengerEXTUnique(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88076   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
88077   {
88078     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
88079     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 ) ) );
88080     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88081     return createResultValue<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT, Dispatch>( result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXTUnique", deleter );
88082   }
88083 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88084 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88085 
88086 
88087 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
88088   template <typename Dispatch>
createDirectFBSurfaceEXT(const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88089   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
88090   {
88091     return static_cast<Result>( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88092   }
88093 
88094 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88095   template <typename Dispatch>
createDirectFBSurfaceEXT(const DirectFBSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88096   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
88097   {
88098     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88099     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 ) ) );
88100     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXT" );
88101   }
88102 
88103 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88104   template <typename Dispatch>
createDirectFBSurfaceEXTUnique(const DirectFBSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88105   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
88106   {
88107     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88108     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 ) ) );
88109     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88110     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXTUnique", deleter );
88111   }
88112 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88113 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88114 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
88115 
88116 
88117   template <typename Dispatch>
createDisplayPlaneSurfaceKHR(const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88118   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
88119   {
88120     return static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88121   }
88122 
88123 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88124   template <typename Dispatch>
createDisplayPlaneSurfaceKHR(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88125   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
88126   {
88127     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88128     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 ) ) );
88129     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHR" );
88130   }
88131 
88132 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88133   template <typename Dispatch>
createDisplayPlaneSurfaceKHRUnique(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88134   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
88135   {
88136     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88137     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 ) ) );
88138     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88139     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHRUnique", deleter );
88140   }
88141 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88142 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88143 
88144 
88145   template <typename Dispatch>
createHeadlessSurfaceEXT(const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88146   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
88147   {
88148     return static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88149   }
88150 
88151 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88152   template <typename Dispatch>
createHeadlessSurfaceEXT(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88153   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
88154   {
88155     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88156     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 ) ) );
88157     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXT" );
88158   }
88159 
88160 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88161   template <typename Dispatch>
createHeadlessSurfaceEXTUnique(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88162   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
88163   {
88164     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88165     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 ) ) );
88166     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88167     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXTUnique", deleter );
88168   }
88169 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88170 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88171 
88172 
88173 #ifdef VK_USE_PLATFORM_IOS_MVK
88174   template <typename Dispatch>
createIOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88175   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
88176   {
88177     return static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88178   }
88179 
88180 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88181   template <typename Dispatch>
createIOSSurfaceMVK(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88182   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
88183   {
88184     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88185     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 ) ) );
88186     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVK" );
88187   }
88188 
88189 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88190   template <typename Dispatch>
createIOSSurfaceMVKUnique(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88191   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
88192   {
88193     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88194     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 ) ) );
88195     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88196     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVKUnique", deleter );
88197   }
88198 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88199 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88200 #endif /*VK_USE_PLATFORM_IOS_MVK*/
88201 
88202 
88203 #ifdef VK_USE_PLATFORM_FUCHSIA
88204   template <typename Dispatch>
createImagePipeSurfaceFUCHSIA(const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88205   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
88206   {
88207     return static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88208   }
88209 
88210 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88211   template <typename Dispatch>
createImagePipeSurfaceFUCHSIA(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88212   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
88213   {
88214     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88215     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 ) ) );
88216     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIA" );
88217   }
88218 
88219 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88220   template <typename Dispatch>
createImagePipeSurfaceFUCHSIAUnique(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88221   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
88222   {
88223     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88224     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 ) ) );
88225     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88226     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter );
88227   }
88228 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88229 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88230 #endif /*VK_USE_PLATFORM_FUCHSIA*/
88231 
88232 
88233 #ifdef VK_USE_PLATFORM_MACOS_MVK
88234   template <typename Dispatch>
createMacOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88235   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
88236   {
88237     return static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88238   }
88239 
88240 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88241   template <typename Dispatch>
createMacOSSurfaceMVK(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88242   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
88243   {
88244     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88245     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 ) ) );
88246     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVK" );
88247   }
88248 
88249 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88250   template <typename Dispatch>
createMacOSSurfaceMVKUnique(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88251   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
88252   {
88253     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88254     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 ) ) );
88255     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88256     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVKUnique", deleter );
88257   }
88258 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88259 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88260 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
88261 
88262 
88263 #ifdef VK_USE_PLATFORM_METAL_EXT
88264   template <typename Dispatch>
createMetalSurfaceEXT(const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88265   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
88266   {
88267     return static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88268   }
88269 
88270 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88271   template <typename Dispatch>
createMetalSurfaceEXT(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88272   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
88273   {
88274     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88275     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 ) ) );
88276     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXT" );
88277   }
88278 
88279 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88280   template <typename Dispatch>
createMetalSurfaceEXTUnique(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88281   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
88282   {
88283     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88284     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 ) ) );
88285     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88286     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXTUnique", deleter );
88287   }
88288 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88289 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88290 #endif /*VK_USE_PLATFORM_METAL_EXT*/
88291 
88292 
88293 #ifdef VK_USE_PLATFORM_GGP
88294   template <typename Dispatch>
createStreamDescriptorSurfaceGGP(const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88295   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
88296   {
88297     return static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88298   }
88299 
88300 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88301   template <typename Dispatch>
createStreamDescriptorSurfaceGGP(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88302   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
88303   {
88304     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88305     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 ) ) );
88306     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGP" );
88307   }
88308 
88309 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88310   template <typename Dispatch>
createStreamDescriptorSurfaceGGPUnique(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88311   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
88312   {
88313     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88314     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 ) ) );
88315     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88316     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGPUnique", deleter );
88317   }
88318 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88319 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88320 #endif /*VK_USE_PLATFORM_GGP*/
88321 
88322 
88323 #ifdef VK_USE_PLATFORM_VI_NN
88324   template <typename Dispatch>
createViSurfaceNN(const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88325   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
88326   {
88327     return static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88328   }
88329 
88330 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88331   template <typename Dispatch>
createViSurfaceNN(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88332   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
88333   {
88334     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88335     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 ) ) );
88336     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNN" );
88337   }
88338 
88339 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88340   template <typename Dispatch>
createViSurfaceNNUnique(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88341   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
88342   {
88343     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88344     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 ) ) );
88345     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88346     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNNUnique", deleter );
88347   }
88348 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88349 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88350 #endif /*VK_USE_PLATFORM_VI_NN*/
88351 
88352 
88353 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
88354   template <typename Dispatch>
createWaylandSurfaceKHR(const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88355   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
88356   {
88357     return static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88358   }
88359 
88360 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88361   template <typename Dispatch>
createWaylandSurfaceKHR(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88362   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
88363   {
88364     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88365     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 ) ) );
88366     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHR" );
88367   }
88368 
88369 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88370   template <typename Dispatch>
createWaylandSurfaceKHRUnique(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88371   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
88372   {
88373     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88374     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 ) ) );
88375     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88376     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHRUnique", deleter );
88377   }
88378 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88379 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88380 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
88381 
88382 
88383 #ifdef VK_USE_PLATFORM_WIN32_KHR
88384   template <typename Dispatch>
createWin32SurfaceKHR(const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88385   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
88386   {
88387     return static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88388   }
88389 
88390 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88391   template <typename Dispatch>
createWin32SurfaceKHR(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88392   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
88393   {
88394     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88395     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 ) ) );
88396     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHR" );
88397   }
88398 
88399 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88400   template <typename Dispatch>
createWin32SurfaceKHRUnique(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88401   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
88402   {
88403     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88404     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 ) ) );
88405     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88406     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHRUnique", deleter );
88407   }
88408 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88409 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88410 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
88411 
88412 
88413 #ifdef VK_USE_PLATFORM_XCB_KHR
88414   template <typename Dispatch>
createXcbSurfaceKHR(const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88415   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
88416   {
88417     return static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88418   }
88419 
88420 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88421   template <typename Dispatch>
createXcbSurfaceKHR(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88422   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
88423   {
88424     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88425     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 ) ) );
88426     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHR" );
88427   }
88428 
88429 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88430   template <typename Dispatch>
createXcbSurfaceKHRUnique(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88431   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
88432   {
88433     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88434     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 ) ) );
88435     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88436     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHRUnique", deleter );
88437   }
88438 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88439 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88440 #endif /*VK_USE_PLATFORM_XCB_KHR*/
88441 
88442 
88443 #ifdef VK_USE_PLATFORM_XLIB_KHR
88444   template <typename Dispatch>
createXlibSurfaceKHR(const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88445   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
88446   {
88447     return static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88448   }
88449 
88450 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88451   template <typename Dispatch>
createXlibSurfaceKHR(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88452   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
88453   {
88454     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88455     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 ) ) );
88456     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHR" );
88457   }
88458 
88459 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88460   template <typename Dispatch>
createXlibSurfaceKHRUnique(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88461   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
88462   {
88463     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88464     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 ) ) );
88465     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88466     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHRUnique", deleter );
88467   }
88468 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88469 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88470 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
88471 
88472 
88473   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) const88474   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
88475   {
88476     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, pLayerPrefix, pMessage );
88477   }
88478 
88479 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88480   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) const88481   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
88482   {
88483     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, layerPrefix.c_str(), message.c_str() );
88484   }
88485 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88486 
88487 
88488   template <typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const88489   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88490   {
88491     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
88492   }
88493 
88494 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88495   template <typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88496   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
88497   {
88498     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
88499   }
88500 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88501 
88502 
88503   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const88504   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88505   {
88506     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
88507   }
88508 
88509 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88510   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88511   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
88512   {
88513     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
88514   }
88515 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88516 
88517 
88518   template <typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const88519   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88520   {
88521     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
88522   }
88523 
88524 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88525   template <typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88526   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
88527   {
88528     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
88529   }
88530 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88531 
88532 
88533   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const88534   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88535   {
88536     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
88537   }
88538 
88539 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88540   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88541   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
88542   {
88543     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
88544   }
88545 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88546 
88547 
88548   template <typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const88549   VULKAN_HPP_INLINE void Instance::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88550   {
88551     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
88552   }
88553 
88554 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88555   template <typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88556   VULKAN_HPP_INLINE void Instance::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
88557   {
88558     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
88559   }
88560 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88561 
88562 
88563   template <typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const88564   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88565   {
88566     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
88567   }
88568 
88569 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88570   template <typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88571   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
88572   {
88573     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
88574   }
88575 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88576 
88577 
88578   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const88579   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88580   {
88581     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
88582   }
88583 
88584 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88585   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88586   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
88587   {
88588     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
88589   }
88590 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88591 
88592   template<typename Dispatch>
enumeratePhysicalDeviceGroups(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const88593   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88594   {
88595     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( pPhysicalDeviceGroupProperties ) ) );
88596   }
88597 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88598   template<typename Allocator , typename Dispatch>
enumeratePhysicalDeviceGroups(Dispatch const & d) const88599   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroups(Dispatch const &d ) const
88600   {
88601     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties;
88602     uint32_t physicalDeviceGroupCount;
88603     Result result;
88604     do
88605     {
88606       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
88607       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
88608       {
88609         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
88610         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
88611       }
88612     } while ( result == Result::eIncomplete );
88613     if ( result == Result::eSuccess )
88614     {
88615       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
88616       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
88617     }
88618     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
88619   }
88620   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type>
enumeratePhysicalDeviceGroups(Allocator const & vectorAllocator,Dispatch const & d) const88621   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d ) const
88622   {
88623     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties( vectorAllocator );
88624     uint32_t physicalDeviceGroupCount;
88625     Result result;
88626     do
88627     {
88628       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
88629       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
88630       {
88631         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
88632         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
88633       }
88634     } while ( result == Result::eIncomplete );
88635     if ( result == Result::eSuccess )
88636     {
88637       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
88638       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
88639     }
88640     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
88641   }
88642 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88643 
88644   template<typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const88645   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88646   {
88647     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( pPhysicalDeviceGroupProperties ) ) );
88648   }
88649 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88650   template<typename Allocator , typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(Dispatch const & d) const88651   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR(Dispatch const &d ) const
88652   {
88653     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties;
88654     uint32_t physicalDeviceGroupCount;
88655     Result result;
88656     do
88657     {
88658       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
88659       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
88660       {
88661         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
88662         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
88663       }
88664     } while ( result == Result::eIncomplete );
88665     if ( result == Result::eSuccess )
88666     {
88667       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
88668       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
88669     }
88670     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
88671   }
88672   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type>
enumeratePhysicalDeviceGroupsKHR(Allocator const & vectorAllocator,Dispatch const & d) const88673   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
88674   {
88675     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties( vectorAllocator );
88676     uint32_t physicalDeviceGroupCount;
88677     Result result;
88678     do
88679     {
88680       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
88681       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
88682       {
88683         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
88684         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
88685       }
88686     } while ( result == Result::eIncomplete );
88687     if ( result == Result::eSuccess )
88688     {
88689       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
88690       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
88691     }
88692     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
88693   }
88694 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88695 
88696   template<typename Dispatch>
enumeratePhysicalDevices(uint32_t * pPhysicalDeviceCount,VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices,Dispatch const & d) const88697   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88698   {
88699     return static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, pPhysicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( pPhysicalDevices ) ) );
88700   }
88701 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88702   template<typename Allocator , typename Dispatch>
enumeratePhysicalDevices(Dispatch const & d) const88703   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type Instance::enumeratePhysicalDevices(Dispatch const &d ) const
88704   {
88705     std::vector<PhysicalDevice,Allocator> physicalDevices;
88706     uint32_t physicalDeviceCount;
88707     Result result;
88708     do
88709     {
88710       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
88711       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
88712       {
88713         physicalDevices.resize( physicalDeviceCount );
88714         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( physicalDevices.data() ) ) );
88715       }
88716     } while ( result == Result::eIncomplete );
88717     if ( result == Result::eSuccess )
88718     {
88719       VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
88720       physicalDevices.resize( physicalDeviceCount );
88721     }
88722     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
88723   }
88724   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDevice>::value, int>::type>
enumeratePhysicalDevices(Allocator const & vectorAllocator,Dispatch const & d) const88725   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type Instance::enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d ) const
88726   {
88727     std::vector<PhysicalDevice,Allocator> physicalDevices( vectorAllocator );
88728     uint32_t physicalDeviceCount;
88729     Result result;
88730     do
88731     {
88732       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
88733       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
88734       {
88735         physicalDevices.resize( physicalDeviceCount );
88736         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( physicalDevices.data() ) ) );
88737       }
88738     } while ( result == Result::eIncomplete );
88739     if ( result == Result::eSuccess )
88740     {
88741       VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
88742       physicalDevices.resize( physicalDeviceCount );
88743     }
88744     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
88745   }
88746 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88747 
88748 
88749   template <typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const88750   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88751   {
88752     return d.vkGetInstanceProcAddr( m_instance, pName );
88753   }
88754 
88755 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88756   template <typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const88757   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
88758   {
88759     return d.vkGetInstanceProcAddr( m_instance, name.c_str() );
88760   }
88761 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88762 
88763 
88764   template <typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT * pCallbackData,Dispatch const & d) const88765   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
88766   {
88767     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( pCallbackData ) );
88768   }
88769 
88770 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88771   template <typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const DebugUtilsMessengerCallbackDataEXT & callbackData,Dispatch const & d) const88772   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
88773   {
88774     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( &callbackData ) );
88775   }
88776 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88777 
88778 
88779 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
88780   template <typename Dispatch>
acquireXlibDisplayEXT(Display * dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const88781   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88782   {
88783     return static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast<VkDisplayKHR>( display ) ) );
88784   }
88785 
88786 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88787   template <typename Dispatch>
acquireXlibDisplayEXT(Display & dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const88788   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
88789   {
88790     Result result = static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast<VkDisplayKHR>( display ) ) );
88791     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" );
88792   }
88793 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88794 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
88795 
88796 
88797   template <typename Dispatch>
createDevice(const VULKAN_HPP_NAMESPACE::DeviceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Device * pDevice,Dispatch const & d) const88798   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
88799   {
88800     return static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDevice *>( pDevice ) ) );
88801   }
88802 
88803 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88804   template <typename Dispatch>
createDevice(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88805   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
88806   {
88807     VULKAN_HPP_NAMESPACE::Device device;
88808     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 ) ) );
88809     return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDevice" );
88810   }
88811 
88812 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88813   template <typename Dispatch>
createDeviceUnique(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88814   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
88815   {
88816     VULKAN_HPP_NAMESPACE::Device device;
88817     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 ) ) );
88818     ObjectDestroy<NoParent, Dispatch> deleter( allocator, d );
88819     return createResultValue<VULKAN_HPP_NAMESPACE::Device, Dispatch>( result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDeviceUnique", deleter );
88820   }
88821 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88822 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88823 
88824 
88825   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) const88826   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
88827   {
88828     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 ) ) );
88829   }
88830 
88831 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88832   template <typename Dispatch>
createDisplayModeKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayModeCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88833   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
88834   {
88835     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
88836     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 ) ) );
88837     return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHR" );
88838   }
88839 
88840 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88841   template <typename Dispatch>
createDisplayModeKHRUnique(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayModeCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88842   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
88843   {
88844     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
88845     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 ) ) );
88846     ObjectDestroy<PhysicalDevice, Dispatch> deleter( *this, allocator, d );
88847     return createResultValue<VULKAN_HPP_NAMESPACE::DisplayModeKHR, Dispatch>( result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHRUnique", deleter );
88848   }
88849 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88850 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88851 
88852   template<typename Dispatch>
enumerateDeviceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d) const88853   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
88854   {
88855     return static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties*>( pProperties ) ) );
88856   }
88857 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88858   template<typename Allocator , typename Dispatch>
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d) const88859   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Dispatch const &d ) const
88860   {
88861     std::vector<ExtensionProperties,Allocator> properties;
88862     uint32_t propertyCount;
88863     Result result;
88864     do
88865     {
88866       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
88867       if ( ( result == Result::eSuccess ) && propertyCount )
88868       {
88869         properties.resize( propertyCount );
88870         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
88871       }
88872     } while ( result == Result::eIncomplete );
88873     if ( result == Result::eSuccess )
88874     {
88875       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88876       properties.resize( propertyCount );
88877     }
88878     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
88879   }
88880   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type>
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,Allocator const & vectorAllocator,Dispatch const & d) const88881   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d ) const
88882   {
88883     std::vector<ExtensionProperties,Allocator> properties( vectorAllocator );
88884     uint32_t propertyCount;
88885     Result result;
88886     do
88887     {
88888       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
88889       if ( ( result == Result::eSuccess ) && propertyCount )
88890       {
88891         properties.resize( propertyCount );
88892         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
88893       }
88894     } while ( result == Result::eIncomplete );
88895     if ( result == Result::eSuccess )
88896     {
88897       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88898       properties.resize( propertyCount );
88899     }
88900     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
88901   }
88902 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88903 
88904   template<typename Dispatch>
enumerateDeviceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d) const88905   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88906   {
88907     return static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, pPropertyCount, reinterpret_cast<VkLayerProperties*>( pProperties ) ) );
88908   }
88909 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88910   template<typename Allocator , typename Dispatch>
enumerateDeviceLayerProperties(Dispatch const & d) const88911   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type PhysicalDevice::enumerateDeviceLayerProperties(Dispatch const &d ) const
88912   {
88913     std::vector<LayerProperties,Allocator> properties;
88914     uint32_t propertyCount;
88915     Result result;
88916     do
88917     {
88918       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
88919       if ( ( result == Result::eSuccess ) && propertyCount )
88920       {
88921         properties.resize( propertyCount );
88922         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
88923       }
88924     } while ( result == Result::eIncomplete );
88925     if ( result == Result::eSuccess )
88926     {
88927       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88928       properties.resize( propertyCount );
88929     }
88930     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
88931   }
88932   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type>
enumerateDeviceLayerProperties(Allocator const & vectorAllocator,Dispatch const & d) const88933   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type PhysicalDevice::enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ) const
88934   {
88935     std::vector<LayerProperties,Allocator> properties( vectorAllocator );
88936     uint32_t propertyCount;
88937     Result result;
88938     do
88939     {
88940       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
88941       if ( ( result == Result::eSuccess ) && propertyCount )
88942       {
88943         properties.resize( propertyCount );
88944         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
88945       }
88946     } while ( result == Result::eIncomplete );
88947     if ( result == Result::eSuccess )
88948     {
88949       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88950       properties.resize( propertyCount );
88951     }
88952     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
88953   }
88954 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88955 
88956 
88957   template <typename Dispatch>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,uint32_t * pCounterCount,VULKAN_HPP_NAMESPACE::PerformanceCounterKHR * pCounters,VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR * pCounterDescriptions,Dispatch const & d) const88958   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
88959   {
88960     return static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, pCounterCount, reinterpret_cast< VkPerformanceCounterKHR *>( pCounters ), reinterpret_cast< VkPerformanceCounterDescriptionKHR *>( pCounterDescriptions ) ) );
88961   }
88962 
88963 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88964   template <typename Allocator, typename Dispatch>
88965   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) const88966   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
88967   {
88968         std::vector<PerformanceCounterDescriptionKHR,Allocator> counterDescriptions;
88969     uint32_t counterCount;
88970     Result result;
88971     do
88972     {
88973       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), nullptr ) );
88974       if ( ( result == Result::eSuccess ) && counterCount )
88975       {
88976         counterDescriptions.resize( counterCount );
88977         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( counterDescriptions.data() ) ) );
88978       }
88979     } while ( result == Result::eIncomplete );
88980     if ( result == Result::eSuccess )
88981     {
88982       VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() );
88983       counterDescriptions.resize( counterCount );
88984     }
88985     return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
88986 
88987   }
88988 
88989   template <typename Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PerformanceCounterDescriptionKHR>::value, int>::type>
88990   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) const88991   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
88992   {
88993         std::vector<PerformanceCounterDescriptionKHR,Allocator> counterDescriptions( vectorAllocator );
88994     uint32_t counterCount;
88995     Result result;
88996     do
88997     {
88998       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), nullptr ) );
88999       if ( ( result == Result::eSuccess ) && counterCount )
89000       {
89001         counterDescriptions.resize( counterCount );
89002         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( counterDescriptions.data() ) ) );
89003       }
89004     } while ( result == Result::eIncomplete );
89005     if ( result == Result::eSuccess )
89006     {
89007       VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() );
89008       counterDescriptions.resize( counterCount );
89009     }
89010     return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
89011 
89012   }
89013 
89014   template <typename PerformanceCounterKHRAllocator, typename PerformanceCounterDescriptionKHRAllocator, typename Dispatch>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,Dispatch const & d) const89015   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
89016   {
89017     std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>> enumeratedData;
89018     uint32_t counterCount;
89019     Result result;
89020     do
89021     {
89022       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
89023       if ( ( result == Result::eSuccess ) && counterCount )
89024       {
89025         enumeratedData.first.resize( counterCount );
89026         enumeratedData.second.resize( counterCount );
89027         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast<VkPerformanceCounterKHR *>( enumeratedData.first.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( enumeratedData.second.data() ) ) );
89028         VULKAN_HPP_ASSERT( counterCount <= enumeratedData.first.size() );
89029       }
89030     } while ( result == Result::eIncomplete );
89031     if ( ( result == Result::eSuccess ) && ( counterCount < enumeratedData.first.size() ) )
89032     {
89033       enumeratedData.first.resize( counterCount );
89034       enumeratedData.second.resize( counterCount );
89035     }
89036     return createResultValue( result, enumeratedData, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
89037   }
89038 
89039   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) const89040   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
89041   {
89042     std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>> enumeratedData( std::piecewise_construct, std::forward_as_tuple( performanceCounterKHRAllocator ), std::forward_as_tuple( performanceCounterDescriptionKHRAllocator ) );
89043     uint32_t counterCount;
89044     Result result;
89045     do
89046     {
89047       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
89048       if ( ( result == Result::eSuccess ) && counterCount )
89049       {
89050         enumeratedData.first.resize( counterCount );
89051         enumeratedData.second.resize( counterCount );
89052         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast<VkPerformanceCounterKHR *>( enumeratedData.first.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( enumeratedData.second.data() ) ) );
89053         VULKAN_HPP_ASSERT( counterCount <= enumeratedData.first.size() );
89054       }
89055     } while ( result == Result::eIncomplete );
89056     if ( ( result == Result::eSuccess ) && ( counterCount < enumeratedData.first.size() ) )
89057     {
89058       enumeratedData.first.resize( counterCount );
89059       enumeratedData.second.resize( counterCount );
89060     }
89061     return createResultValue( result, enumeratedData, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
89062   }
89063 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89064 
89065   template<typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR * pProperties,Dispatch const & d) const89066   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
89067   {
89068     return static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( pProperties ) ) );
89069   }
89070 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89071   template<typename Allocator , typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89072   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const
89073   {
89074     std::vector<DisplayModeProperties2KHR,Allocator> properties;
89075     uint32_t propertyCount;
89076     Result result;
89077     do
89078     {
89079       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
89080       if ( ( result == Result::eSuccess ) && propertyCount )
89081       {
89082         properties.resize( propertyCount );
89083         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( properties.data() ) ) );
89084       }
89085     } while ( result == Result::eIncomplete );
89086     if ( result == Result::eSuccess )
89087     {
89088       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89089       properties.resize( propertyCount );
89090     }
89091     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
89092   }
89093   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayModeProperties2KHR>::value, int>::type>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Allocator const & vectorAllocator,Dispatch const & d) const89094   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const
89095   {
89096     std::vector<DisplayModeProperties2KHR,Allocator> properties( vectorAllocator );
89097     uint32_t propertyCount;
89098     Result result;
89099     do
89100     {
89101       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
89102       if ( ( result == Result::eSuccess ) && propertyCount )
89103       {
89104         properties.resize( propertyCount );
89105         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( properties.data() ) ) );
89106       }
89107     } while ( result == Result::eIncomplete );
89108     if ( result == Result::eSuccess )
89109     {
89110       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89111       properties.resize( propertyCount );
89112     }
89113     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
89114   }
89115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89116 
89117   template<typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR * pProperties,Dispatch const & d) const89118   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
89119   {
89120     return static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( pProperties ) ) );
89121   }
89122 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89123   template<typename Allocator , typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89124   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const
89125   {
89126     std::vector<DisplayModePropertiesKHR,Allocator> properties;
89127     uint32_t propertyCount;
89128     Result result;
89129     do
89130     {
89131       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
89132       if ( ( result == Result::eSuccess ) && propertyCount )
89133       {
89134         properties.resize( propertyCount );
89135         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( properties.data() ) ) );
89136       }
89137     } while ( result == Result::eIncomplete );
89138     if ( result == Result::eSuccess )
89139     {
89140       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89141       properties.resize( propertyCount );
89142     }
89143     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
89144   }
89145   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayModePropertiesKHR>::value, int>::type>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Allocator const & vectorAllocator,Dispatch const & d) const89146   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const
89147   {
89148     std::vector<DisplayModePropertiesKHR,Allocator> properties( vectorAllocator );
89149     uint32_t propertyCount;
89150     Result result;
89151     do
89152     {
89153       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
89154       if ( ( result == Result::eSuccess ) && propertyCount )
89155       {
89156         properties.resize( propertyCount );
89157         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( properties.data() ) ) );
89158       }
89159     } while ( result == Result::eIncomplete );
89160     if ( result == Result::eSuccess )
89161     {
89162       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89163       properties.resize( propertyCount );
89164     }
89165     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
89166   }
89167 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89168 
89169 
89170   template <typename Dispatch>
getDisplayPlaneCapabilities2KHR(const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR * pDisplayPlaneInfo,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR * pCapabilities,Dispatch const & d) const89171   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
89172   {
89173     return static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( pDisplayPlaneInfo ), reinterpret_cast< VkDisplayPlaneCapabilities2KHR *>( pCapabilities ) ) );
89174   }
89175 
89176 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89177   template <typename Dispatch>
getDisplayPlaneCapabilities2KHR(const DisplayPlaneInfo2KHR & displayPlaneInfo,Dispatch const & d) const89178   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
89179   {
89180     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities;
89181     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( &displayPlaneInfo ), reinterpret_cast< VkDisplayPlaneCapabilities2KHR *>( &capabilities ) ) );
89182     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
89183   }
89184 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89185 
89186 
89187   template <typename Dispatch>
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR * pCapabilities,Dispatch const & d) const89188   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
89189   {
89190     return static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast< VkDisplayPlaneCapabilitiesKHR *>( pCapabilities ) ) );
89191   }
89192 
89193 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89194   template <typename Dispatch>
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,Dispatch const & d) const89195   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
89196   {
89197     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities;
89198     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast< VkDisplayPlaneCapabilitiesKHR *>( &capabilities ) ) );
89199     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" );
89200   }
89201 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89202 
89203   template<typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,uint32_t * pDisplayCount,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplays,Dispatch const & d) const89204   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
89205   {
89206     return static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast<VkDisplayKHR*>( pDisplays ) ) );
89207   }
89208 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89209   template<typename Allocator , typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,Dispatch const & d) const89210   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d ) const
89211   {
89212     std::vector<DisplayKHR,Allocator> displays;
89213     uint32_t displayCount;
89214     Result result;
89215     do
89216     {
89217       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
89218       if ( ( result == Result::eSuccess ) && displayCount )
89219       {
89220         displays.resize( displayCount );
89221         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR*>( displays.data() ) ) );
89222       }
89223     } while ( result == Result::eIncomplete );
89224     if ( result == Result::eSuccess )
89225     {
89226       VULKAN_HPP_ASSERT( displayCount <= displays.size() );
89227       displays.resize( displayCount );
89228     }
89229     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
89230   }
89231   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayKHR>::value, int>::type>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,Allocator const & vectorAllocator,Dispatch const & d) const89232   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d ) const
89233   {
89234     std::vector<DisplayKHR,Allocator> displays( vectorAllocator );
89235     uint32_t displayCount;
89236     Result result;
89237     do
89238     {
89239       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
89240       if ( ( result == Result::eSuccess ) && displayCount )
89241       {
89242         displays.resize( displayCount );
89243         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR*>( displays.data() ) ) );
89244       }
89245     } while ( result == Result::eIncomplete );
89246     if ( result == Result::eSuccess )
89247     {
89248       VULKAN_HPP_ASSERT( displayCount <= displays.size() );
89249       displays.resize( displayCount );
89250     }
89251     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
89252   }
89253 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89254 
89255   template<typename Dispatch>
getCalibrateableTimeDomainsEXT(uint32_t * pTimeDomainCount,VULKAN_HPP_NAMESPACE::TimeDomainEXT * pTimeDomains,Dispatch const & d) const89256   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89257   {
89258     return static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( pTimeDomains ) ) );
89259   }
89260 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89261   template<typename Allocator , typename Dispatch>
getCalibrateableTimeDomainsEXT(Dispatch const & d) const89262   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Dispatch const &d ) const
89263   {
89264     std::vector<TimeDomainEXT,Allocator> timeDomains;
89265     uint32_t timeDomainCount;
89266     Result result;
89267     do
89268     {
89269       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
89270       if ( ( result == Result::eSuccess ) && timeDomainCount )
89271       {
89272         timeDomains.resize( timeDomainCount );
89273         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( timeDomains.data() ) ) );
89274       }
89275     } while ( result == Result::eIncomplete );
89276     if ( result == Result::eSuccess )
89277     {
89278       VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
89279       timeDomains.resize( timeDomainCount );
89280     }
89281     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
89282   }
89283   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, TimeDomainEXT>::value, int>::type>
getCalibrateableTimeDomainsEXT(Allocator const & vectorAllocator,Dispatch const & d) const89284   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d ) const
89285   {
89286     std::vector<TimeDomainEXT,Allocator> timeDomains( vectorAllocator );
89287     uint32_t timeDomainCount;
89288     Result result;
89289     do
89290     {
89291       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
89292       if ( ( result == Result::eSuccess ) && timeDomainCount )
89293       {
89294         timeDomains.resize( timeDomainCount );
89295         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( timeDomains.data() ) ) );
89296       }
89297     } while ( result == Result::eIncomplete );
89298     if ( result == Result::eSuccess )
89299     {
89300       VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
89301       timeDomains.resize( timeDomainCount );
89302     }
89303     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
89304   }
89305 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89306 
89307   template<typename Dispatch>
getCooperativeMatrixPropertiesNV(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV * pProperties,Dispatch const & d) const89308   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89309   {
89310     return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, pPropertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( pProperties ) ) );
89311   }
89312 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89313   template<typename Allocator , typename Dispatch>
getCooperativeMatrixPropertiesNV(Dispatch const & d) const89314   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Dispatch const &d ) const
89315   {
89316     std::vector<CooperativeMatrixPropertiesNV,Allocator> properties;
89317     uint32_t propertyCount;
89318     Result result;
89319     do
89320     {
89321       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
89322       if ( ( result == Result::eSuccess ) && propertyCount )
89323       {
89324         properties.resize( propertyCount );
89325         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( properties.data() ) ) );
89326       }
89327     } while ( result == Result::eIncomplete );
89328     if ( result == Result::eSuccess )
89329     {
89330       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89331       properties.resize( propertyCount );
89332     }
89333     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
89334   }
89335   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, CooperativeMatrixPropertiesNV>::value, int>::type>
getCooperativeMatrixPropertiesNV(Allocator const & vectorAllocator,Dispatch const & d) const89336   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d ) const
89337   {
89338     std::vector<CooperativeMatrixPropertiesNV,Allocator> properties( vectorAllocator );
89339     uint32_t propertyCount;
89340     Result result;
89341     do
89342     {
89343       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
89344       if ( ( result == Result::eSuccess ) && propertyCount )
89345       {
89346         properties.resize( propertyCount );
89347         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( properties.data() ) ) );
89348       }
89349     } while ( result == Result::eIncomplete );
89350     if ( result == Result::eSuccess )
89351     {
89352       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89353       properties.resize( propertyCount );
89354     }
89355     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
89356   }
89357 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89358 
89359 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
89360   template<typename Dispatch>
getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB * dfb,Dispatch const & d) const89361   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89362   {
89363     return static_cast<Bool32>( d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, dfb ) );
89364   }
89365 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89366   template<typename Dispatch>
getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB & dfb,Dispatch const & d) const89367   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
89368   {
89369     return d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, &dfb );
89370   }
89371 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89372 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
89373 
89374   template<typename Dispatch>
getDisplayPlaneProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR * pProperties,Dispatch const & d) const89375   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89376   {
89377     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( pProperties ) ) );
89378   }
89379 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89380   template<typename Allocator , typename Dispatch>
getDisplayPlaneProperties2KHR(Dispatch const & d) const89381   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Dispatch const &d ) const
89382   {
89383     std::vector<DisplayPlaneProperties2KHR,Allocator> properties;
89384     uint32_t propertyCount;
89385     Result result;
89386     do
89387     {
89388       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
89389       if ( ( result == Result::eSuccess ) && propertyCount )
89390       {
89391         properties.resize( propertyCount );
89392         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( properties.data() ) ) );
89393       }
89394     } while ( result == Result::eIncomplete );
89395     if ( result == Result::eSuccess )
89396     {
89397       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89398       properties.resize( propertyCount );
89399     }
89400     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
89401   }
89402   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlaneProperties2KHR>::value, int>::type>
getDisplayPlaneProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const89403   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
89404   {
89405     std::vector<DisplayPlaneProperties2KHR,Allocator> properties( vectorAllocator );
89406     uint32_t propertyCount;
89407     Result result;
89408     do
89409     {
89410       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
89411       if ( ( result == Result::eSuccess ) && propertyCount )
89412       {
89413         properties.resize( propertyCount );
89414         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( properties.data() ) ) );
89415       }
89416     } while ( result == Result::eIncomplete );
89417     if ( result == Result::eSuccess )
89418     {
89419       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89420       properties.resize( propertyCount );
89421     }
89422     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
89423   }
89424 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89425 
89426   template<typename Dispatch>
getDisplayPlanePropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR * pProperties,Dispatch const & d) const89427   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89428   {
89429     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( pProperties ) ) );
89430   }
89431 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89432   template<typename Allocator , typename Dispatch>
getDisplayPlanePropertiesKHR(Dispatch const & d) const89433   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Dispatch const &d ) const
89434   {
89435     std::vector<DisplayPlanePropertiesKHR,Allocator> properties;
89436     uint32_t propertyCount;
89437     Result result;
89438     do
89439     {
89440       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
89441       if ( ( result == Result::eSuccess ) && propertyCount )
89442       {
89443         properties.resize( propertyCount );
89444         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( properties.data() ) ) );
89445       }
89446     } while ( result == Result::eIncomplete );
89447     if ( result == Result::eSuccess )
89448     {
89449       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89450       properties.resize( propertyCount );
89451     }
89452     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
89453   }
89454   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlanePropertiesKHR>::value, int>::type>
getDisplayPlanePropertiesKHR(Allocator const & vectorAllocator,Dispatch const & d) const89455   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
89456   {
89457     std::vector<DisplayPlanePropertiesKHR,Allocator> properties( vectorAllocator );
89458     uint32_t propertyCount;
89459     Result result;
89460     do
89461     {
89462       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
89463       if ( ( result == Result::eSuccess ) && propertyCount )
89464       {
89465         properties.resize( propertyCount );
89466         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( properties.data() ) ) );
89467       }
89468     } while ( result == Result::eIncomplete );
89469     if ( result == Result::eSuccess )
89470     {
89471       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89472       properties.resize( propertyCount );
89473     }
89474     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
89475   }
89476 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89477 
89478   template<typename Dispatch>
getDisplayProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayProperties2KHR * pProperties,Dispatch const & d) const89479   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89480   {
89481     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( pProperties ) ) );
89482   }
89483 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89484   template<typename Allocator , typename Dispatch>
getDisplayProperties2KHR(Dispatch const & d) const89485   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayProperties2KHR(Dispatch const &d ) const
89486   {
89487     std::vector<DisplayProperties2KHR,Allocator> properties;
89488     uint32_t propertyCount;
89489     Result result;
89490     do
89491     {
89492       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
89493       if ( ( result == Result::eSuccess ) && propertyCount )
89494       {
89495         properties.resize( propertyCount );
89496         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( properties.data() ) ) );
89497       }
89498     } while ( result == Result::eIncomplete );
89499     if ( result == Result::eSuccess )
89500     {
89501       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89502       properties.resize( propertyCount );
89503     }
89504     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
89505   }
89506   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayProperties2KHR>::value, int>::type>
getDisplayProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const89507   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
89508   {
89509     std::vector<DisplayProperties2KHR,Allocator> properties( vectorAllocator );
89510     uint32_t propertyCount;
89511     Result result;
89512     do
89513     {
89514       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
89515       if ( ( result == Result::eSuccess ) && propertyCount )
89516       {
89517         properties.resize( propertyCount );
89518         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( properties.data() ) ) );
89519       }
89520     } while ( result == Result::eIncomplete );
89521     if ( result == Result::eSuccess )
89522     {
89523       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89524       properties.resize( propertyCount );
89525     }
89526     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
89527   }
89528 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89529 
89530   template<typename Dispatch>
getDisplayPropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR * pProperties,Dispatch const & d) const89531   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89532   {
89533     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( pProperties ) ) );
89534   }
89535 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89536   template<typename Allocator , typename Dispatch>
getDisplayPropertiesKHR(Dispatch const & d) const89537   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPropertiesKHR(Dispatch const &d ) const
89538   {
89539     std::vector<DisplayPropertiesKHR,Allocator> properties;
89540     uint32_t propertyCount;
89541     Result result;
89542     do
89543     {
89544       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
89545       if ( ( result == Result::eSuccess ) && propertyCount )
89546       {
89547         properties.resize( propertyCount );
89548         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( properties.data() ) ) );
89549       }
89550     } while ( result == Result::eIncomplete );
89551     if ( result == Result::eSuccess )
89552     {
89553       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89554       properties.resize( propertyCount );
89555     }
89556     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
89557   }
89558   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPropertiesKHR>::value, int>::type>
getDisplayPropertiesKHR(Allocator const & vectorAllocator,Dispatch const & d) const89559   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
89560   {
89561     std::vector<DisplayPropertiesKHR,Allocator> properties( vectorAllocator );
89562     uint32_t propertyCount;
89563     Result result;
89564     do
89565     {
89566       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
89567       if ( ( result == Result::eSuccess ) && propertyCount )
89568       {
89569         properties.resize( propertyCount );
89570         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( properties.data() ) ) );
89571       }
89572     } while ( result == Result::eIncomplete );
89573     if ( result == Result::eSuccess )
89574     {
89575       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89576       properties.resize( propertyCount );
89577     }
89578     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
89579   }
89580 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89581 
89582 
89583   template <typename Dispatch>
getExternalBufferProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const89584   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89585   {
89586     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( pExternalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( pExternalBufferProperties ) );
89587   }
89588 
89589 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89590   template <typename Dispatch>
getExternalBufferProperties(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const89591   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89592   {
89593     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
89594     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( &externalBufferProperties ) );
89595     return externalBufferProperties;
89596   }
89597 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89598 
89599   template <typename Dispatch>
getExternalBufferPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const89600   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89601   {
89602     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( pExternalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( pExternalBufferProperties ) );
89603   }
89604 
89605 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89606   template <typename Dispatch>
getExternalBufferPropertiesKHR(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const89607   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89608   {
89609     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
89610     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( &externalBufferProperties ) );
89611     return externalBufferProperties;
89612   }
89613 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89614 
89615 
89616   template <typename Dispatch>
getExternalFenceProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const89617   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89618   {
89619     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( pExternalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( pExternalFenceProperties ) );
89620   }
89621 
89622 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89623   template <typename Dispatch>
getExternalFenceProperties(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const89624   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89625   {
89626     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
89627     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( &externalFenceProperties ) );
89628     return externalFenceProperties;
89629   }
89630 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89631 
89632   template <typename Dispatch>
getExternalFencePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const89633   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89634   {
89635     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( pExternalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( pExternalFenceProperties ) );
89636   }
89637 
89638 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89639   template <typename Dispatch>
getExternalFencePropertiesKHR(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const89640   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89641   {
89642     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
89643     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( &externalFenceProperties ) );
89644     return externalFenceProperties;
89645   }
89646 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89647 
89648 
89649   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) const89650   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
89651   {
89652     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 ) ) );
89653   }
89654 
89655 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89656   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) const89657   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
89658   {
89659     VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties;
89660     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 ) ) );
89661     return createResultValue( result, externalImageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" );
89662   }
89663 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89664 
89665 
89666   template <typename Dispatch>
getExternalSemaphoreProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const89667   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89668   {
89669     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( pExternalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) );
89670   }
89671 
89672 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89673   template <typename Dispatch>
getExternalSemaphoreProperties(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const89674   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89675   {
89676     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
89677     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) );
89678     return externalSemaphoreProperties;
89679   }
89680 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89681 
89682   template <typename Dispatch>
getExternalSemaphorePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const89683   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89684   {
89685     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( pExternalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) );
89686   }
89687 
89688 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89689   template <typename Dispatch>
getExternalSemaphorePropertiesKHR(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const89690   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89691   {
89692     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
89693     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) );
89694     return externalSemaphoreProperties;
89695   }
89696 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89697 
89698 
89699   template <typename Dispatch>
getFeatures(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pFeatures,Dispatch const & d) const89700   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89701   {
89702     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures *>( pFeatures ) );
89703   }
89704 
89705 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89706   template <typename Dispatch>
getFeatures(Dispatch const & d) const89707   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89708   {
89709     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features;
89710     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures *>( &features ) );
89711     return features;
89712   }
89713 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89714 
89715 
89716   template <typename Dispatch>
getFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const89717   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89718   {
89719     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( pFeatures ) );
89720   }
89721 
89722 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89723   template <typename Dispatch>
getFeatures2(Dispatch const & d) const89724   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89725   {
89726     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
89727     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( &features ) );
89728     return features;
89729   }
89730 
89731   template <typename X, typename Y, typename... Z, typename Dispatch>
getFeatures2(Dispatch const & d) const89732   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89733   {
89734     StructureChain<X, Y, Z...> structureChain;
89735     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
89736     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( &features ) );
89737     return structureChain;
89738   }
89739 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89740 
89741   template <typename Dispatch>
getFeatures2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const89742   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89743   {
89744     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( pFeatures ) );
89745   }
89746 
89747 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89748   template <typename Dispatch>
getFeatures2KHR(Dispatch const & d) const89749   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89750   {
89751     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
89752     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( &features ) );
89753     return features;
89754   }
89755 
89756   template <typename X, typename Y, typename... Z, typename Dispatch>
getFeatures2KHR(Dispatch const & d) const89757   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89758   {
89759     StructureChain<X, Y, Z...> structureChain;
89760     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
89761     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( &features ) );
89762     return structureChain;
89763   }
89764 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89765 
89766 
89767   template <typename Dispatch>
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties * pFormatProperties,Dispatch const & d) const89768   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89769   {
89770     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties *>( pFormatProperties ) );
89771   }
89772 
89773 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89774   template <typename Dispatch>
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const89775   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89776   {
89777     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties;
89778     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties *>( &formatProperties ) );
89779     return formatProperties;
89780   }
89781 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89782 
89783 
89784   template <typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const89785   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89786   {
89787     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties2 *>( pFormatProperties ) );
89788   }
89789 
89790 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89791   template <typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const89792   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89793   {
89794     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
89795     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties2 *>( &formatProperties ) );
89796     return formatProperties;
89797   }
89798 
89799   template <typename X, typename Y, typename... Z, typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const89800   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89801   {
89802     StructureChain<X, Y, Z...> structureChain;
89803     VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
89804     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties2 *>( &formatProperties ) );
89805     return structureChain;
89806   }
89807 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89808 
89809   template <typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const89810   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89811   {
89812     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties2 *>( pFormatProperties ) );
89813   }
89814 
89815 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89816   template <typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const89817   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89818   {
89819     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
89820     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties2 *>( &formatProperties ) );
89821     return formatProperties;
89822   }
89823 
89824   template <typename X, typename Y, typename... Z, typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const89825   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89826   {
89827     StructureChain<X, Y, Z...> structureChain;
89828     VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
89829     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties2 *>( &formatProperties ) );
89830     return structureChain;
89831   }
89832 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89833 
89834   template<typename Dispatch>
getFragmentShadingRatesKHR(uint32_t * pFragmentShadingRateCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates,Dispatch const & d) const89835   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getFragmentShadingRatesKHR( uint32_t* pFragmentShadingRateCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89836   {
89837     return static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, pFragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR*>( pFragmentShadingRates ) ) );
89838   }
89839 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89840   template<typename Allocator , typename Dispatch>
getFragmentShadingRatesKHR(Dispatch const & d) const89841   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR,Allocator>>::type PhysicalDevice::getFragmentShadingRatesKHR(Dispatch const &d ) const
89842   {
89843     std::vector<PhysicalDeviceFragmentShadingRateKHR,Allocator> fragmentShadingRates;
89844     uint32_t fragmentShadingRateCount;
89845     Result result;
89846     do
89847     {
89848       result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) );
89849       if ( ( result == Result::eSuccess ) && fragmentShadingRateCount )
89850       {
89851         fragmentShadingRates.resize( fragmentShadingRateCount );
89852         result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR*>( fragmentShadingRates.data() ) ) );
89853       }
89854     } while ( result == Result::eIncomplete );
89855     if ( result == Result::eSuccess )
89856     {
89857       VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
89858       fragmentShadingRates.resize( fragmentShadingRateCount );
89859     }
89860     return createResultValue( result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getFragmentShadingRatesKHR" );
89861   }
89862   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceFragmentShadingRateKHR>::value, int>::type>
getFragmentShadingRatesKHR(Allocator const & vectorAllocator,Dispatch const & d) const89863   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR,Allocator>>::type PhysicalDevice::getFragmentShadingRatesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
89864   {
89865     std::vector<PhysicalDeviceFragmentShadingRateKHR,Allocator> fragmentShadingRates( vectorAllocator );
89866     uint32_t fragmentShadingRateCount;
89867     Result result;
89868     do
89869     {
89870       result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) );
89871       if ( ( result == Result::eSuccess ) && fragmentShadingRateCount )
89872       {
89873         fragmentShadingRates.resize( fragmentShadingRateCount );
89874         result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR*>( fragmentShadingRates.data() ) ) );
89875       }
89876     } while ( result == Result::eIncomplete );
89877     if ( result == Result::eSuccess )
89878     {
89879       VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
89880       fragmentShadingRates.resize( fragmentShadingRateCount );
89881     }
89882     return createResultValue( result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getFragmentShadingRatesKHR" );
89883   }
89884 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89885 
89886 
89887   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) const89888   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
89889   {
89890     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 ) ) );
89891   }
89892 
89893 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89894   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) const89895   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
89896   {
89897     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties;
89898     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 ) ) );
89899     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" );
89900   }
89901 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89902 
89903 
89904   template <typename Dispatch>
getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const89905   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
89906   {
89907     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( pImageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( pImageFormatProperties ) ) );
89908   }
89909 
89910 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89911   template <typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const89912   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
89913   {
89914     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
89915     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
89916     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
89917   }
89918 
89919   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const89920   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
89921   {
89922     StructureChain<X, Y, Z...> structureChain;
89923     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
89924     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
89925     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" );
89926   }
89927 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89928 
89929   template <typename Dispatch>
getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const89930   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
89931   {
89932     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( pImageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( pImageFormatProperties ) ) );
89933   }
89934 
89935 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89936   template <typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const89937   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
89938   {
89939     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
89940     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
89941     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
89942   }
89943 
89944   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const89945   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
89946   {
89947     StructureChain<X, Y, Z...> structureChain;
89948     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
89949     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
89950     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" );
89951   }
89952 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89953 
89954 
89955   template <typename Dispatch>
getMemoryProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties * pMemoryProperties,Dispatch const & d) const89956   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89957   {
89958     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties *>( pMemoryProperties ) );
89959   }
89960 
89961 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89962   template <typename Dispatch>
getMemoryProperties(Dispatch const & d) const89963   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89964   {
89965     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties;
89966     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties *>( &memoryProperties ) );
89967     return memoryProperties;
89968   }
89969 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89970 
89971 
89972   template <typename Dispatch>
getMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const89973   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89974   {
89975     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) );
89976   }
89977 
89978 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89979   template <typename Dispatch>
getMemoryProperties2(Dispatch const & d) const89980   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89981   {
89982     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
89983     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
89984     return memoryProperties;
89985   }
89986 
89987   template <typename X, typename Y, typename... Z, typename Dispatch>
getMemoryProperties2(Dispatch const & d) const89988   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89989   {
89990     StructureChain<X, Y, Z...> structureChain;
89991     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
89992     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
89993     return structureChain;
89994   }
89995 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89996 
89997   template <typename Dispatch>
getMemoryProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const89998   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89999   {
90000     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) );
90001   }
90002 
90003 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90004   template <typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const90005   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90006   {
90007     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
90008     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
90009     return memoryProperties;
90010   }
90011 
90012   template <typename X, typename Y, typename... Z, typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const90013   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90014   {
90015     StructureChain<X, Y, Z...> structureChain;
90016     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
90017     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
90018     return structureChain;
90019   }
90020 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90021 
90022 
90023   template <typename Dispatch>
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT * pMultisampleProperties,Dispatch const & d) const90024   VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90025   {
90026     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast< VkMultisamplePropertiesEXT *>( pMultisampleProperties ) );
90027   }
90028 
90029 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90030   template <typename Dispatch>
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,Dispatch const & d) const90031   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90032   {
90033     VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties;
90034     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast< VkMultisamplePropertiesEXT *>( &multisampleProperties ) );
90035     return multisampleProperties;
90036   }
90037 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90038 
90039   template<typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pRectCount,VULKAN_HPP_NAMESPACE::Rect2D * pRects,Dispatch const & d) const90040   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
90041   {
90042     return static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pRectCount, reinterpret_cast<VkRect2D*>( pRects ) ) );
90043   }
90044 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90045   template<typename Allocator , typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const90046   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D,Allocator>>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
90047   {
90048     std::vector<Rect2D,Allocator> rects;
90049     uint32_t rectCount;
90050     Result result;
90051     do
90052     {
90053       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
90054       if ( ( result == Result::eSuccess ) && rectCount )
90055       {
90056         rects.resize( rectCount );
90057         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D*>( rects.data() ) ) );
90058       }
90059     } while ( result == Result::eIncomplete );
90060     if ( result == Result::eSuccess )
90061     {
90062       VULKAN_HPP_ASSERT( rectCount <= rects.size() );
90063       rects.resize( rectCount );
90064     }
90065     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
90066   }
90067   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Rect2D>::value, int>::type>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Allocator const & vectorAllocator,Dispatch const & d) const90068   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D,Allocator>>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
90069   {
90070     std::vector<Rect2D,Allocator> rects( vectorAllocator );
90071     uint32_t rectCount;
90072     Result result;
90073     do
90074     {
90075       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
90076       if ( ( result == Result::eSuccess ) && rectCount )
90077       {
90078         rects.resize( rectCount );
90079         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D*>( rects.data() ) ) );
90080       }
90081     } while ( result == Result::eIncomplete );
90082     if ( result == Result::eSuccess )
90083     {
90084       VULKAN_HPP_ASSERT( rectCount <= rects.size() );
90085       rects.resize( rectCount );
90086     }
90087     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
90088   }
90089 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90090 
90091 
90092   template <typename Dispatch>
getProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties * pProperties,Dispatch const & d) const90093   VULKAN_HPP_INLINE void PhysicalDevice::getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90094   {
90095     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties *>( pProperties ) );
90096   }
90097 
90098 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90099   template <typename Dispatch>
getProperties(Dispatch const & d) const90100   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90101   {
90102     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties;
90103     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties *>( &properties ) );
90104     return properties;
90105   }
90106 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90107 
90108 
90109   template <typename Dispatch>
getProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const90110   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90111   {
90112     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( pProperties ) );
90113   }
90114 
90115 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90116   template <typename Dispatch>
getProperties2(Dispatch const & d) const90117   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90118   {
90119     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
90120     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( &properties ) );
90121     return properties;
90122   }
90123 
90124   template <typename X, typename Y, typename... Z, typename Dispatch>
getProperties2(Dispatch const & d) const90125   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90126   {
90127     StructureChain<X, Y, Z...> structureChain;
90128     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
90129     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( &properties ) );
90130     return structureChain;
90131   }
90132 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90133 
90134   template <typename Dispatch>
getProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const90135   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90136   {
90137     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( pProperties ) );
90138   }
90139 
90140 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90141   template <typename Dispatch>
getProperties2KHR(Dispatch const & d) const90142   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90143   {
90144     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
90145     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( &properties ) );
90146     return properties;
90147   }
90148 
90149   template <typename X, typename Y, typename... Z, typename Dispatch>
getProperties2KHR(Dispatch const & d) const90150   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90151   {
90152     StructureChain<X, Y, Z...> structureChain;
90153     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
90154     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( &properties ) );
90155     return structureChain;
90156   }
90157 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90158 
90159 
90160   template <typename Dispatch>
getQueueFamilyPerformanceQueryPassesKHR(const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses,Dispatch const & d) const90161   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90162   {
90163     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( pPerformanceQueryCreateInfo ), pNumPasses );
90164   }
90165 
90166 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90167   template <typename Dispatch>
getQueueFamilyPerformanceQueryPassesKHR(const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo,Dispatch const & d) const90168   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90169   {
90170     uint32_t numPasses;
90171     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( &performanceQueryCreateInfo ), &numPasses );
90172     return numPasses;
90173   }
90174 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90175 
90176 
90177   template <typename Dispatch>
getQueueFamilyProperties(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties * pQueueFamilyProperties,Dispatch const & d) const90178   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90179   {
90180     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties *>( pQueueFamilyProperties ) );
90181   }
90182 
90183 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90184   template <typename QueueFamilyPropertiesAllocator, typename Dispatch>
getQueueFamilyProperties(Dispatch const & d) const90185   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> PhysicalDevice::getQueueFamilyProperties( Dispatch const & d ) const
90186   {
90187     std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties;
90188     uint32_t queueFamilyPropertyCount;
90189     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90190     queueFamilyProperties.resize( queueFamilyPropertyCount );
90191     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) );
90192     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90193     return queueFamilyProperties;
90194   }
90195 
90196   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) const90197   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> PhysicalDevice::getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d ) const
90198   {
90199     std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties( queueFamilyPropertiesAllocator );
90200     uint32_t queueFamilyPropertyCount;
90201     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90202     queueFamilyProperties.resize( queueFamilyPropertyCount );
90203     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) );
90204     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90205     return queueFamilyProperties;
90206   }
90207 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90208 
90209   template<typename Dispatch>
getQueueFamilyProperties2(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const90210   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
90211   {
90212     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( pQueueFamilyProperties ) );
90213   }
90214 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90215   template<typename Allocator , typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const90216   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const
90217   {
90218     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties;
90219     uint32_t queueFamilyPropertyCount;
90220     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90221     queueFamilyProperties.resize( queueFamilyPropertyCount );
90222     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
90223     return queueFamilyProperties;
90224   }
90225   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type>
getQueueFamilyProperties2(Allocator const & vectorAllocator,Dispatch const & d) const90226   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const
90227   {
90228     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties( vectorAllocator );
90229     uint32_t queueFamilyPropertyCount;
90230     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90231     queueFamilyProperties.resize( queueFamilyPropertyCount );
90232     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
90233     return queueFamilyProperties;
90234   }
90235   template<typename StructureChain, typename Allocator , typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const90236   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const
90237   {
90238     std::vector<StructureChain,Allocator> queueFamilyProperties;
90239     uint32_t queueFamilyPropertyCount;
90240     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90241     queueFamilyProperties.resize( queueFamilyPropertyCount );
90242     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
90243     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
90244     {
90245       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
90246     }
90247     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
90248     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
90249     {
90250       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
90251     }
90252     return queueFamilyProperties;
90253   }
90254   template<typename StructureChain, typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type>
getQueueFamilyProperties2(Allocator const & vectorAllocator,Dispatch const & d) const90255   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const
90256   {
90257     std::vector<StructureChain,Allocator> queueFamilyProperties( vectorAllocator );
90258     uint32_t queueFamilyPropertyCount;
90259     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90260     queueFamilyProperties.resize( queueFamilyPropertyCount );
90261     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
90262     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
90263     {
90264       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
90265     }
90266     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
90267     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
90268     {
90269       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
90270     }
90271     return queueFamilyProperties;
90272   }
90273 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90274 
90275   template<typename Dispatch>
getQueueFamilyProperties2KHR(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const90276   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
90277   {
90278     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( pQueueFamilyProperties ) );
90279   }
90280 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90281   template<typename Allocator , typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const90282   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const
90283   {
90284     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties;
90285     uint32_t queueFamilyPropertyCount;
90286     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90287     queueFamilyProperties.resize( queueFamilyPropertyCount );
90288     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
90289     return queueFamilyProperties;
90290   }
90291   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type>
getQueueFamilyProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const90292   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
90293   {
90294     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties( vectorAllocator );
90295     uint32_t queueFamilyPropertyCount;
90296     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90297     queueFamilyProperties.resize( queueFamilyPropertyCount );
90298     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
90299     return queueFamilyProperties;
90300   }
90301   template<typename StructureChain, typename Allocator , typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const90302   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const
90303   {
90304     std::vector<StructureChain,Allocator> queueFamilyProperties;
90305     uint32_t queueFamilyPropertyCount;
90306     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90307     queueFamilyProperties.resize( queueFamilyPropertyCount );
90308     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
90309     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
90310     {
90311       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
90312     }
90313     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
90314     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
90315     {
90316       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
90317     }
90318     return queueFamilyProperties;
90319   }
90320   template<typename StructureChain, typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type>
getQueueFamilyProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const90321   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
90322   {
90323     std::vector<StructureChain,Allocator> queueFamilyProperties( vectorAllocator );
90324     uint32_t queueFamilyPropertyCount;
90325     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90326     queueFamilyProperties.resize( queueFamilyPropertyCount );
90327     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
90328     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
90329     {
90330       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
90331     }
90332     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
90333     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
90334     {
90335       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
90336     }
90337     return queueFamilyProperties;
90338   }
90339 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90340 
90341 
90342   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) const90343   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
90344   {
90345     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 ) );
90346   }
90347 
90348 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90349   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) const90350   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
90351   {
90352     std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties;
90353     uint32_t propertyCount;
90354     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 );
90355     properties.resize( propertyCount );
90356     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() ) );
90357     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90358     return properties;
90359   }
90360 
90361   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) const90362   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
90363   {
90364     std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties( sparseImageFormatPropertiesAllocator );
90365     uint32_t propertyCount;
90366     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 );
90367     properties.resize( propertyCount );
90368     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() ) );
90369     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90370     return properties;
90371   }
90372 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90373 
90374 
90375   template <typename Dispatch>
getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const90376   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
90377   {
90378     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) );
90379   }
90380 
90381 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90382   template <typename SparseImageFormatProperties2Allocator, typename Dispatch>
getSparseImageFormatProperties2(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const90383   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const
90384   {
90385     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
90386     uint32_t propertyCount;
90387     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
90388     properties.resize( propertyCount );
90389     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
90390     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90391     return properties;
90392   }
90393 
90394   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) const90395   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d ) const
90396   {
90397     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties( sparseImageFormatProperties2Allocator );
90398     uint32_t propertyCount;
90399     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
90400     properties.resize( propertyCount );
90401     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
90402     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90403     return properties;
90404   }
90405 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90406 
90407   template <typename Dispatch>
getSparseImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const90408   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
90409   {
90410     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) );
90411   }
90412 
90413 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90414   template <typename SparseImageFormatProperties2Allocator, typename Dispatch>
getSparseImageFormatProperties2KHR(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const90415   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const
90416   {
90417     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
90418     uint32_t propertyCount;
90419     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
90420     properties.resize( propertyCount );
90421     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
90422     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90423     return properties;
90424   }
90425 
90426   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) const90427   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d ) const
90428   {
90429     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties( sparseImageFormatProperties2Allocator );
90430     uint32_t propertyCount;
90431     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
90432     properties.resize( propertyCount );
90433     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
90434     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90435     return properties;
90436   }
90437 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90438 
90439   template<typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(uint32_t * pCombinationCount,VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV * pCombinations,Dispatch const & d) const90440   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
90441   {
90442     return static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, pCombinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( pCombinations ) ) );
90443   }
90444 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90445   template<typename Allocator , typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const & d) const90446   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d ) const
90447   {
90448     std::vector<FramebufferMixedSamplesCombinationNV,Allocator> combinations;
90449     uint32_t combinationCount;
90450     Result result;
90451     do
90452     {
90453       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
90454       if ( ( result == Result::eSuccess ) && combinationCount )
90455       {
90456         combinations.resize( combinationCount );
90457         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( combinations.data() ) ) );
90458       }
90459     } while ( result == Result::eIncomplete );
90460     if ( result == Result::eSuccess )
90461     {
90462       VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
90463       combinations.resize( combinationCount );
90464     }
90465     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
90466   }
90467   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, FramebufferMixedSamplesCombinationNV>::value, int>::type>
getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const & vectorAllocator,Dispatch const & d) const90468   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d ) const
90469   {
90470     std::vector<FramebufferMixedSamplesCombinationNV,Allocator> combinations( vectorAllocator );
90471     uint32_t combinationCount;
90472     Result result;
90473     do
90474     {
90475       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
90476       if ( ( result == Result::eSuccess ) && combinationCount )
90477       {
90478         combinations.resize( combinationCount );
90479         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( combinations.data() ) ) );
90480       }
90481     } while ( result == Result::eIncomplete );
90482     if ( result == Result::eSuccess )
90483     {
90484       VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
90485       combinations.resize( combinationCount );
90486     }
90487     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
90488   }
90489 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90490 
90491 
90492   template <typename Dispatch>
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT * pSurfaceCapabilities,Dispatch const & d) const90493   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
90494   {
90495     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkSurfaceCapabilities2EXT *>( pSurfaceCapabilities ) ) );
90496   }
90497 
90498 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90499   template <typename Dispatch>
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const90500   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
90501   {
90502     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities;
90503     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkSurfaceCapabilities2EXT *>( &surfaceCapabilities ) ) );
90504     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" );
90505   }
90506 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90507 
90508 
90509   template <typename Dispatch>
getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR * pSurfaceCapabilities,Dispatch const & d) const90510   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
90511   {
90512     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ), reinterpret_cast< VkSurfaceCapabilities2KHR *>( pSurfaceCapabilities ) ) );
90513   }
90514 
90515 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90516   template <typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const90517   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
90518   {
90519     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities;
90520     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast< VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
90521     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
90522   }
90523 
90524   template <typename X, typename Y, typename... Z, typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const90525   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
90526   {
90527     StructureChain<X, Y, Z...> structureChain;
90528     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>();
90529     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast< VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
90530     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" );
90531   }
90532 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90533 
90534 
90535   template <typename Dispatch>
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR * pSurfaceCapabilities,Dispatch const & d) const90536   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
90537   {
90538     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkSurfaceCapabilitiesKHR *>( pSurfaceCapabilities ) ) );
90539   }
90540 
90541 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90542   template <typename Dispatch>
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const90543   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
90544   {
90545     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities;
90546     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkSurfaceCapabilitiesKHR *>( &surfaceCapabilities ) ) );
90547     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" );
90548   }
90549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90550 
90551   template<typename Dispatch>
getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR * pSurfaceFormats,Dispatch const & d) const90552   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
90553   {
90554     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), pSurfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( pSurfaceFormats ) ) );
90555   }
90556 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90557   template<typename Allocator , typename Dispatch>
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const90558   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
90559   {
90560     std::vector<SurfaceFormat2KHR,Allocator> surfaceFormats;
90561     uint32_t surfaceFormatCount;
90562     Result result;
90563     do
90564     {
90565       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
90566       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
90567       {
90568         surfaceFormats.resize( surfaceFormatCount );
90569         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( surfaceFormats.data() ) ) );
90570       }
90571     } while ( result == Result::eIncomplete );
90572     if ( result == Result::eSuccess )
90573     {
90574       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
90575       surfaceFormats.resize( surfaceFormatCount );
90576     }
90577     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
90578   }
90579   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormat2KHR>::value, int>::type>
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Allocator const & vectorAllocator,Dispatch const & d) const90580   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
90581   {
90582     std::vector<SurfaceFormat2KHR,Allocator> surfaceFormats( vectorAllocator );
90583     uint32_t surfaceFormatCount;
90584     Result result;
90585     do
90586     {
90587       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
90588       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
90589       {
90590         surfaceFormats.resize( surfaceFormatCount );
90591         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( surfaceFormats.data() ) ) );
90592       }
90593     } while ( result == Result::eIncomplete );
90594     if ( result == Result::eSuccess )
90595     {
90596       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
90597       surfaceFormats.resize( surfaceFormatCount );
90598     }
90599     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
90600   }
90601 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90602 
90603   template<typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormatKHR * pSurfaceFormats,Dispatch const & d) const90604   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
90605   {
90606     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pSurfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( pSurfaceFormats ) ) );
90607   }
90608 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90609   template<typename Allocator , typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const90610   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
90611   {
90612     std::vector<SurfaceFormatKHR,Allocator> surfaceFormats;
90613     uint32_t surfaceFormatCount;
90614     Result result;
90615     do
90616     {
90617       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
90618       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
90619       {
90620         surfaceFormats.resize( surfaceFormatCount );
90621         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( surfaceFormats.data() ) ) );
90622       }
90623     } while ( result == Result::eIncomplete );
90624     if ( result == Result::eSuccess )
90625     {
90626       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
90627       surfaceFormats.resize( surfaceFormatCount );
90628     }
90629     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
90630   }
90631   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormatKHR>::value, int>::type>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Allocator const & vectorAllocator,Dispatch const & d) const90632   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
90633   {
90634     std::vector<SurfaceFormatKHR,Allocator> surfaceFormats( vectorAllocator );
90635     uint32_t surfaceFormatCount;
90636     Result result;
90637     do
90638     {
90639       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
90640       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
90641       {
90642         surfaceFormats.resize( surfaceFormatCount );
90643         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( surfaceFormats.data() ) ) );
90644       }
90645     } while ( result == Result::eIncomplete );
90646     if ( result == Result::eSuccess )
90647     {
90648       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
90649       surfaceFormats.resize( surfaceFormatCount );
90650     }
90651     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
90652   }
90653 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90654 
90655 #ifdef VK_USE_PLATFORM_WIN32_KHR
90656   template<typename Dispatch>
getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const90657   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
90658   {
90659     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), pPresentModeCount, reinterpret_cast<VkPresentModeKHR*>( pPresentModes ) ) );
90660   }
90661 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90662   template<typename Allocator , typename Dispatch>
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const90663   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
90664   {
90665     std::vector<PresentModeKHR,Allocator> presentModes;
90666     uint32_t presentModeCount;
90667     Result result;
90668     do
90669     {
90670       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, nullptr ) );
90671       if ( ( result == Result::eSuccess ) && presentModeCount )
90672       {
90673         presentModes.resize( presentModeCount );
90674         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
90675       }
90676     } while ( result == Result::eIncomplete );
90677     if ( result == Result::eSuccess )
90678     {
90679       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
90680       presentModes.resize( presentModeCount );
90681     }
90682     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
90683   }
90684   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type>
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Allocator const & vectorAllocator,Dispatch const & d) const90685   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
90686   {
90687     std::vector<PresentModeKHR,Allocator> presentModes( vectorAllocator );
90688     uint32_t presentModeCount;
90689     Result result;
90690     do
90691     {
90692       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, nullptr ) );
90693       if ( ( result == Result::eSuccess ) && presentModeCount )
90694       {
90695         presentModes.resize( presentModeCount );
90696         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
90697       }
90698     } while ( result == Result::eIncomplete );
90699     if ( result == Result::eSuccess )
90700     {
90701       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
90702       presentModes.resize( presentModeCount );
90703     }
90704     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
90705   }
90706 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90707 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90708 
90709   template<typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const90710   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
90711   {
90712     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pPresentModeCount, reinterpret_cast<VkPresentModeKHR*>( pPresentModes ) ) );
90713   }
90714 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90715   template<typename Allocator , typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const90716   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
90717   {
90718     std::vector<PresentModeKHR,Allocator> presentModes;
90719     uint32_t presentModeCount;
90720     Result result;
90721     do
90722     {
90723       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
90724       if ( ( result == Result::eSuccess ) && presentModeCount )
90725       {
90726         presentModes.resize( presentModeCount );
90727         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
90728       }
90729     } while ( result == Result::eIncomplete );
90730     if ( result == Result::eSuccess )
90731     {
90732       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
90733       presentModes.resize( presentModeCount );
90734     }
90735     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
90736   }
90737   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Allocator const & vectorAllocator,Dispatch const & d) const90738   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
90739   {
90740     std::vector<PresentModeKHR,Allocator> presentModes( vectorAllocator );
90741     uint32_t presentModeCount;
90742     Result result;
90743     do
90744     {
90745       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
90746       if ( ( result == Result::eSuccess ) && presentModeCount )
90747       {
90748         presentModes.resize( presentModeCount );
90749         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
90750       }
90751     } while ( result == Result::eIncomplete );
90752     if ( result == Result::eSuccess )
90753     {
90754       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
90755       presentModes.resize( presentModeCount );
90756     }
90757     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
90758   }
90759 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90760 
90761 
90762   template <typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::Bool32 * pSupported,Dispatch const & d) const90763   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
90764   {
90765     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkBool32 *>( pSupported ) ) );
90766   }
90767 
90768 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90769   template <typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const90770   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
90771   {
90772     VULKAN_HPP_NAMESPACE::Bool32 supported;
90773     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkBool32 *>( &supported ) ) );
90774     return createResultValue( result, supported, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" );
90775   }
90776 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90777 
90778   template<typename Dispatch>
getToolPropertiesEXT(uint32_t * pToolCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT * pToolProperties,Dispatch const & d) const90779   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
90780   {
90781     return static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, pToolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( pToolProperties ) ) );
90782   }
90783 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90784   template<typename Allocator , typename Dispatch>
getToolPropertiesEXT(Dispatch const & d) const90785   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type PhysicalDevice::getToolPropertiesEXT(Dispatch const &d ) const
90786   {
90787     std::vector<PhysicalDeviceToolPropertiesEXT,Allocator> toolProperties;
90788     uint32_t toolCount;
90789     Result result;
90790     do
90791     {
90792       result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
90793       if ( ( result == Result::eSuccess ) && toolCount )
90794       {
90795         toolProperties.resize( toolCount );
90796         result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( toolProperties.data() ) ) );
90797       }
90798     } while ( result == Result::eIncomplete );
90799     if ( result == Result::eSuccess )
90800     {
90801       VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
90802       toolProperties.resize( toolCount );
90803     }
90804     return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" );
90805   }
90806   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceToolPropertiesEXT>::value, int>::type>
getToolPropertiesEXT(Allocator const & vectorAllocator,Dispatch const & d) const90807   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type PhysicalDevice::getToolPropertiesEXT(Allocator const& vectorAllocator, Dispatch const &d ) const
90808   {
90809     std::vector<PhysicalDeviceToolPropertiesEXT,Allocator> toolProperties( vectorAllocator );
90810     uint32_t toolCount;
90811     Result result;
90812     do
90813     {
90814       result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
90815       if ( ( result == Result::eSuccess ) && toolCount )
90816       {
90817         toolProperties.resize( toolCount );
90818         result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( toolProperties.data() ) ) );
90819       }
90820     } while ( result == Result::eIncomplete );
90821     if ( result == Result::eSuccess )
90822     {
90823       VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
90824       toolProperties.resize( toolCount );
90825     }
90826     return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" );
90827   }
90828 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90829 
90830 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
90831   template<typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display * display,Dispatch const & d) const90832   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
90833   {
90834     return static_cast<Bool32>( d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) );
90835   }
90836 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90837   template<typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display & display,Dispatch const & d) const90838   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
90839   {
90840     return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display );
90841   }
90842 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90843 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
90844 
90845 #ifdef VK_USE_PLATFORM_WIN32_KHR
90846 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
90847   template<typename Dispatch>
getWin32PresentationSupportKHR(uint32_t queueFamilyIndex,Dispatch const & d) const90848   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
90849   {
90850     return static_cast<Bool32>( d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) );
90851   }
90852 #else
90853   template<typename Dispatch>
getWin32PresentationSupportKHR(uint32_t queueFamilyIndex,Dispatch const & d) const90854   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
90855   {
90856     return d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex );
90857   }
90858 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90859 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90860 
90861 #ifdef VK_USE_PLATFORM_XCB_KHR
90862   template<typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id,Dispatch const & d) const90863   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
90864   {
90865     return static_cast<Bool32>( d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) );
90866   }
90867 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90868   template<typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t & connection,xcb_visualid_t visual_id,Dispatch const & d) const90869   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
90870   {
90871     return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id );
90872   }
90873 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90874 #endif /*VK_USE_PLATFORM_XCB_KHR*/
90875 
90876 
90877 #ifdef VK_USE_PLATFORM_XLIB_KHR
90878   template <typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display * dpy,VisualID visualID,Dispatch const & d) const90879   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90880   {
90881     return static_cast<Bool32>( d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) );
90882   }
90883 
90884 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90885   template <typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display & dpy,VisualID visualID,Dispatch const & d) const90886   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90887   {
90888     return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID );
90889   }
90890 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90891 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
90892 
90893 
90894 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
90895   template <typename Dispatch>
getRandROutputDisplayEXT(Display * dpy,RROutput rrOutput,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,Dispatch const & d) const90896   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
90897   {
90898     return static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast< VkDisplayKHR *>( pDisplay ) ) );
90899   }
90900 
90901 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90902   template <typename Dispatch>
getRandROutputDisplayEXT(Display & dpy,RROutput rrOutput,Dispatch const & d) const90903   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d ) const
90904   {
90905     VULKAN_HPP_NAMESPACE::DisplayKHR display;
90906     Result result = static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast< VkDisplayKHR *>( &display ) ) );
90907     return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXT" );
90908   }
90909 
90910 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
90911   template <typename Dispatch>
getRandROutputDisplayEXTUnique(Display & dpy,RROutput rrOutput,Dispatch const & d) const90912   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type PhysicalDevice::getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d ) const
90913   {
90914     VULKAN_HPP_NAMESPACE::DisplayKHR display;
90915     Result result = static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast< VkDisplayKHR *>( &display ) ) );
90916     ObjectRelease<PhysicalDevice, Dispatch> deleter( *this, d );
90917     return createResultValue<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXTUnique", deleter );
90918   }
90919 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
90920 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90921 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
90922 
90923 
90924 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
90925   template <typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const90926   VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90927   {
90928     return static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
90929   }
90930 #else
90931   template <typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const90932   VULKAN_HPP_INLINE typename ResultValueType<void>::type PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
90933   {
90934     Result result = static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
90935     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::releaseDisplayEXT" );
90936   }
90937 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90938 
90939 
90940 
90941   template <typename Dispatch>
getCheckpointDataNV(uint32_t * pCheckpointDataCount,VULKAN_HPP_NAMESPACE::CheckpointDataNV * pCheckpointData,Dispatch const & d) const90942   VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90943   {
90944     d.vkGetQueueCheckpointDataNV( m_queue, pCheckpointDataCount, reinterpret_cast< VkCheckpointDataNV *>( pCheckpointData ) );
90945   }
90946 
90947 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90948   template <typename CheckpointDataNVAllocator, typename Dispatch>
getCheckpointDataNV(Dispatch const & d) const90949   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointDataNV, CheckpointDataNVAllocator> Queue::getCheckpointDataNV( Dispatch const & d ) const
90950   {
90951     std::vector<CheckpointDataNV, CheckpointDataNVAllocator> checkpointData;
90952     uint32_t checkpointDataCount;
90953     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
90954     checkpointData.resize( checkpointDataCount );
90955     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) );
90956     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
90957     return checkpointData;
90958   }
90959 
90960   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) const90961   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointDataNV, CheckpointDataNVAllocator> Queue::getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d ) const
90962   {
90963     std::vector<CheckpointDataNV, CheckpointDataNVAllocator> checkpointData( checkpointDataNVAllocator );
90964     uint32_t checkpointDataCount;
90965     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
90966     checkpointData.resize( checkpointDataCount );
90967     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) );
90968     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
90969     return checkpointData;
90970   }
90971 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90972 
90973 
90974   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const90975   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90976   {
90977     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
90978   }
90979 
90980 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90981   template <typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const90982   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90983   {
90984     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
90985   }
90986 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90987 
90988 
90989   template <typename Dispatch>
bindSparse(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindSparseInfo * pBindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const90990   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
90991   {
90992     return static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfoCount, reinterpret_cast<const VkBindSparseInfo *>( pBindInfo ), static_cast<VkFence>( fence ) ) );
90993   }
90994 
90995 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90996   template <typename Dispatch>
bindSparse(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const90997   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
90998   {
90999     Result result = static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfo.size(), reinterpret_cast<const VkBindSparseInfo *>( bindInfo.data() ), static_cast<VkFence>( fence ) ) );
91000     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" );
91001   }
91002 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91003 
91004 
91005   template <typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const91006   VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91007   {
91008     d.vkQueueEndDebugUtilsLabelEXT( m_queue );
91009   }
91010 
91011 
91012   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const91013   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91014   {
91015     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
91016   }
91017 
91018 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91019   template <typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const91020   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91021   {
91022     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
91023   }
91024 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91025 
91026 
91027   template <typename Dispatch>
presentKHR(const VULKAN_HPP_NAMESPACE::PresentInfoKHR * pPresentInfo,Dispatch const & d) const91028   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91029   {
91030     return static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( pPresentInfo ) ) );
91031   }
91032 
91033 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91034   template <typename Dispatch>
presentKHR(const PresentInfoKHR & presentInfo,Dispatch const & d) const91035   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d ) const
91036   {
91037     Result result = static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) ) );
91038     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
91039   }
91040 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91041 
91042 
91043 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
91044   template <typename Dispatch>
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const91045   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91046   {
91047     return static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
91048   }
91049 #else
91050   template <typename Dispatch>
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const91051   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
91052   {
91053     Result result = static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
91054     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" );
91055   }
91056 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91057 
91058 
91059 
91060   template <typename Dispatch>
submit(uint32_t submitCount,const VULKAN_HPP_NAMESPACE::SubmitInfo * pSubmits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const91061   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
91062   {
91063     return static_cast<Result>( d.vkQueueSubmit( m_queue, submitCount, reinterpret_cast<const VkSubmitInfo *>( pSubmits ), static_cast<VkFence>( fence ) ) );
91064   }
91065 
91066 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91067   template <typename Dispatch>
submit(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const91068   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
91069   {
91070     Result result = static_cast<Result>( d.vkQueueSubmit( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo *>( submits.data() ), static_cast<VkFence>( fence ) ) );
91071     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" );
91072   }
91073 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91074 
91075 
91076 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
91077   template <typename Dispatch>
waitIdle(Dispatch const & d) const91078   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::waitIdle( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91079   {
91080     return static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
91081   }
91082 #else
91083   template <typename Dispatch>
waitIdle(Dispatch const & d) const91084   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::waitIdle( Dispatch const & d ) const
91085   {
91086     Result result = static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
91087     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" );
91088   }
91089 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91090 
91091 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91092   template <> struct StructExtends<AndroidHardwareBufferFormatPropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>{ enum { value = true }; };
91093 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91094 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91095   template <> struct StructExtends<AndroidHardwareBufferUsageANDROID, ImageFormatProperties2>{ enum { value = true }; };
91096 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91097   template <> struct StructExtends<AttachmentDescriptionStencilLayout, AttachmentDescription2>{ enum { value = true }; };
91098   template <> struct StructExtends<AttachmentReferenceStencilLayout, AttachmentReference2>{ enum { value = true }; };
91099   template <> struct StructExtends<BindBufferMemoryDeviceGroupInfo, BindBufferMemoryInfo>{ enum { value = true }; };
91100   template <> struct StructExtends<BindImageMemoryDeviceGroupInfo, BindImageMemoryInfo>{ enum { value = true }; };
91101   template <> struct StructExtends<BindImageMemorySwapchainInfoKHR, BindImageMemoryInfo>{ enum { value = true }; };
91102   template <> struct StructExtends<BindImagePlaneMemoryInfo, BindImageMemoryInfo>{ enum { value = true }; };
91103   template <> struct StructExtends<BufferDeviceAddressCreateInfoEXT, BufferCreateInfo>{ enum { value = true }; };
91104   template <> struct StructExtends<BufferOpaqueCaptureAddressCreateInfo, BufferCreateInfo>{ enum { value = true }; };
91105   template <> struct StructExtends<CommandBufferInheritanceConditionalRenderingInfoEXT, CommandBufferInheritanceInfo>{ enum { value = true }; };
91106   template <> struct StructExtends<CommandBufferInheritanceRenderPassTransformInfoQCOM, CommandBufferInheritanceInfo>{ enum { value = true }; };
91107 #ifdef VK_USE_PLATFORM_WIN32_KHR
91108   template <> struct StructExtends<D3D12FenceSubmitInfoKHR, SubmitInfo>{ enum { value = true }; };
91109 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91110   template <> struct StructExtends<DebugReportCallbackCreateInfoEXT, InstanceCreateInfo>{ enum { value = true }; };
91111   template <> struct StructExtends<DebugUtilsMessengerCreateInfoEXT, InstanceCreateInfo>{ enum { value = true }; };
91112   template <> struct StructExtends<DedicatedAllocationBufferCreateInfoNV, BufferCreateInfo>{ enum { value = true }; };
91113   template <> struct StructExtends<DedicatedAllocationImageCreateInfoNV, ImageCreateInfo>{ enum { value = true }; };
91114   template <> struct StructExtends<DedicatedAllocationMemoryAllocateInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
91115 #ifdef VK_ENABLE_BETA_EXTENSIONS
91116   template <> struct StructExtends<DeferredOperationInfoKHR, RayTracingPipelineCreateInfoKHR>{ enum { value = true }; };
91117   template <> struct StructExtends<DeferredOperationInfoKHR, AccelerationStructureBuildGeometryInfoKHR>{ enum { value = true }; };
91118   template <> struct StructExtends<DeferredOperationInfoKHR, CopyAccelerationStructureInfoKHR>{ enum { value = true }; };
91119   template <> struct StructExtends<DeferredOperationInfoKHR, CopyMemoryToAccelerationStructureInfoKHR>{ enum { value = true }; };
91120   template <> struct StructExtends<DeferredOperationInfoKHR, CopyAccelerationStructureToMemoryInfoKHR>{ enum { value = true }; };
91121 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91122   template <> struct StructExtends<DescriptorPoolInlineUniformBlockCreateInfoEXT, DescriptorPoolCreateInfo>{ enum { value = true }; };
91123   template <> struct StructExtends<DescriptorSetLayoutBindingFlagsCreateInfo, DescriptorSetLayoutCreateInfo>{ enum { value = true }; };
91124   template <> struct StructExtends<DescriptorSetVariableDescriptorCountAllocateInfo, DescriptorSetAllocateInfo>{ enum { value = true }; };
91125   template <> struct StructExtends<DescriptorSetVariableDescriptorCountLayoutSupport, DescriptorSetLayoutSupport>{ enum { value = true }; };
91126   template <> struct StructExtends<DeviceDeviceMemoryReportCreateInfoEXT, DeviceCreateInfo>{ enum { value = true }; };
91127   template <> struct StructExtends<DeviceDiagnosticsConfigCreateInfoNV, DeviceCreateInfo>{ enum { value = true }; };
91128   template <> struct StructExtends<DeviceGroupBindSparseInfo, BindSparseInfo>{ enum { value = true }; };
91129   template <> struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>{ enum { value = true }; };
91130   template <> struct StructExtends<DeviceGroupDeviceCreateInfo, DeviceCreateInfo>{ enum { value = true }; };
91131   template <> struct StructExtends<DeviceGroupPresentInfoKHR, PresentInfoKHR>{ enum { value = true }; };
91132   template <> struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderPassBeginInfo>{ enum { value = true }; };
91133   template <> struct StructExtends<DeviceGroupSubmitInfo, SubmitInfo>{ enum { value = true }; };
91134   template <> struct StructExtends<DeviceGroupSwapchainCreateInfoKHR, SwapchainCreateInfoKHR>{ enum { value = true }; };
91135   template <> struct StructExtends<DeviceMemoryOverallocationCreateInfoAMD, DeviceCreateInfo>{ enum { value = true }; };
91136   template <> struct StructExtends<DevicePrivateDataCreateInfoEXT, DeviceCreateInfo>{ enum { value = true }; };
91137   template <> struct StructExtends<DeviceQueueGlobalPriorityCreateInfoEXT, DeviceQueueCreateInfo>{ enum { value = true }; };
91138   template <> struct StructExtends<DisplayNativeHdrSurfaceCapabilitiesAMD, SurfaceCapabilities2KHR>{ enum { value = true }; };
91139   template <> struct StructExtends<DisplayPresentInfoKHR, PresentInfoKHR>{ enum { value = true }; };
91140   template <> struct StructExtends<DrmFormatModifierPropertiesListEXT, FormatProperties2>{ enum { value = true }; };
91141   template <> struct StructExtends<ExportFenceCreateInfo, FenceCreateInfo>{ enum { value = true }; };
91142 #ifdef VK_USE_PLATFORM_WIN32_KHR
91143   template <> struct StructExtends<ExportFenceWin32HandleInfoKHR, FenceCreateInfo>{ enum { value = true }; };
91144 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91145   template <> struct StructExtends<ExportMemoryAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
91146   template <> struct StructExtends<ExportMemoryAllocateInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
91147 #ifdef VK_USE_PLATFORM_WIN32_KHR
91148   template <> struct StructExtends<ExportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
91149 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91150 #ifdef VK_USE_PLATFORM_WIN32_KHR
91151   template <> struct StructExtends<ExportMemoryWin32HandleInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
91152 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91153   template <> struct StructExtends<ExportSemaphoreCreateInfo, SemaphoreCreateInfo>{ enum { value = true }; };
91154 #ifdef VK_USE_PLATFORM_WIN32_KHR
91155   template <> struct StructExtends<ExportSemaphoreWin32HandleInfoKHR, SemaphoreCreateInfo>{ enum { value = true }; };
91156 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91157 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91158   template <> struct StructExtends<ExternalFormatANDROID, ImageCreateInfo>{ enum { value = true }; };
91159   template <> struct StructExtends<ExternalFormatANDROID, SamplerYcbcrConversionCreateInfo>{ enum { value = true }; };
91160 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91161   template <> struct StructExtends<ExternalImageFormatProperties, ImageFormatProperties2>{ enum { value = true }; };
91162   template <> struct StructExtends<ExternalMemoryBufferCreateInfo, BufferCreateInfo>{ enum { value = true }; };
91163   template <> struct StructExtends<ExternalMemoryImageCreateInfo, ImageCreateInfo>{ enum { value = true }; };
91164   template <> struct StructExtends<ExternalMemoryImageCreateInfoNV, ImageCreateInfo>{ enum { value = true }; };
91165   template <> struct StructExtends<FilterCubicImageViewImageFormatPropertiesEXT, ImageFormatProperties2>{ enum { value = true }; };
91166   template <> struct StructExtends<FragmentShadingRateAttachmentInfoKHR, SubpassDescription2>{ enum { value = true }; };
91167   template <> struct StructExtends<FramebufferAttachmentsCreateInfo, FramebufferCreateInfo>{ enum { value = true }; };
91168   template <> struct StructExtends<GraphicsPipelineShaderGroupsCreateInfoNV, GraphicsPipelineCreateInfo>{ enum { value = true }; };
91169   template <> struct StructExtends<ImageDrmFormatModifierExplicitCreateInfoEXT, ImageCreateInfo>{ enum { value = true }; };
91170   template <> struct StructExtends<ImageDrmFormatModifierListCreateInfoEXT, ImageCreateInfo>{ enum { value = true }; };
91171   template <> struct StructExtends<ImageFormatListCreateInfo, ImageCreateInfo>{ enum { value = true }; };
91172   template <> struct StructExtends<ImageFormatListCreateInfo, SwapchainCreateInfoKHR>{ enum { value = true }; };
91173   template <> struct StructExtends<ImageFormatListCreateInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
91174   template <> struct StructExtends<ImagePlaneMemoryRequirementsInfo, ImageMemoryRequirementsInfo2>{ enum { value = true }; };
91175   template <> struct StructExtends<ImageStencilUsageCreateInfo, ImageCreateInfo>{ enum { value = true }; };
91176   template <> struct StructExtends<ImageStencilUsageCreateInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
91177   template <> struct StructExtends<ImageSwapchainCreateInfoKHR, ImageCreateInfo>{ enum { value = true }; };
91178   template <> struct StructExtends<ImageViewASTCDecodeModeEXT, ImageViewCreateInfo>{ enum { value = true }; };
91179   template <> struct StructExtends<ImageViewUsageCreateInfo, ImageViewCreateInfo>{ enum { value = true }; };
91180 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91181   template <> struct StructExtends<ImportAndroidHardwareBufferInfoANDROID, MemoryAllocateInfo>{ enum { value = true }; };
91182 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91183   template <> struct StructExtends<ImportMemoryFdInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
91184   template <> struct StructExtends<ImportMemoryHostPointerInfoEXT, MemoryAllocateInfo>{ enum { value = true }; };
91185 #ifdef VK_USE_PLATFORM_WIN32_KHR
91186   template <> struct StructExtends<ImportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
91187 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91188 #ifdef VK_USE_PLATFORM_WIN32_KHR
91189   template <> struct StructExtends<ImportMemoryWin32HandleInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
91190 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91191   template <> struct StructExtends<MemoryAllocateFlagsInfo, MemoryAllocateInfo>{ enum { value = true }; };
91192   template <> struct StructExtends<MemoryDedicatedAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
91193   template <> struct StructExtends<MemoryDedicatedRequirements, MemoryRequirements2>{ enum { value = true }; };
91194   template <> struct StructExtends<MemoryOpaqueCaptureAddressAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
91195   template <> struct StructExtends<MemoryPriorityAllocateInfoEXT, MemoryAllocateInfo>{ enum { value = true }; };
91196   template <> struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo>{ enum { value = true }; };
91197   template <> struct StructExtends<PhysicalDevice16BitStorageFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91198   template <> struct StructExtends<PhysicalDevice16BitStorageFeatures, DeviceCreateInfo>{ enum { value = true }; };
91199   template <> struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91200   template <> struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91201   template <> struct StructExtends<PhysicalDevice8BitStorageFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91202   template <> struct StructExtends<PhysicalDevice8BitStorageFeatures, DeviceCreateInfo>{ enum { value = true }; };
91203   template <> struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91204   template <> struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91205   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91206   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91207   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91208   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91209   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, DeviceCreateInfo>{ enum { value = true }; };
91210   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91211   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91212   template <> struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, PhysicalDeviceFeatures2>{ enum { value = true }; };
91213   template <> struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, DeviceCreateInfo>{ enum { value = true }; };
91214   template <> struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91215   template <> struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91216   template <> struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91217   template <> struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91218   template <> struct StructExtends<PhysicalDeviceConservativeRasterizationPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91219   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91220   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91221   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
91222   template <> struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91223   template <> struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91224   template <> struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91225   template <> struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91226   template <> struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91227   template <> struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91228   template <> struct StructExtends<PhysicalDeviceCustomBorderColorPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91229   template <> struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91230   template <> struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91231   template <> struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91232   template <> struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91233   template <> struct StructExtends<PhysicalDeviceDepthStencilResolveProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91234   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91235   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, DeviceCreateInfo>{ enum { value = true }; };
91236   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91237   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91238   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91239   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
91240   template <> struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91241   template <> struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91242   template <> struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91243   template <> struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91244   template <> struct StructExtends<PhysicalDeviceDiscardRectanglePropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91245   template <> struct StructExtends<PhysicalDeviceDriverProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91246   template <> struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91247   template <> struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91248   template <> struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91249   template <> struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91250   template <> struct StructExtends<PhysicalDeviceExternalImageFormatInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
91251   template <> struct StructExtends<PhysicalDeviceExternalMemoryHostPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91252   template <> struct StructExtends<PhysicalDeviceFeatures2, DeviceCreateInfo>{ enum { value = true }; };
91253   template <> struct StructExtends<PhysicalDeviceFloatControlsProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91254   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91255   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91256   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2PropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91257   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91258   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91259   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91260   template <> struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91261   template <> struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91262   template <> struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91263   template <> struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91264   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91265   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91266   template <> struct StructExtends<PhysicalDeviceFragmentShadingRatePropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
91267   template <> struct StructExtends<PhysicalDeviceHostQueryResetFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91268   template <> struct StructExtends<PhysicalDeviceHostQueryResetFeatures, DeviceCreateInfo>{ enum { value = true }; };
91269   template <> struct StructExtends<PhysicalDeviceIDProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91270   template <> struct StructExtends<PhysicalDeviceImageDrmFormatModifierInfoEXT, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
91271   template <> struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91272   template <> struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91273   template <> struct StructExtends<PhysicalDeviceImageViewImageFormatInfoEXT, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
91274   template <> struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91275   template <> struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, DeviceCreateInfo>{ enum { value = true }; };
91276   template <> struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91277   template <> struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91278   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91279   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91280   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91281   template <> struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91282   template <> struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91283   template <> struct StructExtends<PhysicalDeviceLineRasterizationPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91284   template <> struct StructExtends<PhysicalDeviceMaintenance3Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
91285   template <> struct StructExtends<PhysicalDeviceMemoryBudgetPropertiesEXT, PhysicalDeviceMemoryProperties2>{ enum { value = true }; };
91286   template <> struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91287   template <> struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91288   template <> struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91289   template <> struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91290   template <> struct StructExtends<PhysicalDeviceMeshShaderPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
91291   template <> struct StructExtends<PhysicalDeviceMultiviewFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91292   template <> struct StructExtends<PhysicalDeviceMultiviewFeatures, DeviceCreateInfo>{ enum { value = true }; };
91293   template <> struct StructExtends<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, PhysicalDeviceProperties2>{ enum { value = true }; };
91294   template <> struct StructExtends<PhysicalDeviceMultiviewProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91295   template <> struct StructExtends<PhysicalDevicePCIBusInfoPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91296   template <> struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91297   template <> struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91298   template <> struct StructExtends<PhysicalDevicePerformanceQueryPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
91299   template <> struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91300   template <> struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91301   template <> struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91302   template <> struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91303   template <> struct StructExtends<PhysicalDevicePointClippingProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91304 #ifdef VK_ENABLE_BETA_EXTENSIONS
91305   template <> struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91306   template <> struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91307 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91308 #ifdef VK_ENABLE_BETA_EXTENSIONS
91309   template <> struct StructExtends<PhysicalDevicePortabilitySubsetPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
91310 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91311   template <> struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91312   template <> struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91313   template <> struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91314   template <> struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, DeviceCreateInfo>{ enum { value = true }; };
91315   template <> struct StructExtends<PhysicalDeviceProtectedMemoryProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91316   template <> struct StructExtends<PhysicalDevicePushDescriptorPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
91317 #ifdef VK_ENABLE_BETA_EXTENSIONS
91318   template <> struct StructExtends<PhysicalDeviceRayTracingFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91319   template <> struct StructExtends<PhysicalDeviceRayTracingFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91320 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91321 #ifdef VK_ENABLE_BETA_EXTENSIONS
91322   template <> struct StructExtends<PhysicalDeviceRayTracingPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
91323 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91324   template <> struct StructExtends<PhysicalDeviceRayTracingPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
91325   template <> struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91326   template <> struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91327   template <> struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91328   template <> struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91329   template <> struct StructExtends<PhysicalDeviceRobustness2PropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91330   template <> struct StructExtends<PhysicalDeviceSampleLocationsPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91331   template <> struct StructExtends<PhysicalDeviceSamplerFilterMinmaxProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91332   template <> struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91333   template <> struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, DeviceCreateInfo>{ enum { value = true }; };
91334   template <> struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91335   template <> struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, DeviceCreateInfo>{ enum { value = true }; };
91336   template <> struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91337   template <> struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, DeviceCreateInfo>{ enum { value = true }; };
91338   template <> struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91339   template <> struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91340   template <> struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
91341   template <> struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, DeviceCreateInfo>{ enum { value = true }; };
91342   template <> struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91343   template <> struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91344   template <> struct StructExtends<PhysicalDeviceShaderCoreProperties2AMD, PhysicalDeviceProperties2>{ enum { value = true }; };
91345   template <> struct StructExtends<PhysicalDeviceShaderCorePropertiesAMD, PhysicalDeviceProperties2>{ enum { value = true }; };
91346   template <> struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91347   template <> struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91348   template <> struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91349   template <> struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, DeviceCreateInfo>{ enum { value = true }; };
91350   template <> struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
91351   template <> struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, DeviceCreateInfo>{ enum { value = true }; };
91352   template <> struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91353   template <> struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91354   template <> struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91355   template <> struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91356   template <> struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, PhysicalDeviceFeatures2>{ enum { value = true }; };
91357   template <> struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, DeviceCreateInfo>{ enum { value = true }; };
91358   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91359   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91360   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
91361   template <> struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91362   template <> struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, DeviceCreateInfo>{ enum { value = true }; };
91363   template <> struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91364   template <> struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91365   template <> struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91366   template <> struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91367   template <> struct StructExtends<PhysicalDeviceShadingRateImagePropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
91368   template <> struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91369   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91370   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91371   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91372   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91373   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91374   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91375   template <> struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91376   template <> struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91377   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91378   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, DeviceCreateInfo>{ enum { value = true }; };
91379   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91380   template <> struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91381   template <> struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91382   template <> struct StructExtends<PhysicalDeviceTransformFeedbackPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91383   template <> struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91384   template <> struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, DeviceCreateInfo>{ enum { value = true }; };
91385   template <> struct StructExtends<PhysicalDeviceVariablePointersFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91386   template <> struct StructExtends<PhysicalDeviceVariablePointersFeatures, DeviceCreateInfo>{ enum { value = true }; };
91387   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91388   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91389   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91390   template <> struct StructExtends<PhysicalDeviceVulkan11Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
91391   template <> struct StructExtends<PhysicalDeviceVulkan11Features, DeviceCreateInfo>{ enum { value = true }; };
91392   template <> struct StructExtends<PhysicalDeviceVulkan11Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
91393   template <> struct StructExtends<PhysicalDeviceVulkan12Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
91394   template <> struct StructExtends<PhysicalDeviceVulkan12Features, DeviceCreateInfo>{ enum { value = true }; };
91395   template <> struct StructExtends<PhysicalDeviceVulkan12Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
91396   template <> struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91397   template <> struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, DeviceCreateInfo>{ enum { value = true }; };
91398   template <> struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91399   template <> struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91400   template <> struct StructExtends<PipelineColorBlendAdvancedStateCreateInfoEXT, PipelineColorBlendStateCreateInfo>{ enum { value = true }; };
91401   template <> struct StructExtends<PipelineCompilerControlCreateInfoAMD, GraphicsPipelineCreateInfo>{ enum { value = true }; };
91402   template <> struct StructExtends<PipelineCompilerControlCreateInfoAMD, ComputePipelineCreateInfo>{ enum { value = true }; };
91403   template <> struct StructExtends<PipelineCoverageModulationStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
91404   template <> struct StructExtends<PipelineCoverageReductionStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
91405   template <> struct StructExtends<PipelineCoverageToColorStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
91406   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, GraphicsPipelineCreateInfo>{ enum { value = true }; };
91407   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, ComputePipelineCreateInfo>{ enum { value = true }; };
91408   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoNV>{ enum { value = true }; };
91409 #ifdef VK_ENABLE_BETA_EXTENSIONS
91410   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoKHR>{ enum { value = true }; };
91411 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91412   template <> struct StructExtends<PipelineDiscardRectangleStateCreateInfoEXT, GraphicsPipelineCreateInfo>{ enum { value = true }; };
91413   template <> struct StructExtends<PipelineFragmentShadingRateStateCreateInfoKHR, GraphicsPipelineCreateInfo>{ enum { value = true }; };
91414   template <> struct StructExtends<PipelineRasterizationConservativeStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
91415   template <> struct StructExtends<PipelineRasterizationDepthClipStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
91416   template <> struct StructExtends<PipelineRasterizationLineStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
91417   template <> struct StructExtends<PipelineRasterizationStateRasterizationOrderAMD, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
91418   template <> struct StructExtends<PipelineRasterizationStateStreamCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
91419   template <> struct StructExtends<PipelineRepresentativeFragmentTestStateCreateInfoNV, GraphicsPipelineCreateInfo>{ enum { value = true }; };
91420   template <> struct StructExtends<PipelineSampleLocationsStateCreateInfoEXT, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
91421   template <> struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT, PipelineShaderStageCreateInfo>{ enum { value = true }; };
91422   template <> struct StructExtends<PipelineTessellationDomainOriginStateCreateInfo, PipelineTessellationStateCreateInfo>{ enum { value = true }; };
91423   template <> struct StructExtends<PipelineVertexInputDivisorStateCreateInfoEXT, PipelineVertexInputStateCreateInfo>{ enum { value = true }; };
91424   template <> struct StructExtends<PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
91425   template <> struct StructExtends<PipelineViewportExclusiveScissorStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
91426   template <> struct StructExtends<PipelineViewportShadingRateImageStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
91427   template <> struct StructExtends<PipelineViewportSwizzleStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
91428   template <> struct StructExtends<PipelineViewportWScalingStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
91429 #ifdef VK_USE_PLATFORM_GGP
91430   template <> struct StructExtends<PresentFrameTokenGGP, PresentInfoKHR>{ enum { value = true }; };
91431 #endif /*VK_USE_PLATFORM_GGP*/
91432   template <> struct StructExtends<PresentRegionsKHR, PresentInfoKHR>{ enum { value = true }; };
91433   template <> struct StructExtends<PresentTimesInfoGOOGLE, PresentInfoKHR>{ enum { value = true }; };
91434   template <> struct StructExtends<ProtectedSubmitInfo, SubmitInfo>{ enum { value = true }; };
91435   template <> struct StructExtends<QueryPoolPerformanceCreateInfoKHR, QueryPoolCreateInfo>{ enum { value = true }; };
91436   template <> struct StructExtends<QueryPoolPerformanceQueryCreateInfoINTEL, QueryPoolCreateInfo>{ enum { value = true }; };
91437   template <> struct StructExtends<QueueFamilyCheckpointPropertiesNV, QueueFamilyProperties2>{ enum { value = true }; };
91438   template <> struct StructExtends<RenderPassAttachmentBeginInfo, RenderPassBeginInfo>{ enum { value = true }; };
91439   template <> struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo>{ enum { value = true }; };
91440   template <> struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo2>{ enum { value = true }; };
91441   template <> struct StructExtends<RenderPassInputAttachmentAspectCreateInfo, RenderPassCreateInfo>{ enum { value = true }; };
91442   template <> struct StructExtends<RenderPassMultiviewCreateInfo, RenderPassCreateInfo>{ enum { value = true }; };
91443   template <> struct StructExtends<RenderPassSampleLocationsBeginInfoEXT, RenderPassBeginInfo>{ enum { value = true }; };
91444   template <> struct StructExtends<RenderPassTransformBeginInfoQCOM, RenderPassBeginInfo>{ enum { value = true }; };
91445   template <> struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier>{ enum { value = true }; };
91446   template <> struct StructExtends<SamplerCustomBorderColorCreateInfoEXT, SamplerCreateInfo>{ enum { value = true }; };
91447   template <> struct StructExtends<SamplerReductionModeCreateInfo, SamplerCreateInfo>{ enum { value = true }; };
91448   template <> struct StructExtends<SamplerYcbcrConversionImageFormatProperties, ImageFormatProperties2>{ enum { value = true }; };
91449   template <> struct StructExtends<SamplerYcbcrConversionInfo, SamplerCreateInfo>{ enum { value = true }; };
91450   template <> struct StructExtends<SamplerYcbcrConversionInfo, ImageViewCreateInfo>{ enum { value = true }; };
91451   template <> struct StructExtends<SemaphoreTypeCreateInfo, SemaphoreCreateInfo>{ enum { value = true }; };
91452   template <> struct StructExtends<SemaphoreTypeCreateInfo, PhysicalDeviceExternalSemaphoreInfo>{ enum { value = true }; };
91453   template <> struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, ShaderModuleCreateInfo>{ enum { value = true }; };
91454   template <> struct StructExtends<SharedPresentSurfaceCapabilitiesKHR, SurfaceCapabilities2KHR>{ enum { value = true }; };
91455   template <> struct StructExtends<SubpassDescriptionDepthStencilResolve, SubpassDescription2>{ enum { value = true }; };
91456 #ifdef VK_USE_PLATFORM_WIN32_KHR
91457   template <> struct StructExtends<SurfaceCapabilitiesFullScreenExclusiveEXT, SurfaceCapabilities2KHR>{ enum { value = true }; };
91458 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91459 #ifdef VK_USE_PLATFORM_WIN32_KHR
91460   template <> struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, PhysicalDeviceSurfaceInfo2KHR>{ enum { value = true }; };
91461   template <> struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
91462 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91463 #ifdef VK_USE_PLATFORM_WIN32_KHR
91464   template <> struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, PhysicalDeviceSurfaceInfo2KHR>{ enum { value = true }; };
91465   template <> struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
91466 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91467   template <> struct StructExtends<SurfaceProtectedCapabilitiesKHR, SurfaceCapabilities2KHR>{ enum { value = true }; };
91468   template <> struct StructExtends<SwapchainCounterCreateInfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
91469   template <> struct StructExtends<SwapchainDisplayNativeHdrCreateInfoAMD, SwapchainCreateInfoKHR>{ enum { value = true }; };
91470   template <> struct StructExtends<TextureLODGatherFormatPropertiesAMD, ImageFormatProperties2>{ enum { value = true }; };
91471   template <> struct StructExtends<TimelineSemaphoreSubmitInfo, SubmitInfo>{ enum { value = true }; };
91472   template <> struct StructExtends<TimelineSemaphoreSubmitInfo, BindSparseInfo>{ enum { value = true }; };
91473   template <> struct StructExtends<ValidationFeaturesEXT, InstanceCreateInfo>{ enum { value = true }; };
91474   template <> struct StructExtends<ValidationFlagsEXT, InstanceCreateInfo>{ enum { value = true }; };
91475 #ifdef VK_USE_PLATFORM_WIN32_KHR
91476   template <> struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo>{ enum { value = true }; };
91477 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91478 #ifdef VK_USE_PLATFORM_WIN32_KHR
91479   template <> struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo>{ enum { value = true }; };
91480 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91481   template <> struct StructExtends<WriteDescriptorSetAccelerationStructureKHR, WriteDescriptorSet>{ enum { value = true }; };
91482   template <> struct StructExtends<WriteDescriptorSetInlineUniformBlockEXT, WriteDescriptorSet>{ enum { value = true }; };
91483 
91484 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
91485   class DynamicLoader
91486   {
91487   public:
91488 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
DynamicLoader(std::string const & vulkanLibraryName={} )91489     DynamicLoader( std::string const & vulkanLibraryName = {} ) VULKAN_HPP_NOEXCEPT
91490 #  else
91491     DynamicLoader( std::string const & vulkanLibraryName = {} )
91492 #  endif
91493     {
91494       if ( !vulkanLibraryName.empty() )
91495       {
91496 #  if defined( __linux__ ) || defined( __APPLE__ )
91497         m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL );
91498 #  elif defined( _WIN32 )
91499         m_library = ::LoadLibraryA( vulkanLibraryName.c_str() );
91500 #  else
91501 #    error unsupported platform
91502 #  endif
91503       }
91504       else
91505       {
91506 #  if defined( __linux__ )
91507         m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL );
91508         if ( m_library == nullptr )
91509         {
91510           m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL );
91511         }
91512 #  elif defined( __APPLE__ )
91513         m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL );
91514 #  elif defined( _WIN32 )
91515         m_library = ::LoadLibraryA( "vulkan-1.dll" );
91516 #  else
91517 #    error unsupported platform
91518 #  endif
91519       }
91520 
91521 #ifndef VULKAN_HPP_NO_EXCEPTIONS
91522       if ( m_library == nullptr )
91523       {
91524         // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function.
91525         throw std::runtime_error( "Failed to load vulkan library!" );
91526       }
91527 #endif
91528     }
91529 
91530     DynamicLoader( DynamicLoader const& ) = delete;
91531 
DynamicLoader(DynamicLoader && other)91532     DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT : m_library(other.m_library)
91533     {
91534       other.m_library = nullptr;
91535     }
91536 
91537     DynamicLoader &operator=( DynamicLoader const& ) = delete;
91538 
operator =(DynamicLoader && other)91539     DynamicLoader &operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT
91540     {
91541       std::swap(m_library, other.m_library);
91542       return *this;
91543     }
91544 
~DynamicLoader()91545     ~DynamicLoader() VULKAN_HPP_NOEXCEPT
91546     {
91547       if ( m_library )
91548       {
91549 #  if defined( __linux__ ) || defined( __APPLE__ )
91550         dlclose( m_library );
91551 #  elif defined( _WIN32 )
91552         ::FreeLibrary( m_library );
91553 #  else
91554 #    error unsupported platform
91555 #  endif
91556       }
91557     }
91558 
91559     template <typename T>
getProcAddress(const char * function) const91560     T getProcAddress( const char* function ) const VULKAN_HPP_NOEXCEPT
91561     {
91562 #  if defined( __linux__ ) || defined( __APPLE__ )
91563       return (T)dlsym( m_library, function );
91564 #  elif defined( _WIN32 )
91565       return (T)::GetProcAddress( m_library, function );
91566 #  else
91567 #    error unsupported platform
91568 #  endif
91569     }
91570 
success() const91571     bool success() const VULKAN_HPP_NOEXCEPT { return m_library != nullptr; }
91572 
91573   private:
91574 #  if defined( __linux__ ) || defined( __APPLE__ )
91575     void * m_library;
91576 #  elif defined( _WIN32 )
91577     ::HINSTANCE m_library;
91578 #  else
91579 #    error unsupported platform
91580 #  endif
91581   };
91582 #endif
91583 
91584 
91585   class DispatchLoaderDynamic
91586   {
91587   public:
91588 #ifdef VK_USE_PLATFORM_WIN32_KHR
91589     PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
91590 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91591     PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
91592     PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
91593     PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
91594     PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
91595 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
91596     PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
91597 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
91598     PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
91599     PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
91600     PFN_vkAllocateMemory vkAllocateMemory = 0;
91601     PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
91602     PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
91603 #ifdef VK_ENABLE_BETA_EXTENSIONS
91604     PFN_vkBindAccelerationStructureMemoryKHR vkBindAccelerationStructureMemoryKHR = 0;
91605 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91606     PFN_vkBindBufferMemory vkBindBufferMemory = 0;
91607     PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
91608     PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
91609     PFN_vkBindImageMemory vkBindImageMemory = 0;
91610     PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
91611     PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
91612 #ifdef VK_ENABLE_BETA_EXTENSIONS
91613     PFN_vkBuildAccelerationStructureKHR vkBuildAccelerationStructureKHR = 0;
91614 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91615     PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
91616     PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
91617     PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
91618     PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
91619     PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
91620     PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
91621     PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0;
91622     PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
91623     PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
91624     PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
91625     PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
91626     PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0;
91627     PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
91628     PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
91629     PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
91630     PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0;
91631     PFN_vkCmdBlitImage vkCmdBlitImage = 0;
91632     PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0;
91633 #ifdef VK_ENABLE_BETA_EXTENSIONS
91634     PFN_vkCmdBuildAccelerationStructureIndirectKHR vkCmdBuildAccelerationStructureIndirectKHR = 0;
91635 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91636 #ifdef VK_ENABLE_BETA_EXTENSIONS
91637     PFN_vkCmdBuildAccelerationStructureKHR vkCmdBuildAccelerationStructureKHR = 0;
91638 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91639     PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
91640     PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
91641     PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
91642     PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
91643 #ifdef VK_ENABLE_BETA_EXTENSIONS
91644     PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0;
91645 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91646     PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
91647 #ifdef VK_ENABLE_BETA_EXTENSIONS
91648     PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0;
91649 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91650     PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
91651     PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0;
91652     PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
91653     PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
91654     PFN_vkCmdCopyImage vkCmdCopyImage = 0;
91655     PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0;
91656     PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
91657     PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
91658 #ifdef VK_ENABLE_BETA_EXTENSIONS
91659     PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0;
91660 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91661     PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
91662     PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
91663     PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
91664     PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
91665     PFN_vkCmdDispatch vkCmdDispatch = 0;
91666     PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
91667     PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
91668     PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
91669     PFN_vkCmdDraw vkCmdDraw = 0;
91670     PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
91671     PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
91672     PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
91673     PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
91674     PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0;
91675     PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
91676     PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
91677     PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
91678     PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
91679     PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0;
91680     PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
91681     PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
91682     PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
91683     PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
91684     PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
91685     PFN_vkCmdEndQuery vkCmdEndQuery = 0;
91686     PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
91687     PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
91688     PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
91689     PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0;
91690     PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
91691     PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
91692     PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0;
91693     PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
91694     PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
91695     PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
91696     PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
91697     PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0;
91698     PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
91699     PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0;
91700     PFN_vkCmdPushConstants vkCmdPushConstants = 0;
91701     PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
91702     PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
91703     PFN_vkCmdResetEvent vkCmdResetEvent = 0;
91704     PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
91705     PFN_vkCmdResolveImage vkCmdResolveImage = 0;
91706     PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0;
91707     PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
91708     PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
91709     PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
91710     PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0;
91711     PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
91712     PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
91713     PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
91714     PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0;
91715     PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0;
91716     PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0;
91717     PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
91718     PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
91719     PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
91720     PFN_vkCmdSetEvent vkCmdSetEvent = 0;
91721     PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
91722     PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0;
91723     PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0;
91724     PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
91725     PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
91726     PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
91727     PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
91728     PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
91729     PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0;
91730     PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
91731     PFN_vkCmdSetScissor vkCmdSetScissor = 0;
91732     PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0;
91733     PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
91734     PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0;
91735     PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
91736     PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0;
91737     PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
91738     PFN_vkCmdSetViewport vkCmdSetViewport = 0;
91739     PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
91740     PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
91741     PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0;
91742 #ifdef VK_ENABLE_BETA_EXTENSIONS
91743     PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0;
91744 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91745 #ifdef VK_ENABLE_BETA_EXTENSIONS
91746     PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0;
91747 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91748     PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
91749     PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
91750     PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
91751     PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
91752 #ifdef VK_ENABLE_BETA_EXTENSIONS
91753     PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
91754 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91755     PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
91756     PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
91757     PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
91758 #ifdef VK_ENABLE_BETA_EXTENSIONS
91759     PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0;
91760 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91761 #ifdef VK_ENABLE_BETA_EXTENSIONS
91762     PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0;
91763 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91764 #ifdef VK_ENABLE_BETA_EXTENSIONS
91765     PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0;
91766 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91767 #ifdef VK_ENABLE_BETA_EXTENSIONS
91768     PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0;
91769 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91770     PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
91771 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91772     PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
91773 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91774     PFN_vkCreateBuffer vkCreateBuffer = 0;
91775     PFN_vkCreateBufferView vkCreateBufferView = 0;
91776     PFN_vkCreateCommandPool vkCreateCommandPool = 0;
91777     PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
91778     PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
91779     PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
91780 #ifdef VK_ENABLE_BETA_EXTENSIONS
91781     PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0;
91782 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91783     PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
91784     PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
91785     PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
91786     PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
91787     PFN_vkCreateDevice vkCreateDevice = 0;
91788 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
91789     PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0;
91790 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
91791     PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
91792     PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
91793     PFN_vkCreateEvent vkCreateEvent = 0;
91794     PFN_vkCreateFence vkCreateFence = 0;
91795     PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
91796     PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
91797     PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
91798 #ifdef VK_USE_PLATFORM_IOS_MVK
91799     PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
91800 #endif /*VK_USE_PLATFORM_IOS_MVK*/
91801     PFN_vkCreateImage vkCreateImage = 0;
91802 #ifdef VK_USE_PLATFORM_FUCHSIA
91803     PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
91804 #endif /*VK_USE_PLATFORM_FUCHSIA*/
91805     PFN_vkCreateImageView vkCreateImageView = 0;
91806     PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0;
91807     PFN_vkCreateInstance vkCreateInstance = 0;
91808 #ifdef VK_USE_PLATFORM_MACOS_MVK
91809     PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
91810 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
91811 #ifdef VK_USE_PLATFORM_METAL_EXT
91812     PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
91813 #endif /*VK_USE_PLATFORM_METAL_EXT*/
91814     PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
91815     PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
91816     PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0;
91817     PFN_vkCreateQueryPool vkCreateQueryPool = 0;
91818 #ifdef VK_ENABLE_BETA_EXTENSIONS
91819     PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0;
91820 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91821     PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
91822     PFN_vkCreateRenderPass vkCreateRenderPass = 0;
91823     PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
91824     PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;
91825     PFN_vkCreateSampler vkCreateSampler = 0;
91826     PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
91827     PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
91828     PFN_vkCreateSemaphore vkCreateSemaphore = 0;
91829     PFN_vkCreateShaderModule vkCreateShaderModule = 0;
91830     PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
91831 #ifdef VK_USE_PLATFORM_GGP
91832     PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
91833 #endif /*VK_USE_PLATFORM_GGP*/
91834     PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
91835     PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
91836 #ifdef VK_USE_PLATFORM_VI_NN
91837     PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
91838 #endif /*VK_USE_PLATFORM_VI_NN*/
91839 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
91840     PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
91841 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
91842 #ifdef VK_USE_PLATFORM_WIN32_KHR
91843     PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
91844 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91845 #ifdef VK_USE_PLATFORM_XCB_KHR
91846     PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
91847 #endif /*VK_USE_PLATFORM_XCB_KHR*/
91848 #ifdef VK_USE_PLATFORM_XLIB_KHR
91849     PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
91850 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
91851     PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
91852     PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
91853     PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
91854 #ifdef VK_ENABLE_BETA_EXTENSIONS
91855     PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0;
91856 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91857     PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
91858 #ifdef VK_ENABLE_BETA_EXTENSIONS
91859     PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0;
91860 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91861     PFN_vkDestroyBuffer vkDestroyBuffer = 0;
91862     PFN_vkDestroyBufferView vkDestroyBufferView = 0;
91863     PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
91864     PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
91865     PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
91866 #ifdef VK_ENABLE_BETA_EXTENSIONS
91867     PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0;
91868 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91869     PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
91870     PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
91871     PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
91872     PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
91873     PFN_vkDestroyDevice vkDestroyDevice = 0;
91874     PFN_vkDestroyEvent vkDestroyEvent = 0;
91875     PFN_vkDestroyFence vkDestroyFence = 0;
91876     PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
91877     PFN_vkDestroyImage vkDestroyImage = 0;
91878     PFN_vkDestroyImageView vkDestroyImageView = 0;
91879     PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0;
91880     PFN_vkDestroyInstance vkDestroyInstance = 0;
91881     PFN_vkDestroyPipeline vkDestroyPipeline = 0;
91882     PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
91883     PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
91884     PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
91885     PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
91886     PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
91887     PFN_vkDestroySampler vkDestroySampler = 0;
91888     PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
91889     PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
91890     PFN_vkDestroySemaphore vkDestroySemaphore = 0;
91891     PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
91892     PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
91893     PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
91894     PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
91895     PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
91896     PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
91897     PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
91898     PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
91899     PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
91900     PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
91901     PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
91902     PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
91903     PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
91904     PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
91905     PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
91906     PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
91907     PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
91908     PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
91909     PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
91910     PFN_vkFreeMemory vkFreeMemory = 0;
91911 #ifdef VK_ENABLE_BETA_EXTENSIONS
91912     PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0;
91913 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91914     PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
91915 #ifdef VK_ENABLE_BETA_EXTENSIONS
91916     PFN_vkGetAccelerationStructureMemoryRequirementsKHR vkGetAccelerationStructureMemoryRequirementsKHR = 0;
91917 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91918     PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
91919 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91920     PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
91921 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91922     PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
91923     PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0;
91924     PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0;
91925     PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
91926     PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
91927     PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
91928     PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0;
91929     PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0;
91930     PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
91931 #ifdef VK_ENABLE_BETA_EXTENSIONS
91932     PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
91933 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91934 #ifdef VK_ENABLE_BETA_EXTENSIONS
91935     PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0;
91936 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91937     PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
91938     PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
91939 #ifdef VK_ENABLE_BETA_EXTENSIONS
91940     PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
91941 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91942     PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
91943     PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
91944     PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
91945 #ifdef VK_USE_PLATFORM_WIN32_KHR
91946     PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
91947 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91948     PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
91949     PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
91950     PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
91951     PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
91952     PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
91953     PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
91954     PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
91955     PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
91956     PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
91957     PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
91958     PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
91959     PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
91960     PFN_vkGetEventStatus vkGetEventStatus = 0;
91961     PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
91962     PFN_vkGetFenceStatus vkGetFenceStatus = 0;
91963 #ifdef VK_USE_PLATFORM_WIN32_KHR
91964     PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
91965 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91966     PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
91967     PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
91968     PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
91969     PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
91970     PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
91971     PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
91972     PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
91973     PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
91974     PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
91975     PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
91976     PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
91977     PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
91978 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91979     PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
91980 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91981     PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
91982     PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
91983     PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
91984 #ifdef VK_USE_PLATFORM_WIN32_KHR
91985     PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
91986 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91987 #ifdef VK_USE_PLATFORM_WIN32_KHR
91988     PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
91989 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91990 #ifdef VK_USE_PLATFORM_WIN32_KHR
91991     PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
91992 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91993     PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
91994     PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
91995     PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
91996     PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
91997 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
91998     PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
91999 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
92000     PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
92001     PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
92002     PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
92003     PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
92004     PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
92005     PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
92006     PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
92007     PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
92008     PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
92009     PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
92010     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
92011     PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
92012     PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
92013     PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
92014     PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
92015     PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
92016     PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
92017     PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
92018     PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
92019     PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
92020     PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
92021     PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
92022     PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
92023     PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
92024     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
92025     PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
92026     PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
92027     PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
92028     PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
92029     PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
92030     PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
92031     PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
92032     PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
92033     PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
92034     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
92035     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
92036     PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
92037     PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
92038     PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
92039     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
92040     PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
92041     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
92042 #ifdef VK_USE_PLATFORM_WIN32_KHR
92043     PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
92044 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92045     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
92046     PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
92047     PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
92048 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
92049     PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
92050 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
92051 #ifdef VK_USE_PLATFORM_WIN32_KHR
92052     PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
92053 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92054 #ifdef VK_USE_PLATFORM_XCB_KHR
92055     PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
92056 #endif /*VK_USE_PLATFORM_XCB_KHR*/
92057 #ifdef VK_USE_PLATFORM_XLIB_KHR
92058     PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
92059 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
92060     PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
92061     PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
92062     PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
92063     PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
92064     PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0;
92065     PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
92066     PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
92067 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
92068     PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
92069 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
92070 #ifdef VK_ENABLE_BETA_EXTENSIONS
92071     PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
92072 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92073     PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
92074 #ifdef VK_ENABLE_BETA_EXTENSIONS
92075     PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0;
92076 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92077     PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
92078     PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
92079     PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
92080     PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0;
92081     PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
92082 #ifdef VK_USE_PLATFORM_WIN32_KHR
92083     PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
92084 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92085     PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
92086     PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
92087     PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
92088     PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
92089     PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
92090     PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
92091 #ifdef VK_USE_PLATFORM_WIN32_KHR
92092     PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
92093 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92094     PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
92095 #ifdef VK_USE_PLATFORM_WIN32_KHR
92096     PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
92097 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92098     PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
92099     PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
92100     PFN_vkMapMemory vkMapMemory = 0;
92101     PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
92102     PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
92103     PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
92104     PFN_vkQueueBindSparse vkQueueBindSparse = 0;
92105     PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
92106     PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
92107     PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
92108     PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
92109     PFN_vkQueueSubmit vkQueueSubmit = 0;
92110     PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
92111     PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
92112     PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
92113     PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
92114 #ifdef VK_USE_PLATFORM_WIN32_KHR
92115     PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
92116 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92117     PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
92118     PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
92119     PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
92120     PFN_vkResetCommandPool vkResetCommandPool = 0;
92121     PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
92122     PFN_vkResetEvent vkResetEvent = 0;
92123     PFN_vkResetFences vkResetFences = 0;
92124     PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
92125     PFN_vkResetQueryPool vkResetQueryPool = 0;
92126     PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
92127     PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
92128     PFN_vkSetEvent vkSetEvent = 0;
92129     PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
92130     PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
92131     PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0;
92132     PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0;
92133     PFN_vkSignalSemaphore vkSignalSemaphore = 0;
92134     PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
92135     PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
92136     PFN_vkTrimCommandPool vkTrimCommandPool = 0;
92137     PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
92138     PFN_vkUnmapMemory vkUnmapMemory = 0;
92139     PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
92140     PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
92141     PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
92142     PFN_vkWaitForFences vkWaitForFences = 0;
92143     PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0;
92144     PFN_vkWaitSemaphores vkWaitSemaphores = 0;
92145 #ifdef VK_ENABLE_BETA_EXTENSIONS
92146     PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0;
92147 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92148 
92149   public:
92150     DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default;
92151 
92152 #if !defined(VK_NO_PROTOTYPES)
92153     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
92154     template <typename DynamicLoader>
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device,DynamicLoader const & dl)92155     void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device, DynamicLoader const& dl) VULKAN_HPP_NOEXCEPT
92156     {
92157       PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress<PFN_vkGetInstanceProcAddr>("vkGetInstanceProcAddr");
92158       PFN_vkGetDeviceProcAddr getDeviceProcAddr = dl.template getProcAddress<PFN_vkGetDeviceProcAddr>("vkGetDeviceProcAddr");
92159       init(static_cast<VkInstance>(instance), getInstanceProcAddr, static_cast<VkDevice>(device), device ? getDeviceProcAddr : nullptr);
92160     }
92161 
92162     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
92163     template <typename DynamicLoader
92164 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
92165       = VULKAN_HPP_NAMESPACE::DynamicLoader
92166 #endif
92167     >
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device)92168     void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device) VULKAN_HPP_NOEXCEPT
92169     {
92170       static DynamicLoader dl;
92171       init(instance, device, dl);
92172     }
92173 #endif // !defined(VK_NO_PROTOTYPES)
92174 
DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr)92175     DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr) VULKAN_HPP_NOEXCEPT
92176     {
92177       init(getInstanceProcAddr);
92178     }
92179 
init(PFN_vkGetInstanceProcAddr getInstanceProcAddr)92180     void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
92181     {
92182       VULKAN_HPP_ASSERT(getInstanceProcAddr);
92183 
92184       vkGetInstanceProcAddr = getInstanceProcAddr;
92185       vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
92186       vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
92187       vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
92188       vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
92189     }
92190 
92191     // This interface does not require a linked vulkan library.
DispatchLoaderDynamic(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr getDeviceProcAddr=nullptr)92192     DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT
92193     {
92194       init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
92195     }
92196 
92197     // This interface does not require a linked vulkan library.
init(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr=nullptr)92198     void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT
92199     {
92200       VULKAN_HPP_ASSERT(instance && getInstanceProcAddr);
92201       vkGetInstanceProcAddr = getInstanceProcAddr;
92202       init( VULKAN_HPP_NAMESPACE::Instance(instance) );
92203       if (device) {
92204         init( VULKAN_HPP_NAMESPACE::Device(device) );
92205       }
92206     }
92207 
init(VULKAN_HPP_NAMESPACE::Instance instanceCpp)92208     void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT
92209     {
92210       VkInstance instance = static_cast<VkInstance>(instanceCpp);
92211 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
92212       vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
92213 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
92214 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92215       vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
92216 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92217       vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
92218       vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
92219       vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
92220 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
92221       vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
92222 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
92223       vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
92224       vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
92225       vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
92226 #ifdef VK_USE_PLATFORM_IOS_MVK
92227       vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
92228 #endif /*VK_USE_PLATFORM_IOS_MVK*/
92229 #ifdef VK_USE_PLATFORM_FUCHSIA
92230       vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
92231 #endif /*VK_USE_PLATFORM_FUCHSIA*/
92232 #ifdef VK_USE_PLATFORM_MACOS_MVK
92233       vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
92234 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
92235 #ifdef VK_USE_PLATFORM_METAL_EXT
92236       vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
92237 #endif /*VK_USE_PLATFORM_METAL_EXT*/
92238 #ifdef VK_USE_PLATFORM_GGP
92239       vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
92240 #endif /*VK_USE_PLATFORM_GGP*/
92241 #ifdef VK_USE_PLATFORM_VI_NN
92242       vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
92243 #endif /*VK_USE_PLATFORM_VI_NN*/
92244 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
92245       vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
92246 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
92247 #ifdef VK_USE_PLATFORM_WIN32_KHR
92248       vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
92249 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92250 #ifdef VK_USE_PLATFORM_XCB_KHR
92251       vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
92252 #endif /*VK_USE_PLATFORM_XCB_KHR*/
92253 #ifdef VK_USE_PLATFORM_XLIB_KHR
92254       vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
92255 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
92256       vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
92257       vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
92258       vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
92259       vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
92260       vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
92261       vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
92262       vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
92263       vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
92264       vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
92265       if ( !vkEnumeratePhysicalDeviceGroups ) vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
92266       vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
92267       vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
92268       vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
92269       vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
92270       vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
92271       vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
92272       vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
92273       vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) );
92274       vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
92275       vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
92276 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
92277       vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
92278 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
92279       vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
92280       vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
92281       vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
92282       vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
92283       vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
92284       vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
92285       if ( !vkGetPhysicalDeviceExternalBufferProperties ) vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
92286       vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
92287       vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
92288       if ( !vkGetPhysicalDeviceExternalFenceProperties ) vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
92289       vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
92290       vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
92291       vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
92292       if ( !vkGetPhysicalDeviceExternalSemaphoreProperties ) vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
92293       vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
92294       vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
92295       vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
92296       if ( !vkGetPhysicalDeviceFeatures2 ) vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
92297       vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
92298       vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
92299       vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
92300       if ( !vkGetPhysicalDeviceFormatProperties2 ) vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
92301       vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
92302       vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
92303       vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
92304       vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
92305       if ( !vkGetPhysicalDeviceImageFormatProperties2 ) vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
92306       vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
92307       vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
92308       vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
92309       if ( !vkGetPhysicalDeviceMemoryProperties2 ) vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
92310       vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
92311       vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
92312       vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
92313       vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
92314       vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
92315       if ( !vkGetPhysicalDeviceProperties2 ) vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
92316       vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
92317       vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
92318       vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
92319       vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
92320       if ( !vkGetPhysicalDeviceQueueFamilyProperties2 ) vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
92321       vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
92322       vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
92323       vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
92324       if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 ) vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
92325       vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
92326       vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
92327       vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
92328       vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
92329       vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
92330       vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
92331 #ifdef VK_USE_PLATFORM_WIN32_KHR
92332       vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
92333 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92334       vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
92335       vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
92336       vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
92337 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
92338       vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
92339 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
92340 #ifdef VK_USE_PLATFORM_WIN32_KHR
92341       vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
92342 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92343 #ifdef VK_USE_PLATFORM_XCB_KHR
92344       vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
92345 #endif /*VK_USE_PLATFORM_XCB_KHR*/
92346 #ifdef VK_USE_PLATFORM_XLIB_KHR
92347       vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
92348 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
92349 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
92350       vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
92351 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
92352       vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
92353       vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
92354 #ifdef VK_USE_PLATFORM_WIN32_KHR
92355       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
92356 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92357       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
92358       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
92359       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
92360       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
92361       vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
92362       vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
92363       vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
92364       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
92365       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
92366 #ifdef VK_ENABLE_BETA_EXTENSIONS
92367       vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryKHR" ) );
92368       if ( !vkBindAccelerationStructureMemoryKHR ) vkBindAccelerationStructureMemoryKHR = vkBindAccelerationStructureMemoryNV;
92369 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92370       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
92371       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
92372       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
92373       if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR;
92374       vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
92375       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
92376       vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
92377       if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR;
92378 #ifdef VK_ENABLE_BETA_EXTENSIONS
92379       vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructureKHR" ) );
92380 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92381       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
92382       vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
92383       vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
92384       vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
92385       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
92386       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
92387       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
92388       if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
92389       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
92390       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
92391       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
92392       vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
92393       vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
92394       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
92395       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
92396       vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
92397       vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) );
92398       vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
92399       vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) );
92400 #ifdef VK_ENABLE_BETA_EXTENSIONS
92401       vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
92402 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92403 #ifdef VK_ENABLE_BETA_EXTENSIONS
92404       vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureKHR" ) );
92405 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92406       vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
92407       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
92408       vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
92409       vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
92410 #ifdef VK_ENABLE_BETA_EXTENSIONS
92411       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
92412 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92413       vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
92414 #ifdef VK_ENABLE_BETA_EXTENSIONS
92415       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
92416 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92417       vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
92418       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) );
92419       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
92420       vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) );
92421       vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
92422       vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) );
92423       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
92424       vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) );
92425 #ifdef VK_ENABLE_BETA_EXTENSIONS
92426       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
92427 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92428       vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
92429       vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
92430       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
92431       vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
92432       vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
92433       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
92434       vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
92435       if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR;
92436       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
92437       vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
92438       vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
92439       vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
92440       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
92441       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
92442       vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
92443       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
92444       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
92445       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
92446       vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
92447       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
92448       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
92449       vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
92450       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
92451       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
92452       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
92453       vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
92454       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
92455       vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
92456       vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
92457       vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
92458       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
92459       vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
92460       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
92461       vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
92462       if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
92463       vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
92464       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
92465       vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
92466       vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
92467       vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
92468       vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
92469       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
92470       vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
92471       if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
92472       vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
92473       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
92474       vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
92475       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
92476       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
92477       vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
92478       vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
92479       vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
92480       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) );
92481       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
92482       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
92483       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
92484       vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) );
92485       vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
92486       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
92487       vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) );
92488       vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) );
92489       vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) );
92490       vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) );
92491       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
92492       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
92493       if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
92494       vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
92495       vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
92496       vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
92497       vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) );
92498       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) );
92499       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
92500       vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
92501       vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
92502       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
92503       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
92504       vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) );
92505       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
92506       vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
92507       vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) );
92508       vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
92509       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) );
92510       vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
92511       vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) );
92512       vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
92513       vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
92514       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
92515       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
92516       vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) );
92517 #ifdef VK_ENABLE_BETA_EXTENSIONS
92518       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
92519 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92520 #ifdef VK_ENABLE_BETA_EXTENSIONS
92521       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
92522 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92523       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
92524       vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
92525       vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
92526       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
92527 #ifdef VK_ENABLE_BETA_EXTENSIONS
92528       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
92529       if ( !vkCmdWriteAccelerationStructuresPropertiesKHR ) vkCmdWriteAccelerationStructuresPropertiesKHR = vkCmdWriteAccelerationStructuresPropertiesNV;
92530 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92531       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
92532       vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
92533       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
92534 #ifdef VK_ENABLE_BETA_EXTENSIONS
92535       vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
92536 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92537 #ifdef VK_ENABLE_BETA_EXTENSIONS
92538       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
92539 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92540 #ifdef VK_ENABLE_BETA_EXTENSIONS
92541       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
92542 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92543 #ifdef VK_ENABLE_BETA_EXTENSIONS
92544       vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
92545 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92546       vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
92547       vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
92548       vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
92549       vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
92550       vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
92551 #ifdef VK_ENABLE_BETA_EXTENSIONS
92552       vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
92553 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92554       vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
92555       vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
92556       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
92557       vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
92558       if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
92559       vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
92560       vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
92561       vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
92562       vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
92563       vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
92564       vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
92565       vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
92566       vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
92567       vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
92568       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
92569       vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
92570 #ifdef VK_ENABLE_BETA_EXTENSIONS
92571       vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
92572 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92573       vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
92574       vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
92575       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
92576       vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
92577       if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR;
92578       vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
92579       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
92580       vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
92581       if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
92582       vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
92583       vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
92584       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
92585       vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
92586       vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
92587       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
92588       vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
92589 #ifdef VK_ENABLE_BETA_EXTENSIONS
92590       vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
92591 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92592       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
92593 #ifdef VK_ENABLE_BETA_EXTENSIONS
92594       vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
92595       if ( !vkDestroyAccelerationStructureKHR ) vkDestroyAccelerationStructureKHR = vkDestroyAccelerationStructureNV;
92596 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92597       vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
92598       vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
92599       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
92600 #ifdef VK_ENABLE_BETA_EXTENSIONS
92601       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
92602 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92603       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
92604       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
92605       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
92606       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
92607       if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
92608       vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
92609       vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
92610       vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
92611       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
92612       vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
92613       vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
92614       vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
92615       vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
92616       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
92617       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
92618       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
92619       vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
92620       vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
92621       vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
92622       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
92623       vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
92624       if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
92625       vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
92626       vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
92627       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
92628       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
92629       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
92630       vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
92631       vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
92632       vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
92633       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
92634       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
92635       vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
92636 #ifdef VK_ENABLE_BETA_EXTENSIONS
92637       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
92638 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92639       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
92640 #ifdef VK_ENABLE_BETA_EXTENSIONS
92641       vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
92642 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92643       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
92644 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92645       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
92646 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92647       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
92648       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
92649       vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
92650       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
92651       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
92652       vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
92653       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
92654       vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
92655       if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
92656       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
92657       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
92658       if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
92659       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
92660 #ifdef VK_ENABLE_BETA_EXTENSIONS
92661       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
92662 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92663 #ifdef VK_ENABLE_BETA_EXTENSIONS
92664       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
92665 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92666       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
92667       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
92668       if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
92669 #ifdef VK_ENABLE_BETA_EXTENSIONS
92670       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
92671 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92672       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
92673       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
92674       if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
92675       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
92676 #ifdef VK_USE_PLATFORM_WIN32_KHR
92677       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
92678 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92679       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
92680       vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
92681       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
92682       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
92683       if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
92684       vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
92685       vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
92686       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
92687       vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
92688       vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
92689       vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
92690 #ifdef VK_USE_PLATFORM_WIN32_KHR
92691       vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
92692 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92693       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
92694       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
92695       vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
92696       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
92697       vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
92698       if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
92699       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
92700       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
92701       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
92702       if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
92703       vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
92704       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
92705       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
92706 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92707       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
92708 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92709       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
92710       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
92711       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
92712 #ifdef VK_USE_PLATFORM_WIN32_KHR
92713       vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
92714 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92715 #ifdef VK_USE_PLATFORM_WIN32_KHR
92716       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
92717 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92718 #ifdef VK_USE_PLATFORM_WIN32_KHR
92719       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
92720 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92721       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
92722       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
92723       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
92724       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
92725       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
92726       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
92727       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
92728       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
92729       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
92730 #ifdef VK_ENABLE_BETA_EXTENSIONS
92731       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
92732 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92733       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
92734 #ifdef VK_ENABLE_BETA_EXTENSIONS
92735       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
92736       if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
92737 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92738       vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
92739       vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
92740       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
92741       vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
92742       if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
92743       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
92744 #ifdef VK_USE_PLATFORM_WIN32_KHR
92745       vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
92746 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92747       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
92748       vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
92749       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
92750       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
92751       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
92752       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
92753 #ifdef VK_USE_PLATFORM_WIN32_KHR
92754       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
92755 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92756       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
92757 #ifdef VK_USE_PLATFORM_WIN32_KHR
92758       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
92759 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92760       vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
92761       vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
92762       vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
92763       vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
92764       vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
92765       vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
92766       vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
92767       vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
92768       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
92769       vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
92770       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
92771       vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
92772       vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
92773       vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
92774       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
92775 #ifdef VK_USE_PLATFORM_WIN32_KHR
92776       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
92777 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92778       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
92779       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
92780       vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
92781       vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
92782       vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
92783       vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
92784       vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
92785       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
92786       vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
92787       if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT;
92788       vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
92789       vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
92790       vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
92791       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
92792       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
92793       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
92794       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
92795       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
92796       if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR;
92797       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
92798       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
92799       if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR;
92800       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
92801       vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
92802       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
92803       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
92804       if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
92805       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
92806       vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
92807       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
92808       vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
92809       if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR;
92810 #ifdef VK_ENABLE_BETA_EXTENSIONS
92811       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
92812 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92813     }
92814 
init(VULKAN_HPP_NAMESPACE::Device deviceCpp)92815     void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
92816     {
92817       VkDevice device = static_cast<VkDevice>(deviceCpp);
92818 #ifdef VK_USE_PLATFORM_WIN32_KHR
92819       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
92820 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92821       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
92822       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
92823       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
92824       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
92825       vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
92826       vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
92827       vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
92828       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
92829       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
92830 #ifdef VK_ENABLE_BETA_EXTENSIONS
92831       vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryKHR" ) );
92832       if ( !vkBindAccelerationStructureMemoryKHR ) vkBindAccelerationStructureMemoryKHR = vkBindAccelerationStructureMemoryNV;
92833 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92834       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
92835       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
92836       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
92837       if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR;
92838       vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
92839       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
92840       vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
92841       if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR;
92842 #ifdef VK_ENABLE_BETA_EXTENSIONS
92843       vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructureKHR" ) );
92844 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92845       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
92846       vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
92847       vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
92848       vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
92849       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
92850       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
92851       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
92852       if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
92853       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
92854       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
92855       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
92856       vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
92857       vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
92858       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
92859       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
92860       vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
92861       vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
92862       vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
92863       vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
92864 #ifdef VK_ENABLE_BETA_EXTENSIONS
92865       vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
92866 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92867 #ifdef VK_ENABLE_BETA_EXTENSIONS
92868       vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureKHR" ) );
92869 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92870       vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
92871       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
92872       vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
92873       vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
92874 #ifdef VK_ENABLE_BETA_EXTENSIONS
92875       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
92876 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92877       vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
92878 #ifdef VK_ENABLE_BETA_EXTENSIONS
92879       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
92880 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92881       vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
92882       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
92883       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
92884       vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
92885       vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
92886       vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
92887       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
92888       vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
92889 #ifdef VK_ENABLE_BETA_EXTENSIONS
92890       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
92891 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92892       vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
92893       vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
92894       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
92895       vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
92896       vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
92897       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
92898       vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
92899       if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR;
92900       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
92901       vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
92902       vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
92903       vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
92904       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
92905       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
92906       vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
92907       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
92908       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
92909       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
92910       vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
92911       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
92912       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
92913       vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
92914       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
92915       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
92916       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
92917       vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
92918       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
92919       vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
92920       vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
92921       vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
92922       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
92923       vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
92924       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
92925       vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
92926       if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
92927       vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
92928       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
92929       vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
92930       vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
92931       vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
92932       vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
92933       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
92934       vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
92935       if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
92936       vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
92937       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
92938       vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
92939       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
92940       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
92941       vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
92942       vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
92943       vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
92944       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
92945       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
92946       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
92947       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
92948       vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
92949       vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
92950       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
92951       vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
92952       vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
92953       vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) );
92954       vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) );
92955       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
92956       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
92957       if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
92958       vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
92959       vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
92960       vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
92961       vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
92962       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
92963       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
92964       vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
92965       vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
92966       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
92967       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
92968       vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
92969       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
92970       vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
92971       vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
92972       vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
92973       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
92974       vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
92975       vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
92976       vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
92977       vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
92978       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
92979       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
92980       vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
92981 #ifdef VK_ENABLE_BETA_EXTENSIONS
92982       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
92983 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92984 #ifdef VK_ENABLE_BETA_EXTENSIONS
92985       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
92986 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92987       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
92988       vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
92989       vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
92990       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
92991 #ifdef VK_ENABLE_BETA_EXTENSIONS
92992       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
92993       if ( !vkCmdWriteAccelerationStructuresPropertiesKHR ) vkCmdWriteAccelerationStructuresPropertiesKHR = vkCmdWriteAccelerationStructuresPropertiesNV;
92994 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92995       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
92996       vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
92997       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
92998 #ifdef VK_ENABLE_BETA_EXTENSIONS
92999       vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
93000 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93001 #ifdef VK_ENABLE_BETA_EXTENSIONS
93002       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
93003 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93004 #ifdef VK_ENABLE_BETA_EXTENSIONS
93005       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
93006 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93007 #ifdef VK_ENABLE_BETA_EXTENSIONS
93008       vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
93009 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93010       vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
93011       vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
93012       vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
93013       vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
93014       vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
93015 #ifdef VK_ENABLE_BETA_EXTENSIONS
93016       vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
93017 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93018       vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
93019       vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
93020       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
93021       vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
93022       if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
93023       vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
93024       vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
93025       vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
93026       vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
93027       vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
93028       vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
93029       vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
93030       vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
93031       vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
93032       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
93033       vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
93034 #ifdef VK_ENABLE_BETA_EXTENSIONS
93035       vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
93036 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93037       vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
93038       vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
93039       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
93040       vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
93041       if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR;
93042       vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
93043       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
93044       vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
93045       if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
93046       vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
93047       vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
93048       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
93049       vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
93050       vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
93051       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
93052       vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
93053 #ifdef VK_ENABLE_BETA_EXTENSIONS
93054       vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
93055 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93056       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
93057 #ifdef VK_ENABLE_BETA_EXTENSIONS
93058       vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
93059       if ( !vkDestroyAccelerationStructureKHR ) vkDestroyAccelerationStructureKHR = vkDestroyAccelerationStructureNV;
93060 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93061       vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
93062       vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
93063       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
93064 #ifdef VK_ENABLE_BETA_EXTENSIONS
93065       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
93066 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93067       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
93068       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
93069       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
93070       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
93071       if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
93072       vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
93073       vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
93074       vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
93075       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
93076       vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
93077       vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
93078       vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
93079       vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
93080       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
93081       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
93082       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
93083       vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
93084       vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
93085       vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
93086       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
93087       vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
93088       if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
93089       vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
93090       vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
93091       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
93092       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
93093       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
93094       vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
93095       vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
93096       vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
93097       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
93098       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
93099       vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
93100 #ifdef VK_ENABLE_BETA_EXTENSIONS
93101       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
93102 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93103       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
93104 #ifdef VK_ENABLE_BETA_EXTENSIONS
93105       vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
93106 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93107       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
93108 #ifdef VK_USE_PLATFORM_ANDROID_KHR
93109       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
93110 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
93111       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
93112       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
93113       vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
93114       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
93115       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
93116       vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
93117       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
93118       vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
93119       if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
93120       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
93121       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
93122       if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
93123       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
93124 #ifdef VK_ENABLE_BETA_EXTENSIONS
93125       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
93126 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93127 #ifdef VK_ENABLE_BETA_EXTENSIONS
93128       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
93129 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93130       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
93131       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
93132       if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
93133 #ifdef VK_ENABLE_BETA_EXTENSIONS
93134       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
93135 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93136       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
93137       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
93138       if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
93139       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
93140 #ifdef VK_USE_PLATFORM_WIN32_KHR
93141       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
93142 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93143       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
93144       vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
93145       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
93146       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
93147       if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
93148       vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
93149       vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
93150       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
93151       vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
93152       vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
93153       vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
93154 #ifdef VK_USE_PLATFORM_WIN32_KHR
93155       vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
93156 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93157       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
93158       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
93159       vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
93160       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
93161       vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
93162       if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
93163       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
93164       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
93165       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
93166       if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
93167       vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
93168       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
93169       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
93170 #ifdef VK_USE_PLATFORM_ANDROID_KHR
93171       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
93172 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
93173       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
93174       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
93175       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
93176 #ifdef VK_USE_PLATFORM_WIN32_KHR
93177       vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
93178 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93179 #ifdef VK_USE_PLATFORM_WIN32_KHR
93180       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
93181 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93182 #ifdef VK_USE_PLATFORM_WIN32_KHR
93183       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
93184 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93185       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
93186       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
93187       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
93188       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
93189       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
93190       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
93191       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
93192       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
93193       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
93194 #ifdef VK_ENABLE_BETA_EXTENSIONS
93195       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
93196 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93197       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
93198 #ifdef VK_ENABLE_BETA_EXTENSIONS
93199       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
93200       if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
93201 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93202       vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
93203       vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
93204       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
93205       vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
93206       if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
93207       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
93208 #ifdef VK_USE_PLATFORM_WIN32_KHR
93209       vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
93210 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93211       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
93212       vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
93213       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
93214       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
93215       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
93216       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
93217 #ifdef VK_USE_PLATFORM_WIN32_KHR
93218       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
93219 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93220       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
93221 #ifdef VK_USE_PLATFORM_WIN32_KHR
93222       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
93223 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93224       vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
93225       vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
93226       vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
93227       vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
93228       vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
93229       vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
93230       vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
93231       vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
93232       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
93233       vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
93234       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
93235       vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
93236       vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
93237       vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
93238       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
93239 #ifdef VK_USE_PLATFORM_WIN32_KHR
93240       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
93241 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93242       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
93243       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
93244       vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
93245       vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
93246       vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
93247       vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
93248       vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
93249       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
93250       vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
93251       if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT;
93252       vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
93253       vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
93254       vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
93255       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
93256       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
93257       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
93258       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
93259       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
93260       if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR;
93261       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
93262       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
93263       if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR;
93264       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
93265       vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
93266       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
93267       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
93268       if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
93269       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
93270       vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
93271       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
93272       vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
93273       if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR;
93274 #ifdef VK_ENABLE_BETA_EXTENSIONS
93275       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
93276 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93277     }
93278   };
93279 
93280 } // namespace VULKAN_HPP_NAMESPACE
93281 
93282 namespace std
93283 {
93284 
93285   template <> struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
93286   {
operator ()std::hash93287     std::size_t operator()(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const& accelerationStructureKHR) const VULKAN_HPP_NOEXCEPT
93288     {
93289       return std::hash<VkAccelerationStructureKHR>{}(static_cast<VkAccelerationStructureKHR>(accelerationStructureKHR));
93290     }
93291   };
93292 
93293   template <> struct hash<VULKAN_HPP_NAMESPACE::Buffer>
93294   {
operator ()std::hash93295     std::size_t operator()(VULKAN_HPP_NAMESPACE::Buffer const& buffer) const VULKAN_HPP_NOEXCEPT
93296     {
93297       return std::hash<VkBuffer>{}(static_cast<VkBuffer>(buffer));
93298     }
93299   };
93300 
93301   template <> struct hash<VULKAN_HPP_NAMESPACE::BufferView>
93302   {
operator ()std::hash93303     std::size_t operator()(VULKAN_HPP_NAMESPACE::BufferView const& bufferView) const VULKAN_HPP_NOEXCEPT
93304     {
93305       return std::hash<VkBufferView>{}(static_cast<VkBufferView>(bufferView));
93306     }
93307   };
93308 
93309   template <> struct hash<VULKAN_HPP_NAMESPACE::CommandBuffer>
93310   {
operator ()std::hash93311     std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandBuffer const& commandBuffer) const VULKAN_HPP_NOEXCEPT
93312     {
93313       return std::hash<VkCommandBuffer>{}(static_cast<VkCommandBuffer>(commandBuffer));
93314     }
93315   };
93316 
93317   template <> struct hash<VULKAN_HPP_NAMESPACE::CommandPool>
93318   {
operator ()std::hash93319     std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandPool const& commandPool) const VULKAN_HPP_NOEXCEPT
93320     {
93321       return std::hash<VkCommandPool>{}(static_cast<VkCommandPool>(commandPool));
93322     }
93323   };
93324 
93325   template <> struct hash<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
93326   {
operator ()std::hash93327     std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const& debugReportCallbackEXT) const VULKAN_HPP_NOEXCEPT
93328     {
93329       return std::hash<VkDebugReportCallbackEXT>{}(static_cast<VkDebugReportCallbackEXT>(debugReportCallbackEXT));
93330     }
93331   };
93332 
93333   template <> struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
93334   {
operator ()std::hash93335     std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const& debugUtilsMessengerEXT) const VULKAN_HPP_NOEXCEPT
93336     {
93337       return std::hash<VkDebugUtilsMessengerEXT>{}(static_cast<VkDebugUtilsMessengerEXT>(debugUtilsMessengerEXT));
93338     }
93339   };
93340 
93341 #ifdef VK_ENABLE_BETA_EXTENSIONS
93342   template <> struct hash<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
93343   {
operator ()std::hash93344     std::size_t operator()(VULKAN_HPP_NAMESPACE::DeferredOperationKHR const& deferredOperationKHR) const VULKAN_HPP_NOEXCEPT
93345     {
93346       return std::hash<VkDeferredOperationKHR>{}(static_cast<VkDeferredOperationKHR>(deferredOperationKHR));
93347     }
93348   };
93349 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93350 
93351   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorPool>
93352   {
operator ()std::hash93353     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorPool const& descriptorPool) const VULKAN_HPP_NOEXCEPT
93354     {
93355       return std::hash<VkDescriptorPool>{}(static_cast<VkDescriptorPool>(descriptorPool));
93356     }
93357   };
93358 
93359   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorSet>
93360   {
operator ()std::hash93361     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSet const& descriptorSet) const VULKAN_HPP_NOEXCEPT
93362     {
93363       return std::hash<VkDescriptorSet>{}(static_cast<VkDescriptorSet>(descriptorSet));
93364     }
93365   };
93366 
93367   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
93368   {
operator ()std::hash93369     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSetLayout const& descriptorSetLayout) const VULKAN_HPP_NOEXCEPT
93370     {
93371       return std::hash<VkDescriptorSetLayout>{}(static_cast<VkDescriptorSetLayout>(descriptorSetLayout));
93372     }
93373   };
93374 
93375   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
93376   {
operator ()std::hash93377     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const& descriptorUpdateTemplate) const VULKAN_HPP_NOEXCEPT
93378     {
93379       return std::hash<VkDescriptorUpdateTemplate>{}(static_cast<VkDescriptorUpdateTemplate>(descriptorUpdateTemplate));
93380     }
93381   };
93382 
93383   template <> struct hash<VULKAN_HPP_NAMESPACE::Device>
93384   {
operator ()std::hash93385     std::size_t operator()(VULKAN_HPP_NAMESPACE::Device const& device) const VULKAN_HPP_NOEXCEPT
93386     {
93387       return std::hash<VkDevice>{}(static_cast<VkDevice>(device));
93388     }
93389   };
93390 
93391   template <> struct hash<VULKAN_HPP_NAMESPACE::DeviceMemory>
93392   {
operator ()std::hash93393     std::size_t operator()(VULKAN_HPP_NAMESPACE::DeviceMemory const& deviceMemory) const VULKAN_HPP_NOEXCEPT
93394     {
93395       return std::hash<VkDeviceMemory>{}(static_cast<VkDeviceMemory>(deviceMemory));
93396     }
93397   };
93398 
93399   template <> struct hash<VULKAN_HPP_NAMESPACE::DisplayKHR>
93400   {
operator ()std::hash93401     std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayKHR const& displayKHR) const VULKAN_HPP_NOEXCEPT
93402     {
93403       return std::hash<VkDisplayKHR>{}(static_cast<VkDisplayKHR>(displayKHR));
93404     }
93405   };
93406 
93407   template <> struct hash<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
93408   {
operator ()std::hash93409     std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayModeKHR const& displayModeKHR) const VULKAN_HPP_NOEXCEPT
93410     {
93411       return std::hash<VkDisplayModeKHR>{}(static_cast<VkDisplayModeKHR>(displayModeKHR));
93412     }
93413   };
93414 
93415   template <> struct hash<VULKAN_HPP_NAMESPACE::Event>
93416   {
operator ()std::hash93417     std::size_t operator()(VULKAN_HPP_NAMESPACE::Event const& event) const VULKAN_HPP_NOEXCEPT
93418     {
93419       return std::hash<VkEvent>{}(static_cast<VkEvent>(event));
93420     }
93421   };
93422 
93423   template <> struct hash<VULKAN_HPP_NAMESPACE::Fence>
93424   {
operator ()std::hash93425     std::size_t operator()(VULKAN_HPP_NAMESPACE::Fence const& fence) const VULKAN_HPP_NOEXCEPT
93426     {
93427       return std::hash<VkFence>{}(static_cast<VkFence>(fence));
93428     }
93429   };
93430 
93431   template <> struct hash<VULKAN_HPP_NAMESPACE::Framebuffer>
93432   {
operator ()std::hash93433     std::size_t operator()(VULKAN_HPP_NAMESPACE::Framebuffer const& framebuffer) const VULKAN_HPP_NOEXCEPT
93434     {
93435       return std::hash<VkFramebuffer>{}(static_cast<VkFramebuffer>(framebuffer));
93436     }
93437   };
93438 
93439   template <> struct hash<VULKAN_HPP_NAMESPACE::Image>
93440   {
operator ()std::hash93441     std::size_t operator()(VULKAN_HPP_NAMESPACE::Image const& image) const VULKAN_HPP_NOEXCEPT
93442     {
93443       return std::hash<VkImage>{}(static_cast<VkImage>(image));
93444     }
93445   };
93446 
93447   template <> struct hash<VULKAN_HPP_NAMESPACE::ImageView>
93448   {
operator ()std::hash93449     std::size_t operator()(VULKAN_HPP_NAMESPACE::ImageView const& imageView) const VULKAN_HPP_NOEXCEPT
93450     {
93451       return std::hash<VkImageView>{}(static_cast<VkImageView>(imageView));
93452     }
93453   };
93454 
93455   template <> struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
93456   {
operator ()std::hash93457     std::size_t operator()(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const& indirectCommandsLayoutNV) const VULKAN_HPP_NOEXCEPT
93458     {
93459       return std::hash<VkIndirectCommandsLayoutNV>{}(static_cast<VkIndirectCommandsLayoutNV>(indirectCommandsLayoutNV));
93460     }
93461   };
93462 
93463   template <> struct hash<VULKAN_HPP_NAMESPACE::Instance>
93464   {
operator ()std::hash93465     std::size_t operator()(VULKAN_HPP_NAMESPACE::Instance const& instance) const VULKAN_HPP_NOEXCEPT
93466     {
93467       return std::hash<VkInstance>{}(static_cast<VkInstance>(instance));
93468     }
93469   };
93470 
93471   template <> struct hash<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
93472   {
operator ()std::hash93473     std::size_t operator()(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const& performanceConfigurationINTEL) const VULKAN_HPP_NOEXCEPT
93474     {
93475       return std::hash<VkPerformanceConfigurationINTEL>{}(static_cast<VkPerformanceConfigurationINTEL>(performanceConfigurationINTEL));
93476     }
93477   };
93478 
93479   template <> struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice>
93480   {
operator ()std::hash93481     std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDevice const& physicalDevice) const VULKAN_HPP_NOEXCEPT
93482     {
93483       return std::hash<VkPhysicalDevice>{}(static_cast<VkPhysicalDevice>(physicalDevice));
93484     }
93485   };
93486 
93487   template <> struct hash<VULKAN_HPP_NAMESPACE::Pipeline>
93488   {
operator ()std::hash93489     std::size_t operator()(VULKAN_HPP_NAMESPACE::Pipeline const& pipeline) const VULKAN_HPP_NOEXCEPT
93490     {
93491       return std::hash<VkPipeline>{}(static_cast<VkPipeline>(pipeline));
93492     }
93493   };
93494 
93495   template <> struct hash<VULKAN_HPP_NAMESPACE::PipelineCache>
93496   {
operator ()std::hash93497     std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineCache const& pipelineCache) const VULKAN_HPP_NOEXCEPT
93498     {
93499       return std::hash<VkPipelineCache>{}(static_cast<VkPipelineCache>(pipelineCache));
93500     }
93501   };
93502 
93503   template <> struct hash<VULKAN_HPP_NAMESPACE::PipelineLayout>
93504   {
operator ()std::hash93505     std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineLayout const& pipelineLayout) const VULKAN_HPP_NOEXCEPT
93506     {
93507       return std::hash<VkPipelineLayout>{}(static_cast<VkPipelineLayout>(pipelineLayout));
93508     }
93509   };
93510 
93511   template <> struct hash<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>
93512   {
operator ()std::hash93513     std::size_t operator()(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const& privateDataSlotEXT) const VULKAN_HPP_NOEXCEPT
93514     {
93515       return std::hash<VkPrivateDataSlotEXT>{}(static_cast<VkPrivateDataSlotEXT>(privateDataSlotEXT));
93516     }
93517   };
93518 
93519   template <> struct hash<VULKAN_HPP_NAMESPACE::QueryPool>
93520   {
operator ()std::hash93521     std::size_t operator()(VULKAN_HPP_NAMESPACE::QueryPool const& queryPool) const VULKAN_HPP_NOEXCEPT
93522     {
93523       return std::hash<VkQueryPool>{}(static_cast<VkQueryPool>(queryPool));
93524     }
93525   };
93526 
93527   template <> struct hash<VULKAN_HPP_NAMESPACE::Queue>
93528   {
operator ()std::hash93529     std::size_t operator()(VULKAN_HPP_NAMESPACE::Queue const& queue) const VULKAN_HPP_NOEXCEPT
93530     {
93531       return std::hash<VkQueue>{}(static_cast<VkQueue>(queue));
93532     }
93533   };
93534 
93535   template <> struct hash<VULKAN_HPP_NAMESPACE::RenderPass>
93536   {
operator ()std::hash93537     std::size_t operator()(VULKAN_HPP_NAMESPACE::RenderPass const& renderPass) const VULKAN_HPP_NOEXCEPT
93538     {
93539       return std::hash<VkRenderPass>{}(static_cast<VkRenderPass>(renderPass));
93540     }
93541   };
93542 
93543   template <> struct hash<VULKAN_HPP_NAMESPACE::Sampler>
93544   {
operator ()std::hash93545     std::size_t operator()(VULKAN_HPP_NAMESPACE::Sampler const& sampler) const VULKAN_HPP_NOEXCEPT
93546     {
93547       return std::hash<VkSampler>{}(static_cast<VkSampler>(sampler));
93548     }
93549   };
93550 
93551   template <> struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
93552   {
operator ()std::hash93553     std::size_t operator()(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const& samplerYcbcrConversion) const VULKAN_HPP_NOEXCEPT
93554     {
93555       return std::hash<VkSamplerYcbcrConversion>{}(static_cast<VkSamplerYcbcrConversion>(samplerYcbcrConversion));
93556     }
93557   };
93558 
93559   template <> struct hash<VULKAN_HPP_NAMESPACE::Semaphore>
93560   {
operator ()std::hash93561     std::size_t operator()(VULKAN_HPP_NAMESPACE::Semaphore const& semaphore) const VULKAN_HPP_NOEXCEPT
93562     {
93563       return std::hash<VkSemaphore>{}(static_cast<VkSemaphore>(semaphore));
93564     }
93565   };
93566 
93567   template <> struct hash<VULKAN_HPP_NAMESPACE::ShaderModule>
93568   {
operator ()std::hash93569     std::size_t operator()(VULKAN_HPP_NAMESPACE::ShaderModule const& shaderModule) const VULKAN_HPP_NOEXCEPT
93570     {
93571       return std::hash<VkShaderModule>{}(static_cast<VkShaderModule>(shaderModule));
93572     }
93573   };
93574 
93575   template <> struct hash<VULKAN_HPP_NAMESPACE::SurfaceKHR>
93576   {
operator ()std::hash93577     std::size_t operator()(VULKAN_HPP_NAMESPACE::SurfaceKHR const& surfaceKHR) const VULKAN_HPP_NOEXCEPT
93578     {
93579       return std::hash<VkSurfaceKHR>{}(static_cast<VkSurfaceKHR>(surfaceKHR));
93580     }
93581   };
93582 
93583   template <> struct hash<VULKAN_HPP_NAMESPACE::SwapchainKHR>
93584   {
operator ()std::hash93585     std::size_t operator()(VULKAN_HPP_NAMESPACE::SwapchainKHR const& swapchainKHR) const VULKAN_HPP_NOEXCEPT
93586     {
93587       return std::hash<VkSwapchainKHR>{}(static_cast<VkSwapchainKHR>(swapchainKHR));
93588     }
93589   };
93590 
93591   template <> struct hash<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
93592   {
operator ()std::hash93593     std::size_t operator()(VULKAN_HPP_NAMESPACE::ValidationCacheEXT const& validationCacheEXT) const VULKAN_HPP_NOEXCEPT
93594     {
93595       return std::hash<VkValidationCacheEXT>{}(static_cast<VkValidationCacheEXT>(validationCacheEXT));
93596     }
93597   };
93598 }
93599 #endif
93600